Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Machine Learning (ML) sta diventando una parte fondamentale di molti flussi di lavoro di sviluppo. Sia che si sia un data scientist, un tecnico ml o un percorso di apprendimento con ML il sottosistema Windows per Linux (WSL) offre un ambiente ottimale per eseguire gli strumenti di Machine Learning con accelerazione GPU più comuni e diffusi.
Esistono molti modi diversi per configurare questi strumenti. Ad esempio, NVIDIA CUDA in WSL, TensorFlow-DirectML e PyTorch-DirectML offrono modi diversi per usare la GPU per ML con WSL. Per ulteriori informazioni sui motivi per scegliere l'uno piuttosto che l'altro, vedere il training di machine learning accelerato con GPU.
Questa guida illustra come configurare:
- NVIDIA CUDA se si dispone di una scheda grafica NVIDIA ed eseguiate un contenitore di framework ML di esempio
- TensorFlow-DirectML e PyTorch-DirectML nella scheda grafica AMD, Intel o NVIDIA
Prerequisiti
- Assicurarsi di eseguire Windows 11 o Windows 10 versione 21H2 o successiva.
- Installare WSL e configurare un nome utente e una password per la distribuzione linux.
Configurare NVIDIA CUDA con Docker
Scaricare e installare il driver più recente per la GPU NVIDIA
Installare Docker Desktop o installare il motore Docker direttamente in WSL eseguendo il comando seguente
curl https://get.docker.com | sh
sudo service docker start
Se il motore Docker è stato installato direttamente, installare NVIDIA Container Toolkit seguendo la procedura seguente.
Configurare il repository stabile per NVIDIA Container Toolkit eseguendo i comandi seguenti:
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
Installare i pacchetti di runtime NVIDIA e le dipendenze eseguendo i comandi:
sudo apt-get update
sudo apt-get install -y nvidia-docker2
Esegui un contenitore e un esempio di un framework di apprendimento automatico.
Per eseguire un contenitore framework di Machine Learning e iniziare a usare la GPU con questo contenitore TensorFlow NVIDIA NGC, immettere il comando :
docker run --gpus all -it --shm-size=1g --ulimit memlock=-1 --ulimit stack=67108864 nvcr.io/nvidia/tensorflow:20.03-tf2-py3
È possibile eseguire un esempio di modello con training preliminare integrato in questo contenitore eseguendo i comandi:
cd nvidia-examples/cnn/
python resnet.py --batch_size=64
Altri modi per configurare e usare NVIDIA CUDA sono disponibili nella Guida per l'utente di NVIDIA CUDA in WSL.
Configurare TensorFlow-DirectML o PyTorch-DirectML
Scaricare e installare il driver più recente dal sito Web dei fornitori di GPU: AMD, Intel o NVIDIA.
Configurare un ambiente Python.
È consigliabile configurare un ambiente Python virtuale. Sono disponibili molti strumenti che è possibile usare per configurare un ambiente Python virtuale. Per queste istruzioni si userà miniconda di Anaconda.
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
Installare il framework di Machine Learning supportato da DirectML preferito.
TensorFlow-DirectML:
pip install tensorflow-directml
PyTorch-DirectML:
sudo apt install libblas3 libomp5 liblapack3
pip install torch-directml
Eseguire un esempio di aggiunta rapida in una sessione Interattiva di Python per TensorFlow-DirectML o PyTorch-DirectML per assicurarsi che tutto funzioni.
In caso di domande o problemi, visitare il repository DirectML su GitHub.
Più GPU
Se nel computer sono presenti più GPU, è anche possibile accedervi all'interno di WSL. Tuttavia, sarà possibile accedere solo uno alla volta. Per scegliere una GPU specifica, impostare la variabile di ambiente seguente sul nome della GPU visualizzata in Gestione dispositivi:
export MESA_D3D12_DEFAULT_ADAPTER_NAME="<NameFromDeviceManager>"
In questo modo verrà eseguita una corrispondenza di stringa, quindi se la si imposta su "NVIDIA" corrisponderà alla prima GPU che inizia con "NVIDIA".
Risorse aggiuntive
Windows Subsystem for Linux