Risponderemo a tutte le tue domande!

CUDA® in WSL

L'uso della contenitorizzazione delle applicazioni è diventato un approccio preferito per la gestione dei carichi di lavoro. Sebbene le applicazioni tipiche siano semplici da impacchettare e gestire, le applicazioni che utilizzano le GPU richiedono una considerazione speciale a causa del livello di astrazione aggiuntivo: WSL (Windows Subsystem for Linux). Microsoft ha progettato su misura questo kernel Linux per integrarsi strettamente con il server Windows, garantendo un funzionamento senza soluzione di continuità delle applicazioni su entrambi i sistemi.

Una domanda comune riguarda la sequenza corretta per l'installazione dei driver e delle librerie necessarie che abilitano le funzionalità di calcolo GPU. Per risparmiare tempo e facilitare questo processo, abbiamo preparato questa guida passo passo.

La sequenza appropriata è quella di installare WSL e Linux all'interno del WSL. Successivamente, installare i driver GPU per Windows Server e il toolkit NVIDIA® CUDA® in Linux. Se lo si desidera, Docker Desktop può essere successivamente aggiunto per eseguire eventuali contenitori abilitati per la GPU.

Prima di procedere, assicurarsi che tutti gli aggiornamenti necessari siano installati sul sistema.

Installa WSL e Ubuntu

Per iniziare, seleziona Start > PowerShell ed eseguilo con privilegi amministrativi. Il seguente comando abilita WSL:

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

Una Volta™ terminato il processo di installazione, dovresti riavviare il sistema operativo come al solito e riaprire PowerShell. Aggiorniamo il kernel di WSL:

wsl --update

Ed installare la distribuzione Linux necessaria, ad esempio Ubuntu 22.04 LTS:

wsl --install -d Ubuntu-22.04

La nuova applicazione Ubuntu 22.04 sarà visibile nel menu Start. Cliccandoci sopra, il sistema fornirà una finestra del terminale che esegue un'istanza di Linux Ubuntu. È necessario aggiornare la cache e aggiornare tutti i pacchetti disponibili alle versioni più recenti:

sudo apt update && sudo apt -y upgrade

Il passaggio successivo è l'installazione del gestore di pacchetti di Python e del toolkit NVIDIA® CUDA®. È importante ricordare che non c'è bisogno di installare i driver GPU in questo kernel Linux:

sudo apt -y install python3-pip nvidia-cuda-toolkit

Per garantire il corretto funzionamento di tutti gli script inclusi nel toolkit NVIDIA® CUDA®, è necessario predefinire il loro percorso nella variabile $PATH. È possibile farlo aprendo il seguente file:

nano ~/.bashrc

E aggiungi la seguente stringa alla fine:

export PATH=/home/usergpu/.local/bin${PATH:+:${PATH}}

Salva il file ed esci dal terminale Ubuntu.

Installa i driver NVIDIA®

Segui le nostre istruzioni in questo articolo: Installa i driver NVIDIA® in Windows. L'esito apparirà come segue:

Gestione dispositivi

Installa PyTorch

Apri il terminale di Ubuntu 22.04 e digita il seguente comando per installare PyTorch con supporto CUDA:

pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118

Test in Python

Entra nella console interattiva di Python:

python3
Python 3.10.12 (main, 20 Nov 2023, 15:14:05) [GCC 11.4.0] su linux
Digita "help", "copyright", "credits" o "license" per maggiori informazioni.

E digita questi comandi sequenzialmente:

import torch
torch.cuda.device_count()
5
torch.cuda.is_available()
True

Il primo comando importerà il framework PyTorch. Il secondo comando mostrerà il numero di dispositivi compatibili con CUDA® in un sistema. Il terzo comando indica la disponibilità di utilizzo di CUDA®.

Test in Docker

Inizia installando Docker Desktop. L'installer può essere trovato qui. Riavvia il server ed esegui Docker Desktop. Questa azione avvia il motore Docker. Quindi apri la console Ubuntu 22.04 dal menu Start e digita il seguente comando:

docker run --rm -it --gpus=all nvcr.io/nvidia/k8s/cuda-sample:nbody nbody -gpu -benchmark -numdevices=5

dove -numdevices è il numero di GPU installate. Per questo esempio eseguiamo un test su un server dedicato con 5 GPU.

Se si ottiene un errore “Error: only 0 devices available, 5 requested. Exiting.” mantieni la calma. Questo è un bug di NVIDIA® e puoi facilmente correggerlo riabilitando ogni GPU in Device Manager. Fare clic con il tasto destro su un menu Start e selezionare Gestione dispositivi. Espandi l'elenco degli adattatori video, seleziona ogni GPU e disabilita dal menu Azione. Dopodiché, Abilita ogni GPU nello stesso modo. Ora questo comando funzionerà perfettamente:

Esegui un esempio in WSL

Conclusione

Questo metodo consente di avviare quasi qualsiasi applicazione, anche se potrebbero esserci alcune limitazioni basate sulle specifiche del sistema. Nonostante queste limitazioni, il deployment è tipicamente senza soluzione di continuità e si possono godere tutti i vantaggi che Linux offre, ma all'interno di un ambiente di Windows Server.

Vedi anche:



Aggiornato: 28.03.2025

Pubblicato: 28.06.2024


Hai altre domande? Scrivici!

By clicking «I Accept» you confirm that you have read and accepted the website Terms and Conditions, Privacy Policy, and Moneyback Policy.