ROCm su WSL2 con Ryzen AI Max+ 395

martedì 24 febbraio 2026

Negli ultimi giorni, Pietro, un mio collega, ha iniziato a sperimentare con il suo nuovo hardware: una mini workstation basata su AMD Ryzen AI Max+ 395 (Bosgame M5 AI Mini Desktop Ryzen AI Max+ 395, con 128GB di memoria condivisa + 2TB storage). Ha dedicato tempo a far funzionare ROCm in Windows 11/WSL2 (e nei container), uno scenario non ancora pienamente supportato, sebbene siano disponibili build in anteprima. Durante la procedura di installazione ha riscontrato problemi simili a quelli segnalati da altri sviluppatori nella GitHub Issue #4952. Grazie alla sua perseveranza, è riuscito a individuare una soluzione funzionante. Questo post riassume in modo pratico i passaggi che hanno consentito di abilitare il supporto ROCm sulla GPU Radeon 8060S in WSL2.

Disclaimer: tutti i passaggi e i risultati riportati di seguito sono stati provati solo sulla sua macchina e probabilmente presto saranno superati non appena saranno disponibili aggiornamenti ufficiali. La configurazione dell'utente (versione driver, build di Windows, distribuzione WSL, percorso SDK, stack Python) potrebbe richiedere modifiche. Questa non è una guida ufficiale AMD, ma una condivisione per la community basata sulla sua esperienza. Fate sempre riferimento alla documentazione ufficiale AMD per informazioni aggiornate e accurate.

Prerequisiti

Prima di procedere con ROCm, verificate che l'ambiente host e guest rispetti le seguenti condizioni:

  • Windows 11 25H2
  • Driver AMD Adrenalin più recenti (26.1.1+)
  • Windows SDK (10.0.26100.0)
  • Versione WSL2 più recente (controllate con wsl --update; dovrebbe essere la v2.6.3.0)
  • Distro Ubuntu 24.04 (in WSL2, con tutti gli aggiornamenti applicati)

Installazione di ROCm e correzione della configurazione

Si procede dai pacchetti base ROCm e poi si compila da zero la libreria librocdxg. Questa libreria abilita le funzionalità ROCm su Windows Subsystem for Linux e consente di eseguire carichi di lavoro Linux accelerati da GPU in WSL, supportando scenari AI, HPC e altri casi d'uso sperimentali.

Per i dettagli, fate riferimento alla guida ufficiale AMD per l'installazione di ROCm su Linux.

sudo apt update
sudo apt install -y cmake python3-venv
wget https://repo.radeon.com/amdgpu-install/7.2/ubuntu/jammy/amdgpu-install_7.2.70200-1_all.deb
sudo dpkg -i amdgpu-install_7.2.70200-1_all.deb
sudo usermod -a -G render,video $LOGNAME # Aggiunge l'utente corrente ai gruppi render e video
sudo apt update && sudo apt -f install -y
sudo amdgpu-install --usecase=wsl,rocm --no-dkms -y

A questo punto, altri utenti hanno riportato il problema "No WDDM adapters". Si può risolvere ricompilando librocdxg con il percorso corretto del Windows SDK. Questo è stato il passaggio chiave per far rilevare la GPU in WSL2.

# Imposta il percorso del Windows SDK (modificare il numero di versione se diverso)
export win_sdk='/mnt/c/Program Files (x86)/Windows Kits/10/Include/10.0.26100.0/'

# Clona e compila
git clone https://github.com/ROCm/librocdxg.git
cd librocdxg
mkdir build && cd build
cmake .. -DWIN_SDK="${win_sdk}/shared"
make
sudo make install

Variabile d'ambiente richiesta

Per consentire il rilevamento della GPU con ROCm, è necessario abilitare la DXG detection:

export HSA_ENABLE_DXG_DETECTION=1

È possibile aggiungere questa riga al file ~/.bashrc per renderla permanente:

echo 'export HSA_ENABLE_DXG_DETECTION=1' >> ~/.bashrc
source ~/.bashrc

Comandi di validazione

Dopo un wsl --shutdown da Windows e una nuova sessione WSL, verificate il rilevamento GPU con:

export HSA_ENABLE_DXG_DETECTION=1
lspci | grep VGA
rocminfo | grep -E "(Name|Marketing|gfx)"

L'output atteso è simile al seguente:

03:00.0 VGA compatible controller: Advanced Micro Devices [AMD/ATI] Radeon 8060S
Name:                    gfx1151
Marketing Name:          Radeon 8060S

Test Python

Pietro ha testato anche lo stack ROCm PyTorch in un ambiente Python 3.12 (creando prima un ambiente virtuale). È importante installare le wheel PyTorch specifiche per ROCm, compilate per ROCm 7.2. Le wheel ROCm più recenti sono disponibili nel repository AMD ROCm. Di seguito i comandi di installazione:

wget https://repo.radeon.com/rocm/manylinux/rocm-rel-7.2/torch-2.9.1%2Brocm7.2.0.lw.git7e1940d4-cp312-cp312-linux_x86_64.whl
wget https://repo.radeon.com/rocm/manylinux/rocm-rel-7.2/torchvision-0.24.0%2Brocm7.2.0.gitb919bd0c-cp312-cp312-linux_x86_64.whl
wget https://repo.radeon.com/rocm/manylinux/rocm-rel-7.2/triton-3.5.1%2Brocm7.2.0.gita272dfa8-cp312-cp312-linux_x86_64.whl
wget https://repo.radeon.com/rocm/manylinux/rocm-rel-7.2/torchaudio-2.9.0%2Brocm7.2.0.gite3c6ee2b-cp312-cp312-linux_x86_64.whl
pip3 uninstall -y torch torchvision triton torchaudio
pip3 install torch-2.9.1+rocm7.2.0.lw.git7e1940d4-cp312-cp312-linux_x86_64.whl torchvision-0.24.0+rocm7.2.0.gitb919bd0c-cp312-cp312-linux_x86_64.whl torchaudio-2.9.0+rocm7.2.0.gite3c6ee2b-cp312-cp312-linux_x86_64.whl triton-3.5.1+rocm7.2.0.gita272dfa8-cp312-cp312-linux_x86_64.whl

Se si installa in un ambiente non virtuale, potrebbe essere necessario aggiungere --break-system-packages.

Una volta completata l'installazione, eseguite un test rapido per verificare che PyTorch rilevi la GPU ROCm:

python3 -c "import torch; print(torch.cuda.is_available()); print(torch.cuda.get_device_name(0))"

Problemi e limiti

Al momento questi sono i principali limiti della sua configurazione:

  • rocm-smi non è ancora supportato in WSL
  • Le prestazioni sono buone, ma inferiori a Linux nativo (70-80% del nativo in alcuni test)
  • Gli aggiornamenti di driver e Windows possono richiedere la ricompilazione di librocdxg

Per workload di produzione, vi consiglio comunque di validare la configurazione anche su Linux nativo.


Se provate questa configurazione su hardware diverso o con uno stack Windows/WSL differente, condividete risultati e differenze!