共用方式為


開始在 WSL 中使用適用於 ML 的 GPU 加速

機器學習服務(ML)正成為許多開發工作流程的關鍵部分。 無論您是數據科學家、ML 工程師,還是開始使用 ML 學習旅程,Windows 子系統 Linux 版 (WSL) 都提供絕佳的環境,以執行最常見且熱門的 GPU 加速 ML 工具。

設定這些工具的方式有很多不同。 例如,WSL、TensorFlow-DirectMLPyTorch-DirectML中的 NVIDIA CUDA 都提供不同的方式,讓您搭配 WSL 使用 GPU for ML。 若要深入了解選擇一個與另一個的原因,請參閱 GPU 加速 ML 定型

本指南將示範如何設定:

  • 如果您有 NVIDIA 圖形卡並執行範例 ML 架構容器,則為 NVIDIA CUDA
  • 在 AMD、Intel 或 NVIDIA 圖形卡片上 TensorFlow-DirectML 和 PyTorch-DirectML

先決條件

使用 Docker 設定 NVIDIA CUDA

  1. 下載並安裝適用於 NVIDIA GPU 的最新驅動程式

  2. 執行下列命令,在 WSL 中安裝 Docker Desktop 或直接安裝 Docker 引擎

    curl https://get.docker.com | sh
    
    sudo service docker start
    
  3. 如果您直接安裝 Docker 引擎 ,請遵循下列步驟來安裝 NVIDIA Container Toolkit

    執行下列命令來設定 NVIDIA Container Toolkit 的穩定存放庫:

    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
    

    執行以下命令以安裝 NVIDIA 執行階段套件和相依性:

    sudo apt-get update
    
    sudo apt-get install -y nvidia-docker2
    
  4. 執行機器學習架構容器和範例。

    若要執行機器學習架構容器,並開始使用此 NVIDIA NGC TensorFlow 容器使用 GPU,請輸入命令:

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

    在 Docker 容器內運行的 TensorFlow 搭配 CUDA

    您可以執行命令,以執行內建於此容器的預先定型模型範例:

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

    Docker 容器內的 TensorFlow 範例模型定型

如需取得設定和使用 NVIDIA CUDA 的其他方式,請參閱 WSL 使用者指南上的 NVIDIA CUDA

設定 TensorFlow-DirectML 或 PyTorch-DirectML

  1. 從 GPU 廠商網站下載並安裝最新的驅動程式: AMDIntelNVIDIA

  2. 設定 Python 環境。

    建議您設定虛擬 Python 環境。 有許多工具可用來設定虛擬 Python 環境,如需這些指示,我們將使用 Anaconda 的 Miniconda

    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 所支援的機器學習架構。

    TensorFlow-DirectML:

    pip install tensorflow-directml
    

    PyTorch-DirectML:

    sudo apt install libblas3 libomp5 liblapack3
    
    pip install torch-directml
    
  4. TensorFlow-DirectMLPyTorch-DirectML 的互動式 Python 會話中執行快速新增範例,以確保一切正常運作。

如果您有問題或遇到問題,請造訪 GitHub 上的 DirectML 存放庫

多個 GPU

如果您的電腦上有多個 GPU,您也可以在 WSL 環境中使用它們。 不過,您一次只能存取一個。 若要選擇特定的 GPU,請將下方的環境變數設定為 GPU 的名稱,如設備管理員所示:

export MESA_D3D12_DEFAULT_ADAPTER_NAME="<NameFromDeviceManager>"

這會執行字串比對,因此如果您將其設定為 「NVIDIA」,則會比對開頭為 「NVIDIA」 的第一個 GPU。

其他資源