本文章轉(zhuǎn)載自英特爾員工2023年2月3日的帖子:
【資料圖】
[https://medium.com/intel-analytics-software/stable-diffusion-with-intel-arc-gpus-f2986bba8365]
參考文檔:
https://intel.github.io/intel-extension-for-pytorch/xpu/latest/tutorials/installation.html
https://github.com/intel/intel-extension-for-pytorch
“The Intel Extension for PyTorch”項(xiàng)目(ipex)通過在PyTorch官方注冊(cè)的“device =?xpu”設(shè)備為英特爾獨(dú)立 GPU 提供深度學(xué)習(xí)加速。
這允許用戶在Ubuntu平臺(tái),或者在WIndows10 21H2/Win11平臺(tái)依托WSL2或者Docker?for?windows,來配置顯卡加速pytorch訓(xùn)練和推理。
(和AMD顯卡的ROCm相比,后者只能運(yùn)行在ubuntu等Linux系統(tǒng)上,但是仍然可以使用device =?cuda設(shè)備代碼,無須修改源代碼,更加友好)
Docker Desktop有點(diǎn)類似于windows平臺(tái)的虛擬機(jī)包和鏡像管理系統(tǒng),它基于WSL2開發(fā),因此和WSL2一樣具有VScode遠(yuǎn)程開發(fā)等功能。通過拉取Docker?Hub提供的官方鏡像可以簡(jiǎn)化環(huán)境依賴安裝,非常方便。
本文將會(huì)使用Intel?Arc?A770 獨(dú)顯運(yùn)行一個(gè)最基礎(chǔ)的Stable?Diffusion?AI?text-image模型。
步驟
環(huán)境依賴
首先要保證安裝了正確的Arc顯卡驅(qū)動(dòng)(參見官方文檔的安裝說明)
確認(rèn)系統(tǒng)已升級(jí)到Win11?或最新的Win10,以獲得完整的WSL2功能。
安裝基于WSL2的 windows Docker
首先要啟用WSL2功能,這部分不是重點(diǎn),網(wǎng)上教學(xué)非常豐富。注意這一步和安卓模擬器沖突,只能選一個(gè)
wsl -l -v
確認(rèn)WSL2正常啟用后,在Docker官網(wǎng)安裝客戶端并重啟,確認(rèn)windows Docker啟動(dòng)成功,需要對(duì)Docker的操作有一定了解。
(如果不想用Docker的話,可以參考官方文檔,在wsl2?ubuntu或Ubuntu物理機(jī)下手動(dòng)安裝ipex及其依賴環(huán)境,道理都是一樣的)
拉取官方ipex鏡像
官方提供的ipex鏡像可以通過 [hub.docker.com/r/intel/intel-extension-for-pytorch/tags]?訪問,Arc獨(dú)顯用戶理論上應(yīng)該使用gpu這個(gè)鏡像,但也可以試試latest。鏡像中已經(jīng)包含了OneAPI?Toolkit等環(huán)境依賴,比較方便。在啟動(dòng)Docker容器之前,先把SD離線模型下載下來!
mkdir c:\data
cd c:\data
git lfs install
git clone https://huggingface.co/runwayml/stable-diffusion-v1-5
(具體路徑請(qǐng)自行修改)
運(yùn)行官方鏡像啟動(dòng)一個(gè)容器(注意這里原作者留了一個(gè)端口給Jupter?Notebook開發(fā),但我更喜歡用VScode,功能非常強(qiáng)大。用戶可以自行決定哪一個(gè)更適合)
docker run -it --rm
--device /dev/dxg
-v /usr/lib/wsl:/usr/lib/wsl
-v c:\data:/data
-p 9999:9999
intel/intel-extension-for-pytorch:gpu
通過python命令行檢查docker是否連接到A770顯卡。并通過聲明的9999端口啟動(dòng)Jupyter?Notebook遠(yuǎn)程連接
python -c "import torch;import intel_extension_for_pytorch as ipex;print(ipex.xpu.get_device_name(0))"
cd c:/data
pip install -q jupyter
jupyter notebook --allow-root --ip 0.0.0.0 --port 9999
這里應(yīng)該能夠正確識(shí)別顯卡
用Arc?A770?顯卡運(yùn)行Stable?Diffusion?text2image模型
用瀏覽器打開Jupyter給的URL來進(jìn)行開發(fā)。運(yùn)行SD模型。
# install Stable Diffusion for this notebook
%pip install -q diffusers transformers accelerate
import intel_extension_for_pytorch as ipex
import torch
from diffusers import StableDiffusionPipeline
# check Intel GPU
print(ipex.xpu.get_device_name(0))
# load the Stable Diffusion model
pipe = StableDiffusionPipeline.from_pretrained("./stable-diffusion-v1-5",
revision="fp16",
torch_dtype=torch.float16)
# move the model to Intel Arc GPU
pipe = pipe.to("xpu")
# model is ready for submitting queries
pipe("an astronaut riding a horse on mars").images[0]
# run another query
pipe("cat sitting on a park bench").images[0]
可以成功得到結(jié)果,收工
同樣,用戶可以通過這個(gè)項(xiàng)目在WSL2 和 Intel Arc GPU 上運(yùn)行任何其他的?PyTorch 模型,并且通過官方提供的ipex.optimize函數(shù)對(duì)運(yùn)行速度進(jìn)行優(yōu)化。
目前大部分AI繪畫的前端腳本都是基于CUDA進(jìn)行編寫,因此兼容ipex?xpu接口的webui仍有待開發(fā)。
關(guān)鍵詞:webui?novelai?ai繪圖?ai繪畫?英特爾顯卡?
標(biāo)簽: 比較方便 管理系統(tǒng) 安裝說明