-
-
Notifications
You must be signed in to change notification settings - Fork 0
Windows
Questa guida verrà sicuramente ampliata e corretta nel tempo. In caso di problemi o se si vogliono suggerire modifiche siete fortemente invitati a farlo. Questa guida è fatta da persone per le persone.
Alla fine di questo tutorial avrai creato un ambiente in cui potrai eseguire programmi AI accelerandoli con la tua scheda AMD (per esempio utilizzando stable diffusion per creare immagini). Questa guida è espressamente rivolta a Windows.
Qui non imparerai ad utilizzare i suddetti programmi e senza una conoscenza più o meno avanzata di informatica e di linux potresti non capire alcuni passaggi. Spiegherò solo quello che ritengo fondamentale e che sia estremamente facile da capire, per maggiori informazioni, per esempio sul funzionamento dei programmi, linkerò in apposite sezioni siti e altre guide che reputo utili.
- Una scheda AMD appartenente alle seguenti generazioni: 7000(rdna3)/9000(rdna4). Il supporto per le APU è in forte sviluppo in questo momento e in teoria sono supportare e ci sono anche risultati per quanto riguarda le performance. Per maggiori informazioni vedere la sezione link utili. Questa guida presuppone l'utilizzo di sistemi con una singola scheda video discreta, sistemi con più gpu discrete non sono mai stati testati da me ma con accorgimenti dovrebbero funzionare. Nel caso basta aprire un Issue e discuterne.
- Conoscenza del terminale? In teoria non è necessaria perchè utilizzeremo pochi comandi molto semplici e autoesplicativi però ovviamente una conoscenza anche di base vi potrebbe aiutare
- Installare miniconda: https://www.anaconda.com/docs/getting-started/miniconda/install
- Un po' di pazienza: purtroppo molti passaggi richiedono il download di molti file o altri tempi tecnici per installare software quindi preparatevi qualcosa da bere e da sgranocchiare!
Quanto segue è una sorta di spiegazione più o meno dettagliata di alcuni comandi e concetti presenti nella guida.
Tutto quello che verrà detto in seguito non è preciso dal punto di vista tecnico perché semplificherò fino all'osso tutti i concetti!!!
Il comando cd serve per navigare tra le cartelle: cd [nome cartella], es: cd llama.cpp per entrare nella cartella mentre cd .. per andare nella cartella che contiene quella in cui ti trovi. Si può usare anche con il percorso completo della cartella cd [percorso cartella].
il comando git clone clona la così detta repository da internet per poterla utilizzare sul proprio pc mentre il comando git pull aggiorna la repository locale alla versione madre che utilizza lo sviluppatore. Le repositories non sono altro che un insieme di file in cui si trovano programmi, librerie, etc.
I comandi cmake e make sono fondamentali perchè compilano il programma per farlo funzionare sul tuo computer. In parole povere se questi comandi restituiscono errore durante la compilazione non potrai utilizzare il programma.
Il comando conda serve a gestire gli ambienti virtuali di python. I comandi principali sono: conda create -n [nome ambiente] python=[versione] per creare un ambiente, conda activate [nome ambiente] per attivate l'ambiente e conda remove -n [nome ambiente] --all per rimuovere un ambiente. In generale anche se non è consigliato i pacchetti si installano con pip install e non con conda install. Per maggiori informazioni ci sono decine di guide su internet con tutti i comandi più avanzati.
Saranno presenti spesso le sigle gfx con numeri a seguire: queste sigle rappresentano le famiglie di schede video. Nello specifico gfx1030=rx6000/rdna2, gfx1100=rx7000/rdna3, gfx1201=rx9070, gfx1200=rx9060.
È possibile installare ROCm in diverse maniere su Windows. In questa guida vedremo come sfruttare i pacchetti python che contengono ROCm, semplificando enormemente l'utilizzo e l'installazione.
In seguito creiamo quello che viene definito un ambiente virtuale con miniconda. L'ambiente virtuale ci permette, in caso di problemi, di eliminare l'ambiente e di ricrearne un altro in pochissimo tempo e di utilizzare più versioni di python diverse e con diverse versioni dei pacchetti. Così facendo potremo avere un ambiente specifico per ogni applicazione che funziona sempre e magari crearne di nuovi mano a mano più aggiornati per provare nuove funzioni senza modificare quello funzionante. Verrà utilizzanto il generico nome py312 per l'ambiente. È fortemente consigliato creare ambienti diversi per applicazioni diverse
Creiamo un ambiente python con conda:
conda create -y -n py312 python=3.12
Ed attiviamolo:
conda activate py312
Installiamo ROCm 7.0:
- RDNA 3 (rx 7000, gfx110x):
pip install --index-url https://rocm.nightlies.amd.com/v2/gfx110X-all/ "rocm[libraries,devel]"
- RDNA 4 (rx 9000, gfx120x):
pip install --index-url https://rocm.nightlies.amd.com/v2/gfx120X-all/ "rocm[libraries,devel]"
Pytorch è necessario in alcuni ambiti, principalmente per quanto riguarda la creazione di immagini e quando si lavora con l'audio.
Attiviamo l'ambiente py312:
conda activate py312
Fatto ciò installiamo pytorch:
- RDNA 3 (rx 7000, gfx110x):
pip install --index-url https://rocm.nightlies.amd.com/v2/gfx110X-all/ --pre torch torchaudio torchvision
- RDNA 4 (rx 9000, gfx120x):
pip install --index-url https://rocm.nightlies.amd.com/v2/gfx120X-all/ --pre torch torchaudio torchvision
Finito! Ora non resta che installare i vari programmi oppure, se si è capaci o si ha voglia di sperimentare, è possibile utilizzare direttamente la libreria transformers di Hugging Face in un programma python scritto da voi e accelerare i modelli con la gpu.
Presuppone che tu abbia seguito:
Cloniamo la repository da Github, verrà creata la cartella ComfyUI:
git clone https://github.com/comfyanonymous/ComfyUI.git
Navigiamo nella cartella:
cd ComfyUI
Attiviamo l'ambiente virtuale creato prima con pytorch installato. La guida mostra i comandi con il generico ambiente virtuale py312 (quello creato durante l'installazione di PyTorch) ma consiglio di creare specifici ambienti virtuali per ogni programma:
# Da eseguire in ordine uno alla volta
# Attiviamo l'ambiente virtuale py312
conda activate py312
# Installiamo le dipendenze
pip install -r requirements.txt
Per eseguire ComfyUI:
python main.py
Si può provare ad utilizzare la seguente flag per migliori performance. Se ci sono problemi tornare al comando precedente:
python main.py --use-pytorch-cross-attention
Si può provare ad utilizzare anche questa variabile di ambiente:
TORCH_ROCM_AOTRITON_ENABLE_EXPERIMENTAL=1
Per aggiornare ComfyUI consiglio di lasciare fare tutto il lavoro a ComfyUI-Manager.