N卡可以CUDA运行AI画图,教程已经很多了。其实A卡也可以通过ROCm运行。和N卡类似,也需要相对较新的卡才能满足显存要求。
本文假设已经完成Arch或基于Arch发行版的安装。
如果是新安装的Arch,一些基础的包(如sudo、git、nano、显卡驱动)需要额外安装或者使用替代品。如果是Manjaro,下文的命令应该可以直接执行。
开始前,建议先将系统更新
sudo pacman -Syu 下列1.和2.也可以按照镜像站文档配置。这里以清华的镜像站为例。
1. 编辑/etc/pacman.conf文件
sudo nano /etc/pacman.conf 将下列内容添加至文件末尾
[arch4edu] Server = https://mirrors.tuna.tsinghua.edu.cn/arch4edu/$arch
2. 导入GPG key
sudo pacman-key --recv-keys 7931B6D628C8D3BA
sudo pacman-key --finger 7931B6D628C8D3BA
sudo pacman-key --lsign-key 7931B6D628C8D3BA 3. 同步数据库
sudo pacman -Sy 1. 安装
sudo pacman -S rocm-hip-sdk 2. 加入PATH
export PATH=$PATH:/opt/rocm/bin 如果需要永久生效,可以加入/etc/profile
sudo nano /etc/profile 找到注释“# Append our default paths”,并将下列行附在其他append_path行之后
append_path '/opt/rocm/bin'
3. 验证可用性
rocminfo
rocm-smi 这里可以按照github内wiki的方法操作,唯一需要注意的是本步骤5.后面的内容。
1. 安装python
sudo pacman -S python python-pip 2. 下载stable-diffusion-webui
进入到准备运行stable diffusion webui的目录,稍后该目录占用空间将至少扩大至10G,如果给系统空间比较少,这里建议进入到数据盘。
假设数据盘挂载在“~/data”
cd ~/data
git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git
cd stable-diffusion-webui 3. 首次运行准备python环境
python -m venv venv
source venv/bin/activate
pip3 install --upgrade pip wheel 4. 安装pytorch
你可以在这里找到最新的安装命令
https://pytorch.org/get-started/locally/
选择Linux-pip-Python-ROCm
当前版本是
pip3 install torch torchvision --extra-index-url https://download.pytorch.org/whl/rocm5.1.1 5. 测试pytorch
进入python
python3 在python中输入
import torch
torch.cuda.is_available() 如果返回True,说明GPU有官方支持,直接exit()退出python进入6。
如果出现报错“"hipErrorNoBinaryForGpu: Unable to find code object for all current devices!"”,说明GPU不被官方支持
对于RDNA2显卡(RX6000系),其实部分型号是有支持的,所以即便你的型号不在列表里,可以设置环境变量,以gfx1030方式运行[1]。
export HSA_OVERRIDE_GFX_VERSION=10.3.0 对于RDNA显卡(RX5000系),是完全没有支持的,但是同样设置环境变量伪装为RDNA2显卡后似乎依然可以工作[2]。
export HSA_OVERRIDE_GFX_VERSION=10.3.0 对于VEGA显卡,可以尝试将上面环境变量设置为9.0.8(对应gfx908),这里我没有测试。
6. 复制model
将想用的model复制到models/Stable-diffusion。此后可以从WebUI左上角选择需要的ckpt文件。
这一步开始和显卡无关,ckpt的来源可以参考现在网上大把的教程。注意其中NovelAI的来源并不正规。
此前有文章指出,直接加载检查点可能存在安全风险[3],如果一定要执行,请至少使用最新的stable diffusion webui。
1. 进入目录
如果刚刚执行完第三步,可以忽略下面三条命令。
每次打开新终端的时候先执行下面三行。注意第1行取决于上面第三步2.中运行git的位置。
cd ~/data
cd stable-diffusion-webui
source venv/bin/activate 2. 开始运行
python launch.py --precision full --no-half 首次运行需要额外下载数据。
用本地浏览器打开命令行最后显示的链接,就可以在WebUI生成图片了。在左上角选择此前导入的ckpt。
WebUI内首次生成图片需要等待一分钟到几分钟(主要取决于CPU性能),同时命令行会有类似这样的提示。
MIOpen(HIP): Warning [SQLiteBase] Missing system database file: gfx1030_40.kdb Performance may degrade. Please follow instructions to install: https://github.com/ROCmSoftwarePlatform/MIOpen#installing-miopen-kernels-package
只是偶尔运行的话没必要花时间根据链接内步骤解决,那样花费的时间比等待时间还长。
此后运行每张图只需要数秒钟(主要取决于GPU性能)。
可以使用nvtop观察GPU/显存用量。如果生成失败注意看命令行报错是否显存不足。
[1] 【AI绘图/AMD】A卡用户的novelAI教程(GPU运行) - Notify_
[2] AMD的ROCm是否支持RDNA构架呢?请各位大神指教? - Huisheng Xu的回答 - 知乎 https://www.zhihu.com/question/371965193/answer/1572701000
[3] ⚠️警惕!你的NovelAI模型,极有可能被恶意攻击! 藏在AI绘画泄露模型背后的,巨大安全隐患! - 神必无敌大将军