Aracılığıyla paylaş


WSL'de ML için GPU hızlandırmayı kullanmaya başlama

Makine öğrenmesi (ML), birçok geliştirme iş akışının önemli bir parçası haline geliyor. İster veri bilimcisi ister ML mühendisi olun, ister ML ile öğrenme yolculuğunuza başlayın Linux için Windows Alt Sistemi (WSL), en yaygın ve popüler GPU hızlandırılmış ML araçlarını çalıştırmak için harika bir ortam sunar.

Bu araçları ayarlamanın birçok farklı yolu vardır. Örneğin, WSL, TensorFlow-DirectML ve PyTorch-DirectML'dekiNVIDIA CUDA,WSL ile ML için GPU'nuzu kullanabileceğiniz farklı yollar sunar. Birini ve diğerini seçme nedenleri hakkında daha fazla bilgi edinmek için bkz. GPU hızlandırılmış ML eğitimi.

Bu kılavuzda aşağıdakilerin nasıl ayarlanacağı gösterilir:

  • NVIDIA grafik kartınız varsa ve örnek bir ML framework kapsayıcısı çalıştırıyorsanız NVIDIA CUDA
  • AMD, Intel veya NVIDIA grafik kartınızda TensorFlow-DirectML ve PyTorch-DirectML

Önkoşullar

Docker ile NVIDIA CUDA'yı ayarlama

  1. NVIDIA GPU'nuz için en son sürücüyü indirme ve yükleme

  2. Aşağıdaki komutu çalıştırarak Docker Desktop'ı yükleyin veya Docker altyapısını doğrudan WSL'ye yükleyin:

    curl https://get.docker.com | sh
    sudo service docker start
    
  3. Docker altyapısını doğrudan yüklediyseniz aşağıdaki adımları izleyerek NVIDIA Container Toolkit'i yükleyin.

    Aşağıdaki komutları çalıştırarak NVIDIA Container Toolkit için kararlı depoyu ayarlayın:

    distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
    curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-docker-keyring.gpg
    curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-docker-keyring.gpg] https://#g' | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
    

    Komutları çalıştırarak NVIDIA çalışma zamanı paketlerini ve bağımlılıklarını yükleyin:

    sudo apt-get update
    sudo apt-get install -y nvidia-docker2
    
  4. Makine öğrenmesi çerçeve kapsayıcısını ve örneğini çalıştırın.

    Bir makine öğrenmesi çerçevesi kapsayıcısını çalıştırmak ve GPU'nuzu bu NVIDIA NGC TensorFlow kapsayıcısıyla kullanmaya başlamak için şu komutu girin:

    docker run --gpus all -it --shm-size=1g --ulimit memlock=-1 --ulimit stack=67108864 nvcr.io/nvidia/tensorflow:20.03-tf2-py3
    

    Docker kapsayıcısı içinde çalışan TensorFlow ve CUDA

    Komutları çalıştırarak bu kapsayıcıda yerleşik olarak bulunan önceden eğitilmiş bir model örneği çalıştırabilirsiniz:

    cd nvidia-examples/cnn/
    python resnet.py --batch_size=64
    

    Docker kapsayıcısı içinde TensorFlow örnek model eğitimi

NVIDIA CUDA kurulumu ve kullanımı için ek yollar WSL'de NVIDIA CUDA Kullanıcı Kılavuzu'nda bulunabilir.

TensorFlow-DirectML veya PyTorch-DirectML ayarlama

  1. GPU satıcıları web sitenizden en son sürücüyü indirin ve yükleyin: AMD, Intel veya NVIDIA.

  2. Python ortamı ayarlama.

    Sanal python ortamı ayarlamanızı öneririz. Sanal Python ortamı ayarlamak için kullanabileceğiniz birçok araç vardır; bu yönergeler için Anaconda'nın Miniconda'sını kullanacağız.

    wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
    bash Miniconda3-latest-Linux-x86_64.sh
    conda create --name directml python=3.7 -y
    conda activate directml
    
  3. DirectML tarafından desteklenen makine öğrenmesi çerçevesini kendi seçtiğiniz şekilde yükleyin.

    TensorFlow-DirectML:

    pip install tensorflow-directml
    

    PyTorch-DirectML:

    sudo apt install libblas3 libomp5 liblapack3
    pip install torch-directml
    
  4. Her şeyin çalıştığından emin olmak için TensorFlow-DirectML veya PyTorch-DirectML için etkileşimli bir Python oturumunda hızlı bir ekleme örneği çalıştırın.

Sorularınız varsa veya sorunlarla karşılaşırsanız GitHub'da DirectML deposunu ziyaret edin.

Birden çok GPU

Makinenizde birden çok GPU varsa bunlara WSL'nin içinden de erişebilirsiniz. Ancak, tek seferde yalnızca bir tanesine erişebilirsiniz. Belirli bir GPU seçmek için lütfen aşağıdaki ortam değişkenini cihaz yöneticisinde göründüğü şekilde GPU'nuzun adına ayarlayın:

export MESA_D3D12_DEFAULT_ADAPTER_NAME="<NameFromDeviceManager>"

Bu bir dize eşleşmesi yapar, bu nedenle "NVIDIA" olarak ayarlarsanız "NVIDIA" ile başlayan ilk GPU ile eşleşir.

Ek Kaynaklar