RX7900XTX跑stable diffusion的一些嘗試
新裝了一臺(tái)電腦,由于預(yù)算限制(4900要1w4左右)和顯存需求(能用lora微調(diào)7B大模型),所以選擇了RX 7900XTX(7k左右,24GB顯存,ROCm5.6下速度約等于4080)
A系顯卡做機(jī)器學(xué)習(xí)主打未來可期,目前屬于未來如來的階段,新出的ROCm5.6對(duì)7900XTX有了不完全但是更好的支持,同時(shí)也推出了windows版,不遠(yuǎn)的將來大概pytorch會(huì)對(duì)windows版進(jìn)行支持,當(dāng)然這里主要講的是如今如何使用7900XTX。
因?yàn)榇蠹铱赡苤饕€是買顯卡跑stable diffusion畫畫,而不是要拉個(gè)LLM然后PEFT,所以先介紹怎么在一臺(tái)裝有7900xtx的顯卡上部署stable diffusion。
由于torch暫時(shí)不支持windows版的ROCm,所以在一切開始前需要安裝一個(gè)linux系統(tǒng),網(wǎng)上一般推薦ubuntu22.04,但是親測(cè)arch linux也可以,我在linux 6.4.9.arch1-1上也部署成功了。
在這里需要先聲明一下,arch linux的安裝過程比ubuntu復(fù)雜很多,雖然后續(xù)部署ROCm的過程非常簡(jiǎn)單,但是安裝的過程很有可能讓人自閉,請(qǐng)大家謹(jǐn)慎抉擇。
arch linux安裝過程非常復(fù)雜,建議參考arch linux中文wiki中的安裝指南以及這篇教程,這里主要說一下幾個(gè)可能有啟發(fā)的步驟。
首先假設(shè)大家電腦都已經(jīng)裝了windows系統(tǒng),如果沒有系統(tǒng)引導(dǎo)盤的話可以在點(diǎn)擊此電腦->管理->存儲(chǔ)->磁盤管理,刪除一個(gè)已經(jīng)備份好數(shù)據(jù)沒用的卷,在新的空間上分出一個(gè)10GB左右的簡(jiǎn)單卷,并保留一個(gè)100GB以上(最好更大,比如我整了400GB)的未分配空間
然后在官網(wǎng)上下載對(duì)應(yīng)的iso文件,下好右鍵點(diǎn)擊裝載,把里面的文件復(fù)制到10GB左右的簡(jiǎn)單卷里面,開機(jī)進(jìn)入BIOS,選擇UFEI啟動(dòng),就可以進(jìn)入arch linux的安裝
隨后一路連上wifi操作到掛盤,用fdisk選擇裝系統(tǒng)的這塊硬盤(我的叫nvmen0,里面可能有一些分區(qū)比如nvmen0p1、nvmen0p2之類的),應(yīng)該能看到里面有一些之前預(yù)留好的未分配空間,把這些空間跟著wiki指導(dǎo)分成boot swap root之類的區(qū),然后依次格式化好掛好,然后進(jìn)入新裝的系統(tǒng)。
在新裝的系統(tǒng)中安裝linux,就可以重啟了。
記住重啟之前,一定要安裝網(wǎng)絡(luò)模塊,比如iwd之類的。
如果實(shí)在沒看到,重啟之后沒wifi了,可以試試把手機(jī)插到電腦上然后選擇usb提供網(wǎng)絡(luò),搶救一下試試。
如果有wifi且連接了還上不了網(wǎng),可能是沒動(dòng)態(tài)分配ip,試試dhcpcd。
上面只是一個(gè)大致的流程,因?yàn)槲乙仓谎b了一次,可能細(xì)節(jié)記得不是很清楚,具體還是以百科和別人的教程為主。
那么假設(shè)現(xiàn)在有了一臺(tái)裝有archlinux的電腦,可以直接在控制臺(tái)中輸入下列代碼安裝ROCm
安裝完在輸入臺(tái)中輸入下列代碼修改環(huán)境變量
如果安裝成功,使用rocm-smi或者rocminfo應(yīng)該能查到顯卡,并且此時(shí)在命令行中輸入python3,然后輸入下方代碼應(yīng)該會(huì)返回true
然后是從github上拉取stable diffusion webui
這個(gè)拉取可能會(huì)非常慢,建議使用一些加速手段。
比如說安裝clash(pacman -S clash)然后(clash -f xxx.yaml)然后安裝proxychains,配置上clash http加速的端口,最后用下方代碼安裝。
拉去下來之后,cd stable-diffusion-webui或者點(diǎn)擊打開文件夾(有圖形界面情況下)進(jìn)入目錄,配個(gè)python虛擬環(huán)境,然后再安裝一遍torch-rocm5.6
安裝好之后,用python打開launch.py就能使用webui了,因?yàn)榈谝淮芜€是要從github上下載一些包,會(huì)非常慢甚至下不動(dòng),建議是仍然用上面教的proxychains啟動(dòng),下載好應(yīng)該就能運(yùn)行了,注意webui不會(huì)直接打開,需要自己在瀏覽器中訪問命令行上顯示的那個(gè)127.0.0.1:xxxx的地址才能進(jìn)入。
7900xtx在ROCm5.6下速度得到了進(jìn)一步提升,大約對(duì)于512*512可以做到16~17it/s,并且應(yīng)該在未來還能有一些提升。
