以前は、AMDのGPUでディープラーニング関連のソフトウェアを実行するのは非常に手間がかかるため、ディープラーニングが必要なユーザーにはNvidiaのグラフィックボードの購入が推奨されるという話をよく耳にしました。しかし、最近LLM(大規模言語モデル)が注目を集めており、多くの研究機関がLLaMAベースのモデルを公開しているため、興味を持ちテストしてみたいと考えました。手元にあるビデオメモリ(VRAM)容量の大きいグラフィックボードはすべてAMD製だったため、これらを使用して実行してみることにしました。
目次
テスト環境
現在テストしている環境は、VMを利用してグラフィックボードのパススルーを行っており、構成は以下の通りです:
- CPU: 16コア AMD Eypc 7302P
- メモリ: 96GB DDR4 ECC 2933
- GPU: AMD Instinct MI25 (WX9100 BIOS)
- OS: Ubuntu 20.04
- ホストOS: PVE 7.4-3
- ROCm 4.5.2
ROCmは、AMDが開発したディープラーニング関連のアプリケーションを実行するためのオープンソースプラットフォームであり、CUDA変換レイヤーであるHIPが含まれています。
システム設定
ROCm インストール手順
まず、関連する権限を取得するために、ユーザーをvideoグループに追加する必要があります。
sudo usermod -a -G video $LOGNAME
次に、インストーラーをダウンロードしてインストールします:
sudo apt-get update
wget https://repo.radeon.com/amdgpu-install/5.4.3/ubuntu/focal/amdgpu-install_5.4.50403-1_all.deb
sudo apt-get install ./amdgpu-install_5.4.50403-1_all.deb
最後に、GPUドライバーと ROCmをインストールします。ここでは特にバージョン4.5.2を指定していることに注意してください。現在の最新版は5.4.3ですが、AMD Instinct MI25/WX9100をサポートする最終バージョンは4.5.2です。
sudo amdgpu-install --usecase=rocm,dkms --rocmrelease=4.5.2
ここで指定している rocm 跟 dkms は一般的なユースケースです。どのようなユースケースがあるか確認するには、以下のコマンドを使用してください:
sudo amdgpu-install --list-usecase
インストールには時間がかかりますが、基本的にはネットワーク速度に依存します。インストール完了後、新しいドライバーを読み込むためにシステムを再起動する必要があります。
sudo reboot
PyTorch インストール手順
現在、ほとんどのプロジェクトでは PyTorch をディープラーニングフレームワークとして使用していますが、 ROCm を使用する場合、インストール時にバージョンを明示的に指定する必要があります。
注意点として、ほとんどのプロジェクトでは requirements.txt 内に記述されています。 PyTorch、デフォルトでは CUDA のバージョンがインストールされます。既にインストールされている場合は、まずアンインストールする必要があります。
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/rocm4.5.2
最後に、対応する ROCm バージョンを指定します。ここでは 4.5.2 版をインストールします。
テスト
テストするには PyTorch GPUが使用されているかどうかを確認するには、Pythonのコマンドラインで以下のコマンドを入力します:
import torch
torch.cuda.is_available()
もし True と表示されれば、インストール成功です!
まとめ
実際に操作してみたところ、AMD GPUを使用してディープラーニング関連のアプリケーションを実行することは決して難しくないことがわかりました。現在はすでに stable-diffusion と Vicuna-7Bの実行に成功しています。手元にAMDのグラフィックボードをお持ちの読者で、ディープラーニングのプロジェクトを試してみたい方は、Nvidiaのグラフィックボードを購入する費用を節約するために、AMDのグラフィックボードの使用を検討してみてはいかがでしょうか。
著作権表示:特に断りのない限り、本ブログのすべての記事はCC BY-NC-SA 4.0ライセンスの下で提供されています。

