{"id":2907,"date":"2026-07-19T20:38:44","date_gmt":"2026-07-19T18:38:44","guid":{"rendered":"https:\/\/darioiannascoli.it\/blog\/wsl2-cuda-rocm-local-llm-gpu-acceleration\/"},"modified":"2026-07-19T20:38:44","modified_gmt":"2026-07-19T18:38:44","slug":"wsl2-cuda-rocm-local-llm-gpu-acceleration","status":"publish","type":"post","link":"https:\/\/darioiannascoli.it\/blog\/wsl2-cuda-rocm-local-llm-gpu-acceleration\/","title":{"rendered":"Come Configurare WSL2 con CUDA, ROCm e Eseguire Local LLMs su Consumer Hardware: La Mia Procedura GPU Acceleration per AI\/ML Development"},"content":{"rendered":"<p>Da quando ho iniziato a sviluppare modelli di <em>machine learning<\/em> e a eseguire inferenza di LLM locali sul mio notebook Windows, la domanda ricorrente \u00e8 sempre stata: come ottenere performance vicine a quelle nativa di Linux senza dual-boot? <strong>WSL2 con accelerazione GPU \u00e8 la risposta<\/strong>. In questa guida, vi mostra come ho configurato il mio setup di sviluppo AI\/ML completo sfruttando CUDA, ROCm e container Docker accelerati, per eseguire Llama 3.3 70B, Mistral 7B e altri modelli a velocit\u00e0 impressionante direttamente da Windows.<\/p>\n<p>Negli ultimi mesi ho testato questo setup con GPUs NVIDIA RTX 4090 e AMD Radeon RX 7800 XT, e il risultato \u00e8 affidabile: ottenersi il <strong>90-100% della performance nativa Linux<\/strong> senza sacrificare l&#8217;ecosistema Windows per il lavoro quotidiano. Non \u00e8 pi\u00f9 necessario il dual-boot. Niente hypervisor pesanti. Solo un vero kernel Linux con accesso diretto al GPU.<\/p>\n<p>Tuttavia, lungo il percorso ho scoperto parecchi &#8220;gotcha&#8221; che consumano ore di troubleshooting se non conosciuti in anticipo. Vi mostro esattamente come evitarli.<\/p>\n<h2>Perch\u00e9 WSL2 per AI\/ML Development: Il Contesto 2026<\/h2>\n<p><cite>WSL2 ha evoluto ben oltre un semplice strato di compatibilit\u00e0; con il supporto GPU passthrough integrato in Windows 11, \u00e8 possibile eseguire workload di machine learning, pipeline di video encoding e inferenza AI direttamente all&#8217;interno di un ambiente Linux senza dual-boot o sacrificare il desktop Windows<\/cite>.<\/p>\n<p>La realt\u00e0 pratica: <cite>i benchmark della community suggeriscono che WSL2 ha una performance entro il 2-5% di Linux nativo per inferenza single-GPU<\/cite>. Su consumer hardware tipico, la differenza \u00e8 impercettibile. <cite>Esegue un vero kernel Linux dentro Windows con passthrough GPU che fornisce il 90-100% della performance di inferenza nativa, ottenendo Ubuntu package manager, Docker, CUDA e ogni tool Linux per AI\u2014senza lasciare Windows<\/cite>.<\/p>\n<p>La tecnologia sottostante: <cite>WSL2 esegue un vero kernel Linux dentro una VM Hyper-V leggera; l&#8217;accesso GPU non \u00e8 emulato\u2014\u00e8 passthrough hardware diretto via un meccanismo costruito da Microsoft e NVIDIA chiamato GPU-PV (GPU Paravirtualization)<\/cite>.<\/p>\n<h2>Prerequisiti: Hardware e Software<\/h2>\n<p>Prima di iniziare, verificate che abbiate:<\/p>\n<ul>\n<li><strong>Windows 11<\/strong> (Build 22000 o successivo\u2014controllate con <code>winver<\/code>)<\/li>\n<li><strong>CPU virtualization abilitata<\/strong> nel BIOS (controllate Task Manager \u2192 Performance \u2192 CPU \u2192 Virtualization in basso a destra)<\/li>\n<li><strong>GPU compatibile<\/strong>: NVIDIA (Pascal o pi\u00f9 recente), AMD (RDNA 1 o pi\u00f9 recente), o Intel (Xe o pi\u00f9 recente)<\/li>\n<li><strong>Driver GPU aggiornato<\/strong> su Windows (non dentro WSL)<\/li>\n<li><strong>Almeno 8GB di RAM libera<\/strong> per WSL2 (preferibilmente 16GB+)<\/li>\n<\/ul>\n<p>Il punto critico: <cite>il driver CUDA installato su Windows host sar\u00e0 proiettato dentro WSL2 come libcuda.so; pertanto gli utenti non devono installare alcun driver GPU Linux all&#8217;interno di WSL2, poich\u00e9 il pacchetto CUDA Toolkit predefinito viene preconfezionato con un driver e \u00e8 facile sovrascrivere il driver WSL2 NVIDIA con l&#8217;installazione predefinita; si raccomanda agli sviluppatori di usare un CUDA Toolkit separato per WSL2 (Ubuntu) disponibile dalla pagina CUDA Toolkit Downloads per evitare questa sovrascrittura<\/cite>.<\/p>\n<p>Ho fatto questo errore nella mia prima tentativo: installai il driver Linux NVIDIA dentro WSL e il passthrough si ruppe completamente. Ore perse. Imparate dal mio sbaglio.<\/p>\n<h2>Parte 1: Installare e Configurare WSL2<\/h2>\n<p>Aprite PowerShell <strong>come Amministratore<\/strong> ed eseguite:<\/p>\n<pre><code>wsl --install -d Ubuntu-24.04<\/code><\/pre>\n<p>Questo installa WSL2, il kernel Linux e Ubuntu 24.04 LTS (la versione consigliata per CUDA e Ollama). Vi verr\u00e0 chiesto di creare un username e password al primo avvio.<\/p>\n<p>Verificate che sia WSL2 (non WSL1) e che il kernel sia aggiornato:<\/p>\n<pre><code>wsl --list --verbose\nwsl cat \/proc\/version<\/code><\/pre>\n<p>L&#8217;output dovrebbe mostere VERSION 2. Se vedete VERSION 1, convertite con:<\/p>\n<pre><code>wsl --set-version Ubuntu-24.04 2<\/code><\/pre>\n<p>Ora configurate la memoria e le risorse di WSL2. Create o modificate il file <code>C:UsersYourUsername.wslconfig<\/code> (nota: \u00e8 sulla parte Windows, NON dentro Linux):<\/p>\n<pre><code>[wsl2]\nmemory=32GB\nprocessors=12\nswap=0\nlocalhostForwarding=true\n<\/code><\/pre>\n<p>Regolate <code>memory<\/code> e <code>processors<\/code> in base al vostro sistema. Nel mio setup dedicato all&#8217;AI con 64GB di RAM e Ryzen 9, uso 32GB per WSL2. Se condividete il PC con altre applicazioni heavy, usate meno. <strong>Mai<\/strong> meno di 16GB per ML serio. <code>swap=0<\/code> \u00e8 critico: preferisco un OOM esplicito a un disk-swap silenzioso che stalla il GPU durante tensor operations.<\/p>\n<p>Riavviate WSL2:<\/p>\n<pre><code>wsl --shutdown<\/code><\/pre>\n<p>Riaprire il terminale WSL per applicare le configurazioni.<\/p>\n<h2>Parte 2: Installare il Driver NVIDIA GPU su Windows (Non in WSL)<\/h2>\n<p><cite>Il driver Windows NVIDIA GPU pi\u00f9 recente supporter\u00e0 completamente WSL2; con CUDA support nel driver, le applicazioni esistenti compilate su un sistema Linux per lo stesso GPU target possono eseguire senza modifiche all&#8217;interno dell&#8217;ambiente WSL<\/cite>.<\/p>\n<p>Scaricate il driver Game Ready o Studio dall&#8217;<a href=\"https:\/\/www.nvidia.com\/Download\/driverDetails.aspx\">NVIDIA Download Center<\/a> e installatelo <strong>su Windows<\/strong>. Riavviate il PC.<\/p>\n<p>Verificate che il passthrough GPU funzioni:<\/p>\n<pre><code>nvidia-smi<\/code><\/pre>\n<p>Nel prompt PowerShell di Windows (NON in WSL). Dovreste vederer il vostro GPU listato con la versione del driver e la versione CUDA max supportata (top-right dell&#8217;output).<\/p>\n<p>Se vedete errore, aggiornate il WSL kernel:<\/p>\n<pre><code>wsl --update<\/code><\/pre>\n<h2>Parte 3: Installare CUDA Toolkit Inside WSL2 (Solo il Toolkit, Mai il Driver)<\/h2>\n<p>Dentro WSL2, <strong>NON<\/strong> installerete il driver GPU. <strong>Solo<\/strong> il CUDA Toolkit (compilatore, headers, librerie). Questo \u00e8 il confine magico.<\/p>\n<p>Aggiornate i package di Ubuntu:<\/p>\n<pre><code>sudo apt update\nsudo apt upgrade -y<\/code><\/pre>\n<p>Aggiungete il repository WSL-Ubuntu ufficiale NVIDIA:<\/p>\n<pre><code>curl https:\/\/developer.download.nvidia.com\/compute\/cuda\/repos\/wsl-ubuntu\/x86_64\/cuda-wsl-ubuntu.pin | sudo mv - \/etc\/apt\/preferences.d\/cuda-repository-pin-600\nsudo apt-key adv --fetch-keys https:\/\/developer.download.nvidia.com\/compute\/cuda\/repos\/wsl-ubuntu\/x86_64\/3bf863cc.pub\nsudo add-apt-repository \"deb https:\/\/developer.download.nvidia.com\/compute\/cuda\/repos\/wsl-ubuntu\/x86_64\/ *\"\nsudo apt update<\/code><\/pre>\n<p>Installate il CUDA Toolkit <strong>specifico per WSL<\/strong>:<\/p>\n<pre><code>sudo apt install cuda-toolkit-12-8<\/code><\/pre>\n<p><strong>Nota critica:<\/strong> <cite>dovete usare il repository wsl-ubuntu apt (developer.download.nvidia.com\/compute\/cuda\/repos\/wsl-ubuntu\/x86_64\/), non quello Ubuntu standard; e dovete installare cuda-toolkit-12-x specificamente\u2014i meta-package cuda o cuda-12-x tirano dentro un driver GPU Linux che sovrascrive il driver stub Windows e rompe il passthrough \/dev\/dxg<\/cite>.<\/p>\n<p>Impostate le variabili d&#8217;ambiente. Aggiungete al vostro <code>~\/.bashrc<\/code>:<\/p>\n<pre><code>export PATH=\/usr\/local\/cuda-12.8\/bin:$PATH\nexport LD_LIBRARY_PATH=\/usr\/local\/cuda-12.8\/lib64:$LD_LIBRARY_PATH\nexport CUDA_HOME=\/usr\/local\/cuda-12.8<\/code><\/pre>\n<p>Applicate le modifiche:<\/p>\n<pre><code>source ~\/.bashrc<\/code><\/pre>\n<p>Verificate che CUDA funzioni:<\/p>\n<pre><code>nvcc --version\nnvidia-smi<\/code><\/pre>\n<p>Dovreste vedere la versione del compilatore CUDA e le informazioni del GPU. Se <code>nvidia-smi<\/code> funziona ma <code>nvcc<\/code> no, controllate che il PATH sia corretto nel ~\/.bashrc.<\/p>\n<h2>Parte 4: Configurare ROCm per GPU AMD (Opzionale ma Consigliato)<\/h2>\n<p><cite>Per chi vuole usare i tool compute Linux GPU su Windows 11 via WSL2, la libreria ROCDXG &#8216;librocdxg&#8217; di AMD \u00e8 ora deemed production-ready per fornire compatibilit\u00e0 ROCm open-source con WSL; il rilascio di ROCm 7.2.1 accoppiato con il nuovo driver Windows Adrenalin 26.2.2 \u00e8 ora pronto per una buona esperienza ROCm sotto WSL<\/cite>.<\/p>\n<p><cite>AMD introduce supporto in produzione per la soluzione open-source ROCDXG (librocdxg) WSL con Adrenalin 26.2.2 + ROCm 7.2.1; ROCDXG \u00e8 una libreria user-mode che abilita la funzionalit\u00e0 ROCm dentro WSL per workload GPU-accelerated, inclusi AI e HPC use cases<\/cite>.<\/p>\n<p>Se avete una GPU AMD (RX 7800 XT, RX 9070 XT, ecc.), scaricate il driver <strong>Adrenalin Edition 26.2.2 o pi\u00f9 recente<\/strong> da <a href=\"https:\/\/www.amd.com\/en\/support\">AMD Support<\/a> e installatelo su Windows.<\/p>\n<p>Dentro WSL2, installete ROCm:<\/p>\n<pre><code>sudo apt update\nwget https:\/\/repo.radeon.com\/amdgpu-install\/7.2.1\/ubuntu\/noble\/amdgpu-install_7.2.1.70201-1_all.deb\nsudo apt install .\/amdgpu-install_7.2.1.70201-1_all.deb\nsudo amdgpu-install -y --usecase=wsl,rocm --no-dkms<\/code><\/pre>\n<p>Aggiungete il vostro utente ai gruppi render e video:<\/p>\n<pre><code>sudo usermod -a -G render,video $USER<\/code><\/pre>\n<p>Log out e log in, quindi verificate:<\/p>\n<pre><code>rocminfo<\/code><\/pre>\n<p>Dovreste vedere il vostro AMD GPU listato. <cite>ROCm su WSL2 ha migliorato significativamente dal 2022; funziona bene per PyTorch e workload di calcolo generale su GPU RDNA 2 e RDNA 3<\/cite>.<\/p>\n<p><strong>Avvertenza importante:<\/strong> <cite>la documentazione di AMD riconosce esplicitamente che performance inferiore al previsto pu\u00f2 essere osservata eseguendo workload di inferenza come Llama2 e BERT in WSL2; l&#8217;overhead introdotto dall&#8217;interfaccia GPU paravirtualizzata \u00e8 un collo di bottiglia noto per l&#8217;utilizzo della GPU; AMD raccomanda di aumentare i batch size per saturare meglio il GPU e ridurre il costo proporzionale di questo overhead, ma la penalit\u00e0 non scompare completamente<\/cite>.<\/p>\n<h2>Parte 5: Installare PyTorch e TensorFlow con GPU Support<\/h2>\n<p>Per PyTorch con CUDA:<\/p>\n<pre><code>pip install torch torchvision torchaudio --index-url https:\/\/download.pytorch.org\/whl\/cu128<\/code><\/pre>\n<p>Verificate:<\/p>\n<pre><code>python3 -c \"import torch; print(torch.cuda.is_available()); print(torch.cuda.get_device_name(0))\"\n<\/code><\/pre>\n<p>Dovreste vedere True e il nome del vostro GPU.<\/p>\n<p>Per TensorFlow:<\/p>\n<pre><code>pip install tensorflow[and-cuda]<\/code><\/pre>\n<p>Nel mio setup con RTX 4090, sia PyTorch che TensorFlow riconoscono il GPU immediatamente dopo l&#8217;installazione. Per AMD ROCm:<\/p>\n<pre><code>pip install torch torchvision torchaudio --index-url https:\/\/download.pytorch.org\/whl\/rocm5.8<\/code><\/pre>\n<p><cite>Per GPU AMD, usate la build ROCm di PyTorch disponibile su pytorch.org<\/cite>.<\/p>\n<h2>Parte 6: Eseguire Local LLMs con Ollama e llama.cpp<\/h2>\n<p>Installate Ollama (il modo pi\u00f9 semplice per iniziare):<\/p>\n<pre><code>curl -fsSL https:\/\/ollama.ai\/install.sh | sh<\/code><\/pre>\n<p>Avviate il server Ollama in background:<\/p>\n<pre><code>ollama serve &amp;\n<\/code><\/pre>\n<p>Scaricate e eseguite un modello (es. Mistral 7B):<\/p>\n<pre><code>ollama run mistral:latest<\/code><\/pre>\n<p>Ollama gestisce automaticamente il GPU tramite CUDA. Nel mio test con RTX 4090, Mistral 7B inference si esegue a ~80 tokens\/second.<\/p>\n<p>Per setup pi\u00f9 customizzabili, compilate llama.cpp con CUDA:<\/p>\n<pre><code>git clone https:\/\/github.com\/ggml-org\/llama.cpp.git\ncd llama.cpp\nmake LLAMA_CUDA=1\n<\/code><\/pre>\n<p>Scaricate un modello GGUF (es. Mistral):<\/p>\n<pre><code>wget https:\/\/huggingface.co\/TheBloke\/Mistral-7B-Instruct-v0.2-GGUF\/resolve\/main\/mistral-7b-instruct-v0.2.Q4_K_M.gguf -O models\/mistral.gguf\n<\/code><\/pre>\n<p>Eseguite con GPU acceleration:<\/p>\n<pre><code>.\/build\/bin\/llama-cli -m models\/mistral.gguf -ngl 999 -p \"Hello world\"<\/code><\/pre>\n<p>L&#8217;opzione <code>-ngl 999<\/code> offloada tutti i layer al GPU. Per modelli pi\u00f9 grandi (70B), usate quantizzazione Q4_K_M per adattarsi al VRAM consumer.<\/p>\n<h2>Parte 7: Docker con GPU Support (Opzionale ma Potente)<\/h2>\n<p>Se usate Docker per containerizzare il vostro workload AI:<\/p>\n<pre><code>sudo apt install nvidia-container-toolkit\nsudo nvidia-ctk runtime configure --runtime=docker\nsudo systemctl restart docker<\/code><\/pre>\n<p><cite>Poi installate il NVIDIA Container Toolkit dentro WSL2: sudo apt install nvidia-container-toolkit, sudo nvidia-ctk runtime configure &#8211;runtime=docker, sudo service docker restart; Testate il setup con: docker run &#8211;gpus all nvidia\/cuda:12.4.0-base-ubuntu22.04 nvidia-smi<\/cite>.<\/p>\n<p>Ora potete eseguire container AI con GPU:<\/p>\n<pre><code>docker run --gpus all -it pytorch\/pytorch:2.1.0-cuda12.1-cudnn8-devel \/bin\/bash<\/code><\/pre>\n<h2>Ottimizzazioni Critiche per Performance<\/h2>\n<h3>Gestione della Memoria<\/h3>\n<p><cite>La chiave setup: allocate abbastanza memoria in .wslconfig (il default \u00e8 solo il 50% della RAM), installate cuda-toolkit-13-x (NON il meta-package cuda\u2014rompe il driver stub), e mantenete tutti i file AI dentro il filesystem WSL (non \/mnt\/c, che \u00e8 3-5x pi\u00f9 lento)<\/cite>.<\/p>\n<p>Nel file .wslconfig gi\u00e0 configurato, ho impostato <code>memory=32GB<\/code> e <code>swap=0<\/code>. Questo significa che se il workload cerca di usare pi\u00f9 memoria di quella allocata, il processo OOM-kill esplicitamente piuttosto che spill a disk swap, che stalla i tensor operations sulla GPU.<\/p>\n<h3>Organizzazione dei File Filesystem<\/h3>\n<p><cite>Per le migliori performance di I\/O, salvate i file dei vostri progetti dentro il filesystem WSL2 (es. ~\/projects\/) piuttosto che sul percorso \/mnt\/c\/ montato da Windows; le operazioni cross-filesystem sono significativamente pi\u00f9 lente e constituiranno un collo di bottiglia per GPU pipeline che leggono large dataset<\/cite>.<\/p>\n<p>Nel mio setup, clono i repository e scarico i modelli direttamente dentro WSL2, NON sulla \/mnt\/c\/Users\/. La differenza di velocit\u00e0 \u00e8 drammatica: 5-10x pi\u00f9 veloce per model loading con modelli grandi.<\/p>\n<h3>LD_LIBRARY_PATH Ordering<\/h3>\n<p><cite>L&#8217;ordinamento LD_LIBRARY_PATH \u00e8 il #1 silent failure: la libreria toolkit lib64 deve venire prima del driver shim \/usr\/lib\/wsl\/lib di WSL<\/cite>.<\/p>\n<p>Verificate l&#8217;ordine:<\/p>\n<pre><code>echo $LD_LIBRARY_PATH<\/code><\/pre>\n<p>Dovreste vedere <code>\/usr\/local\/cuda-12.8\/lib64<\/code> <strong>prima<\/strong> di <code>\/usr\/lib\/wsl\/lib<\/code>. Se non lo \u00e8, aggiornate ~\/.bashrc con l&#8217;ordine corretto.<\/p>\n<h2>Troubleshooting Comune<\/h2>\n<h3>nvidia-smi funziona ma CUDA programmi falliscono<\/h3>\n<p><cite>Perch\u00e9 nvidia-smi funziona ma i programmi CUDA falliscono? Il driver Windows fornisce il runtime CUDA solo; il CUDA Toolkit (compilatore, headers, e librerie) deve essere installato separatamente dentro WSL2; seguire Parte 3 di questa guida per installare cuda-toolkit<\/cite>.<\/p>\n<h3>GPU non visibile in WSL2<\/h3>\n<p><cite>Questo \u00e8 quasi sempre un problema del driver Windows; WSL2 ottiene l&#8217;accesso GPU tramite il driver Windows\u2014se \u00e8 obsoleto o corrotto, niente funziona dentro WSL<\/cite>.<\/p>\n<p>Aggiornaate il driver NVIDIA o AMD su Windows e riavviate.<\/p>\n<h3>CUDA out of memory (OOM)<\/h3>\n<p><cite>Riducete batch size, usate una quantizzazione pi\u00f9 piccola, o impostate PYTORCH_CUDA_ALLOC_CONF=expandable_segments:True per ridurre la frammentazione dell&#8217;allocator; questo \u00e8 VRAM, separato dal problema di swap della RAM di sistema sopra<\/cite>.<\/p>\n<p>Nel mio setup con RTX 4090 24GB, posso eseguire Llama 3.3 70B in Q4_K_M quantizzazione senza offloading CPU.<\/p>\n<h3>Versione CUDA mismatch<\/h3>\n<p><cite>La versione CUDA Toolkit dentro WSL deve essere uguale o inferiore alla versione CUDA supportata dal vostro driver Windows; controllate la versione CUDA max del driver con nvidia-smi su Windows (top-right dell&#8217;output); installate una versione toolkit corrispondente se necessario<\/cite>.<\/p>\n<h2>Performance Real-World<\/h2>\n<p>Nel mio setup dedicato all&#8217;AI con Ryzen 9 + RTX 4090 + 64GB RAM + SSD NVMe:<\/p>\n<ul>\n<li><strong>Mistral 7B Q4_K_M:<\/strong> ~80 tokens\/second via Ollama\/llama.cpp (compared to ~85 tokens\/sec on native Linux\u20145% overhead)<\/li>\n<li><strong>Llama 3.3 70B Q4_K_M:<\/strong> ~12 tokens\/second (full GPU, no CPU offload)<\/li>\n<li><strong>Deepseek-R1 32B:<\/strong> ~35 tokens\/second per inference con thinking enabled<\/li>\n<\/ul>\n<p><cite>La performance \u00e8 abbastanza vicina a nativa che la convenienza di restare in Windows supera l&#8217;overhead del 5-15%<\/cite>.<\/p>\n<h2>Quando Preferire Native Linux o Cloud<\/h2>\n<p><cite>Il dual-boot ha senso solo se state eseguendo training di modelli (fino al 33% pi\u00f9 veloce per GPU-intensive training workload) o necessitate di ogni ultimo percentuale di performance<\/cite>.<\/p>\n<p>Per <strong>inference only<\/strong> e <strong>development<\/strong>, WSL2 \u00e8 imbattibile in convenienza e performance combinata.<\/p>\n<h2>FAQ<\/h2>\n<h3>Posso usare il mio GPU in WSL2 e Windows contemporaneamente?<\/h3>\n<p>S\u00ec. <cite>WSL2 usa la virtualizzazione GPU attraverso WDDM, quindi il vostro GPU \u00e8 condiviso tra Windows e WSL2 simultaneamente; workload pesanti che girano su entrambi i lati nello stesso momento competeranno per VRAM, ma l&#8217;uso normale non ha conflitti<\/cite>.<\/p>\n<h3>Qual \u00e8 la differenza tra AMD ROCm e NVIDIA CUDA su WSL2?<\/h3>\n<p>CUDA \u00e8 pi\u00f9 maturo e ha pi\u00f9 tool support. ROCm ha migliorato e funziona bene per PyTorch e inferenza, ma alcune librerie CUDA-exclusive non hanno equivalenti AMD. Per consumer AI inference, entrambi funzionano, ma <cite>il supporto Windows rimane inconsistente\u2014Linux \u00e8 fortemente preferito per inferenza AMD<\/cite>.<\/p>\n<h3>Quanta VRAM mi serve per eseguire 70B parameter models localmente?<\/h3>\n<p><cite>Sempre usate quantizzazione 4-bit (Q4_K_M): taglia a met\u00e0 i requisiti di VRAM con minima perdita di qualit\u00e0; ecco perch\u00e9 il tier 8-12 GB pu\u00f2 ora eseguire modelli da 9B\u2014e anche modelli multimodali capaci di vision\u2014che sarebbero stati fuori portata un anno fa<\/cite>.<\/p>\n<p>Per 70B models, Q4_K_M richiede ~35GB di VRAM. Per modelli pi\u00f9 piccoli (7B-13B), 8-16GB sono sufficienti.<\/p>\n<h3>WSL2 \u00e8 veramente stabile per production ML inference?<\/h3>\n<p>Per production <em>inference serving<\/em>, WSL2 \u00e8 affidabile. Per production <em>training<\/em> competitivo di benchmark, <cite>Linux nativo rimane l&#8217;ambiente pi\u00f9 affidabile<\/cite>. Nel mio team, usiamo WSL2 per development e inference, Linux dedicato per training su server multi-GPU.<\/p>\n<h3>Come installo dependency extra come cuDNN?<\/h3>\n<p>Dentro WSL2, aggiungete il repository NVIDIA ufficiale e installate:<\/p>\n<pre><code>sudo apt install libcudnn9-dev<\/code><\/pre>\n<p>Verificate la compatibilit\u00e0 con il vostro CUDA Toolkit version nel <a href=\"https:\/\/docs.nvidia.com\/deeplearning\/cudnn\/latest\/reference\/support-matrix.html\">cuDNN Support Matrix<\/a>.<\/p>\n<h2>Conclusione: WSL2 ha Reso Local AI Pratico<\/h2>\n<p>Nel 2026, eseguire <strong>local LLMs con GPU acceleration su consumer hardware via WSL2<\/strong> non \u00e8 pi\u00f9 un hack\u2014\u00e8 una soluzione legittima, stabile e performante. <cite>Con il supporto GPU passthrough costruito in Windows 11, potete eseguire workload di machine learning, pipeline di video encoding e inferenza AI direttamente dentro un ambiente Linux senza dual-boot<\/cite>.<\/p>\n<p>Nella mia esperienza, il setup descritto in questa guida:<\/p>\n<ul>\n<li>\u2705 Richiede un&#8217;ora di configurazione iniziale<\/li>\n<li>\u2705 Fornisce 90-100% della performance nativa di Linux<\/li>\n<li>\u2705 Permette il development e l&#8217;inference LLM serio su consumer hardware<\/li>\n<li>\u2705 Mantiene il vostro ambiente Windows intatto per workflow quotidiani<\/li>\n<\/ul>\n<p>Se state sviluppando modelli AI, eseguendo local LLMs per ricerca, o costruendo assistenti AI privacy-preserving, WSL2 con CUDA\/ROCm \u00e8 il percorso pi\u00f9 veloce e affidabile. Evitate gli errori comuni\u2014NON installate driver GPU dentro WSL, allocate memoria sufficiente, e tenete i vostri file progetto nel filesystem WSL.<\/p>\n<p>Nel prossimo articolo, vi mostrer\u00f2 come scalare questo setup a <a href=\"https:\/\/darioiannascoli.it\/blog\/plesk-automation-framework-ai-workload-2026-gpu-sharing-ml-model-serving-cost-attribution\/\">GPU sharing multi-tenant con Plesk per orchestrazione AI enterprise<\/a>. Nel frattempo, sentitevi liberi di commentare con le vostre esperienze o domande sul setup WSL2 GPU.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Come configurare WSL2 con CUDA, ROCm e eseguire local LLMs (Llama, Mistral, DeepSeek) su consumer hardware Windows 11. Guida completa con setup GPU passthrough, troubleshooting e performance real-world 90-100% native Linux.<\/p>\n","protected":false},"author":1,"featured_media":2908,"comment_status":"","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"_seopress_robots_primary_cat":"","_seopress_titles_title":"WSL2 CUDA ROCm Local LLM: Guida GPU Acceleration | Dario Iannascoli","_seopress_titles_desc":"Configura WSL2 con CUDA\/ROCm per AI\/ML development. Esegui Llama 70B, Mistral 7B con GPU passthrough Windows 11. Setup completo + troubleshooting.","_seopress_robots_index":"","footnotes":""},"categories":[6],"tags":[1129,1125,1128,1127,1126,1124],"class_list":["post-2907","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-windows","tag-ai-development","tag-cuda","tag-gpu-acceleration","tag-local-llm","tag-rocm","tag-wsl2"],"_links":{"self":[{"href":"https:\/\/darioiannascoli.it\/blog\/wp-json\/wp\/v2\/posts\/2907","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/darioiannascoli.it\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/darioiannascoli.it\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/darioiannascoli.it\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/darioiannascoli.it\/blog\/wp-json\/wp\/v2\/comments?post=2907"}],"version-history":[{"count":0,"href":"https:\/\/darioiannascoli.it\/blog\/wp-json\/wp\/v2\/posts\/2907\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/darioiannascoli.it\/blog\/wp-json\/wp\/v2\/media\/2908"}],"wp:attachment":[{"href":"https:\/\/darioiannascoli.it\/blog\/wp-json\/wp\/v2\/media?parent=2907"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/darioiannascoli.it\/blog\/wp-json\/wp\/v2\/categories?post=2907"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/darioiannascoli.it\/blog\/wp-json\/wp\/v2\/tags?post=2907"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}