はじめに
環境
- Ryzen 5 5600G / Ryzen 5 5600GT (どちらも確認済み)
- ASRock DeskMini X300
- Memory 64 GB
- M.2 SSD 2TB
ポイント
- amdgpu-install 時に graphics を指定すると、フリーズしたりして、動作が不安定になる現象が発生したため、rocm だけを指定している。
- amdgpu driver のバージョンと rocm 対応版の pytorch のバージョンの組み合わせが大事。
- バージョンの組み合わせ次第では動作しないことがあった。
- force-host-alloction-APU に書かれている組み合わせを参考に、今回は amdgpu-install_6.0.60002-1_all.deb と rocm6.0 を使用した。
- cpu-x を使うと graphics で実際に使用されているメモリを確認できる。
- ホストアロケーション化した際に、メモリがホスト側から確保されているかどうかの確認にも使用できる。
- GPU からメモリ確保する場合は、BIOS から UMA Frame Buffer Size を 16GB に設定する。
- force-host-alloction-APU は、rocm API wrapper として、LD_PRELOAD でライブラリを差し込んで使用する。
- wrapper により、メモリ確保が device 側から host 側に切り替わるようになる。(BIOS で 16GB を割り当てなくてもよくなる)
参考サイト
https://github.com/segurac/force-host-alloction-APU
https://jweb.asia/26-it/ai/92-ryzen5600g-ai-gpu.html
https://qiita.com/asfdrwe/items/1ca2d07777415f399a3b
LLM、Stable Diffusion 共通セットアップ
amdgpu driver のインストール
wget https://repo.radeon.com/amdgpu-install/23.40.2/ubuntu/jammy/amdgpu-install_6.0.60002-1_all.deb
apt install ./amdgpu-install_6.0.60002-1_all.deb
amdgpu-install -y --usecase=rocm
usermod -a -G render,video user
shutdown -r now
動作確認
rocminfo
rocm 対応の Pytorch 環境の準備
mkdir -p /mnt/data01/user/generative-ai
cd /mnt/data01/user/generative-ai
Pythoon venv 環境の用意
python3.10 -m venv venv
. venv/bin/activate
pip3 install --pre torch torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/rocm6.0
test-rocm.py で動作確認
wget https://gist.githubusercontent.com/damico/484f7b0a148a0c5f707054cf9c0a0533/raw/43c317bfbde626d9112d44462d815613194988e0/test-rocm.py
export HSA_OVERRIDE_GFX_VERSION=9.0.0
export HSA_ENABLE_SDMA=0
python test-rocm.py
ホストアロケーション化のライブラリビルド
cd /mnt/data01/user/generative-ai
git clone https://github.com/segurac/force-host-alloction-APU
cd force-host-alloction-APU
CUDA_PATH=/usr/ HIP_PLATFORM="amd" hipcc forcegttalloc.c -o libforcegttalloc.so -shared -fPIC
FastChat の git clone と実行
FreeChat に必要な追加パッケージのインストール
pip3 install prompt_toolkit rich psutil transformers accelerate sentencepiece protobuf
FastChat の git clone
cd /mnt/data01/user/generative-ai
git clone https://github.com/lm-sys/FastChat
vicuna-7b-v1.5-16k のダウンロード
apt install git-lfs
cd /mnt/data01/user/generative-ai
git clone https://huggingface.co/lmsys/vicuna-7b-v1.5-16k
cd vicuna-7b-v1.5-16k
git lfs pull
Pythoon venv 環境に切り替え
cd /mnt/data01/user/generative-ai
. venv/bin/activate
FastChat の実行
cd /mnt/data01/user/generative-ai/FastChat
export HSA_OVERRIDE_GFX_VERSION=9.0.0
export HSA_ENABLE_SDMA=0
python3 -m fastchat.serve.cli --style rich --model-path ../vicuna-7b-v1.5-16k --max-new-tokens 2048 --temperature=0.8 --repetition_penalty 1.1
FastChat の実行(ホストアロケーション化)
cd /mnt/data01/user/generative-ai/FastChat
export HSA_OVERRIDE_GFX_VERSION=9.0.0
export HSA_ENABLE_SDMA=0
LD_PRELOAD=/mnt/data01/user/generative-ai/force-host-alloction-APU/libforcegttalloc.so python3 -m fastchat.serve.cli --style rich --model-path ../vicuna-7b-v1.5-16k --max-new-tokens 2048 --temperature=0.8 --repetition_penalty 1.1
Stable Diffusion の git clone と実行
venv は FastChat とは、一応分けて作ったほうが、おそらくよい。
“rocm 対応の Pytorch 環境の準備” と “ホストアロケーション化のライブラリビルド” は、手順同じ。
Stable Diffusion の git clone
cd /mnt/data01/user/generative-ai
git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui
Pythoon venv 環境に切り替え
cd /mnt/data01/user/generative-ai
. venv/bin/activate
Stable Diffusion の実行
cd /mnt/data01/user/generative-ai/stable-diffusion-webui
export HSA_OVERRIDE_GFX_VERSION=9.0.0
export HSA_ENABLE_SDMA=0
./webui.sh
Stable Diffusion の実行(ホストアロケーション化)
cd /mnt/data01/user/generative-ai/stable-diffusion-webui
export HSA_OVERRIDE_GFX_VERSION=9.0.0
export HSA_ENABLE_SDMA=0
LD_PRELOAD=/mnt/data01/user/generative-ai/force-host-alloction-APU/libforcegttalloc.so ./webui.sh