礦卡P104再就業(yè)AI繪圖(附centos安裝cuda及配置stable diffusion教程)

????早就聽說p104用的gtx1080同款核心,只是閹割了編解碼與視頻輸出,cuda還在,有8G顯存,一看就很適合ai畫圖,當(dāng)然,150不到的超低廉價格才是筆者購買它的決定性原因!
????廢話不多說,在linux上使用該顯卡安裝stable diffusion也踩了不少坑,本文權(quán)作記錄。
? ? 第一個問題就很棘手,該顯卡沒有視頻輸出接口,因此網(wǎng)上大多教程都是使用核顯或是雙顯卡進(jìn)行輸出,但筆者電腦的cpu并沒有核顯,另一個顯卡插槽也只支持a卡交火,因此陷入麻煩之中。之后的解決方式是使用一臺裝有centos的服務(wù)器進(jìn)行配置,似乎是linux系統(tǒng)的問題,即使不插顯卡也可以正常開機(jī)(通過ssh操作),因此在未裝驅(qū)動、無法輸出視頻信號的情況下,得以進(jìn)行相關(guān)配置。
????確保硬件沒有問題后,可通過lspci | grep NVIDIA 命令查看是否識別(如圖1),一般情況下都是使用lspci | grep VGA命令來搜索顯卡,但可能是該顯卡并沒有信號輸出接口的問題,該命令無法正常使用

????接下來使用lspci -vs 04:00.0來查看下顯卡詳細(xì)信息(04:00.0是上一條命令中獲取的顯卡id,最左邊那個)

????其中Kernel driver一項(xiàng)默認(rèn)并不是nvidia(因?yàn)轵?qū)動未安裝),而是一個linux默認(rèn)的顯卡驅(qū)動,該驅(qū)動有很大的性能損失,幾乎無法使用,因此我們需要先安裝顯卡驅(qū)動
????雖然linux上安裝顯卡驅(qū)動是一件很麻煩的事,但更麻煩的是p104根本沒有官方的linux驅(qū)動,這就是筆者碰到的第二個大問題。不過所幸ai畫圖只需要cuda就可以使用,因此筆者抱著試試看的心態(tài),先嘗試安裝了cuda(事實(shí)證明,這樣做確實(shí)沒問題)
????安裝cuda
????cuda的安裝較為順利,根據(jù)官方文檔的指示一步一步來就可以了(筆者采用的是rpm包安裝的方式)
????官網(wǎng)地址:https://docs.nvidia.com/cuda/cuda-quick-start-guide/index.html#rpm-installer
值得注意的是在此之前要確定好自己的系統(tǒng)版本及架構(gòu)(如筆者的是centos x86_64),以及預(yù)留好足夠的硬盤空間,因?yàn)閏uda確實(shí)挺大的
?安裝較為緩慢,但所幸沒出什么錯誤。
? 安裝并重啟后nvidia-smi命令就可以使用了,驅(qū)動信息中也顯示是nvidia驅(qū)動,算是意外之喜。不過趕緊該命令無法正確檢測顯存占用,不知道是驅(qū)動問題還是顯卡問題,暫且擱置。
安裝stable diffusion webui
安裝stable diffusion也是一個體力活,中間出現(xiàn)了n多錯誤
原項(xiàng)目的教程十分簡單
1. 根據(jù)系統(tǒng)版本下載幾個工具包
# Debian-based:
sudo apt install wget git python3 python3-venv
# Red Hat-based:
sudo dnf install wget git python3
# Arch-based:
sudo pacman -S wget git python3
2. 運(yùn)行此命令即可
bash <(wget -qO- https://raw.githubusercontent.com/AUTOMATIC1111/stable-diffusion-webui/master/webui.sh)
但實(shí)際上完全不行,會出現(xiàn)各種問題,因?yàn)樵擁?xiàng)目作者把安裝依賴、配置文件路徑什么的全部打包寫在了上面那個腳本里,原則上是方便了新手,但因?yàn)槊罘庋b的緣故,報錯了很難定位到具體問題,筆者不得不翻源碼進(jìn)行改動才安裝成功,因此不建議使用該代碼,而是務(wù)必參考下列步驟!
必須安裝python3.10,筆者原本使用的python3.6,創(chuàng)建出來的虛擬環(huán)境并沒有activate程序,會導(dǎo)致錯誤,雖然再StackOverflow上有相應(yīng)的解決方法,但簡單起見還是直接安裝3.10吧,此處附centos編譯安裝python3.10的參考鏈接:https://zhuanlan.zhihu.com/p/491817098?
如果還存在問題,請參考該issue
https://github.com/AUTOMATIC1111/stable-diffusion-webui/issues/1120
對pip進(jìn)行換源,似乎是安裝nvidia驅(qū)動的問題,之前已經(jīng)換過的pip源被加了一個nvidia的網(wǎng)站,卡的要死還會導(dǎo)致安裝失敗,因此請去/etc/目錄將源修改回來!建議改成阿里源
清理/home/下的用戶文件夾,并且不要使用root運(yùn)行代碼(當(dāng)然,該命令也會拒絕),默認(rèn)的保存地址就在用戶文件夾下,請確保有足夠的空間(30G+)
直接運(yùn)行
bash <(wget -qO- https://raw.githubusercontent.com/AUTOMATIC1111/stable-diffusion-webui/master/webui.sh)
大概率會報錯,但此時項(xiàng)目代碼已經(jīng)下載下來了,于是cd進(jìn)該文件夾,下圖為參考路徑

????5.編輯launch.py文件,刪去其中的hash約束,如圖(第三個變量,*_commit_hash那個全刪掉)

該hash似乎是為了穩(wěn)定性限制了git clone的分支,但實(shí)際上會導(dǎo)致錯誤(無法找到該分支),刪去后會clone最新的,實(shí)測運(yùn)行沒有問題
????6. 可以直接再次運(yùn)行代碼,也可以進(jìn)入虛擬環(huán)境先把python的各種依賴裝了(自行安裝的話可以看到進(jìn)度,也方便錯誤排查)
????????后者的話:
????? ?source??./venv/bin/activate
????????pip install -r requirement.txt
????????pip install -r requirement_version.txt
????7.到這一步基本上不會出問題了,直接運(yùn)行./webui.sh即可,默認(rèn)僅可本機(jī)通過7860端口訪問,如果想要外網(wǎng)訪問的話,在webui.py文件開頭加一句?cmd_opts.share = True即可

折騰了快一天,累死我了?。。。。m然大部分時間在等安裝……)