【西川和久の不定期コラム】Ryzen AI Max+ 395を「ビデオメモリ128GB積んだ鬼GPU」にしてしまう方法 – PC Watch

 前々回と前回は、「EVO-X2」のハードウェアとAI関連レビューを掲載した。ここまではある意味本誌の既定路線。今回は、“Ryzen AI Max+ 395マシンをUbuntuにすればVRAM(ビデオメモリ)を128GBに設定できる”という情報を見かけたので、やってみたい。従って今回は筆者の趣味編となる。

Ubuntu 22.04.5 LTSをインストール

 WindowsでRyzen AI Max+ 395のiGPUを使う場合、RAM(システムメモリ)とVRAMの関係はBIOSの設定で決まる。たとえばメモリを128GB搭載の場合、VRAMを96GBにするとRAMは32GBになるといった具合だ(ダイナミックに割り当てない場合)。これはユーザーが関係するパラメータを直接触れないからだ。

 一方、macOSでは、

$ sudo sysctl iogpu.wired_limit_mb=122880
iogpu.wired_limit_mb: 0 -> 122880

とすると、VRAMに120GB(122,880=120×1,024)割り当て、システムに8GB残す設定ができるのだ。ちなみに0はデフォルトで、全体の75%(128GBモデルなら96GB)が割り当てられている。

 そしてUbuntuでは、amdttm.pages_limit、amdttm.page_pool_sizeというシステム起動時のパラメータがあり(/etc/default/grubに記述)、これを触ることによって、

amdttm.pages_limit=33554432      → GPU用に最大128GB確保可能
amdttm.page_pool_size=33554432   → そのすべてをプールとして確保

とし、RAMのすべてをVRAMへ割り当てることが可能となる。もちろんこれはRAMが0GBになる意味ではなく、iGPUに優先して割り当てる……という意味だ。

 ということで、まずUbuntuのインストール。Windowsが入っているSSDを外し、手持ちの1TB SSDを装着、Ubuntu 22.04.5 LTSをUSBメモリに入れ、そこから起動、OSインストール。後はほかのPCからアクセスできるよう、以下などを追加している。

$ sudo apt install openssh-server
$ sudo apt install xrdp
$ sudo apt install net-tools git curl

 これで準備完了!早速VRAM 128GB化してみたい。

VRAM 128GBにする手順

 まずビデオドライバを入れないと話が始まらないので、該当するドライバをwgetでダウンロードする。

 手順は以下の通り(毎回sudoと書くのが面倒なのでsuになっているが、もちろん全部sudoで実行しても良い)。

$ sudo su
# wget https://repo.radeon.com/amdgpu-install/7.0.2/ubuntu/jammy/amdgpu-install_7.0.2.70002-1_all.deb
# apt install ./amdgpu-install_7.0.2.70002-1_all.deb
# apt update
# apt install "linux-headers-$(uname -r)" "linux-modules-extra-$(uname -r)"
# apt install amdgpu-dkms
# reboot

 次にROCmのインストール。

$ sudo su
# amdgpu-install -y --usecase=rocm --no-dkms
# usermod -a -G render,video $LOGNAME
# reboot

 再起動後、環境を確認する。

$ apt show rocm-libs -a
Package: rocm-libs
Version: 7.0.2.70002-56~22.04
Priority: optional
Section: devel
Maintainer: ROCm Dev Support 
Installed-Size: 13.3 kB
Depends: hipblas (= 3.0.2.70002-56~22.04), hipblaslt (= 1.0.0.70002-56~22.04),
.
. (省略)
.
Homepage: https://github.com/RadeonOpenCompute/ROCm
Download-Size: 1,068 B
APT-Sources: https://repo.radeon.com/rocm/apt/7.0.2 jammy/main amd64 Packages
Description: Radeon Open Compute (ROCm) Runtime software stack.

 これでドライバとROCm(7.0.2)が入った。次にnvidia-smiのようにGPUの状態を知るコマンドとしてamdgpu_topが必要なのでインストールする。

$ wget https://github.com/Umio-Yasuno/amdgpu_top/releases/download/v0.11.0/amdgpu-top_0.11.0-1_amd64.deb
$ sudo dpkg -i ./amdgpu-top_0.11.0-1_amd64.deb
$ amdgpu_top --smi

amdgpu_top –smiの実行結果。BIOSでVRAM 64GBとしているので、VRAM 63718MBとなっている

 この時点ではBIOSで設定している値をそのまま反映するため(今回は)RAM 64GB/VRAM 64GB。確認後、再起動。[DEL]キーでBIOSを呼び出し、

  1. VRAMを1GB(最小値)
  2. IOMMUをdisableへ

とする。古いBIOSではVRAM 512MBもできたようだが、現在のBIOSでは1GBが最小になっている。2のIOMMUはInput-Output Memory Management Unitの省略形で、

  • ハードウェアレベルでのメモリ保護・仮想化機能
  • PCIeデバイス(GPU、NICなど)がアクセスできるメモリ領域を制御・隔離

ここではdisableとする。これによって統合GPUがメモリに直接アクセスしやすく、オーバーヘッドが減り、アクセスが高速化……ということらしい(Claudeの受け売り)。

 Ubuntu起動後の設定は以下の通り。

$ sudo nano /etc/default/grub

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash amd_iommu=off amdttm.pages_limit=33554432 amdttm.page_pool_size=33554432"

$ sudo update-grub
$ sudo reboot

 再起動してamdgpu_top –smiで確認するとVRAMが131072MBと増えているのが分かる。

amdgpu_top –smiの実行結果。VRAMが131072MBになっている

 この時、htopでシステムRAMを確認すると。RAM 124GBと、ほぼそのまますべてが使える状態になっている。疑問に思われるような状態だが、VRAMが優先的に割り当てるとのことなので、これでいいのだろう。

htopの実行結果。RAM 124GB

 以上でVRAM 128GB化は完了。次はLM Studioでgpt-oss-120bを動かしてみたいが……。

ROCm + LM Studioでgpt-oss-120bを諦めOllamaに

 LM StudioはCPU、ROCm、Vulkanと試したのだが、動いたのはCPUのみ。ROCmはエラー、VulkanはそもそもRadeon 8060S Graphics = gfx1151に非対応なのか、作動確認すると以下のようなエラーメッセージが出て動いていない。検索すると動いている例もあるので謎だ。ここで動かなければ当然LM Studioでも使えない。

$ sudo apt install vulkan-tools
$ sudo reboot
$ vulkaninfo
ERROR: [Loader Message] Code 0 : vkCreateInstance: Found no drivers!
Cannot create Vulkan instance.
This problem is often caused by a faulty installation of the Vulkan driver or attempting to use a GPU that does not support Vulkan.
※ これに限らずいくつか試したもののすべて動かず

 LM Studio自体のインストールは、サイトからLinux用のバイナリをダウンロードし、それを実行すれば見慣れたUIが表示される。

$ chmod +x LM-Studio-0.3.30-1-x64.AppImage
$ ./LM-Studio-0.3.30-1-x64.AppImage

LM Studioの設定/ハードウェア。一応ROCmを認識。RAM 124.45GB、VRAM 128.00GBになっている

GGUFにROCmを割り当てたが、エラーで動かず

gpt-oss-120b、CPUだと22.04tok/s。Windowsの時より少し速い

 CPUでgpt-oss-120bを動かすと22.04tok/s。これはこれでそれなりなのだが、せっかくVRAM 128GB化した意味がない。後述するOllamaやROCm + ComfyUIが正常に作動していることを考えると、LM Studioに含まれるLlamaモジュール側の問題な気がしないでもない。

 さて、何とかiGPUとVRAMで動かそうと、Llama.cppをビルドするのも手なのだが、ハマりそうだったので今回はやめて、より簡単なOllamaを使うことにした。

 インストール/起動は簡単で以下の通り。インストール中のステータスで、“Downloading Linux ROCm amd64 bundle”と出ているので、ROCm用のモジュールが入ったことが分かる(後述するCUDA環境を先に入れるとCUDAで入ってしまうので要注意)。

$ curl -fsSL https://ollama.com/install.sh | sh
>>> Cleaning up old version at /usr/local/lib/ollama
[sudo] password for knishika:
>>> Installing ollama to /usr/local
>>> Downloading Linux amd64 bundle
######################################################################## 100.0%
>>> Adding ollama user to render group...
>>> Adding ollama user to video group...
>>> Adding current user to ollama group...
>>> Creating ollama systemd service...
>>> Enabling and starting ollama service...
>>> Downloading Linux ROCm amd64 bundle
######################################################################## 100.0%
>>> The Ollama API is now available at 127.0.0.1:11434.
>>> Install complete. Run "ollama" from the command line.
>>> AMD GPU ready.

 起動はたったこれだけ。該当するモデルがローカルにない場合は自動的にダウンロードと手間要らず。–verboseオプションを付けるとtok/sなど情報を表示するようになる。

$ ollama run gpt-oss:20b
$ ollama run gpt-oss:120b

gpt-oss:20bの実行結果。44.84tok/s

gpt-oss:120bの実行結果。32.53tok/s

gpt-oss-120b使用中のamdgpu_top –smi。VRAMを62GBほど使っている

gpt-oss-12b使用中のhtop。RAM 63GBほど使っている

 WindowsでLM Studioを使った時は32.45tok/s、今回は32.53tok/sとほぼ同じだ。また、

$ export OLLAMA_HOST=0.0.0.0:5050
$ export OLLAMA_ORIGINS=192.168.11.*
※セグメントは環境に合わす
$ ollama serve

 とすれば、endpointは、Ollamaが動くPCのIPアドレス:5050でChatUIのOpen WebUIなどからアクセス可能となる。

 以上のように手間さえかければVRAM 128GBにすることが可能。ただしgpt-oss-120bだと96GBでも動くため、さらに少し大きいLLMで「あと10~20GBあれば動くかも!?」という時に有効な手段となる。

ROCm + ComfyUI

 せっかくUbuntuに入れ替えROCmの環境を作ったのでComfyUIも動かしてみたい。既にドライバなどは入っているため、必要なpythonのライブラリだけ入れれば良い。

$ conda create -n amd python==3.12
$ conda activate amd
$ pip install --pre torch torchvision torchaudio --index-url https://rocm.nightlies.amd.com/v2/gfx1151/
$ pip install -r requirements.txt
$ TORCH_ROCM_AOTRITON_ENABLE_EXPERIMENTAL=1 python main.py --use-pytorch-cross-attention --listen

ROCmで作動中のComfyUI。SDXL/832×1,216px/28 steps(23 base + 5 refiner)で29秒

 Windowsのテストと同じく、SDXL/832×1,216px/28 steps(23 base + 5 refiner)で29秒と、少し遅めだが問題なく作動した。

OCuLinkでdGPU(CUDA) + ComfyUI

 本機の使い方としてベストは、128GBのメモリとiGPUはLLMへ。生成AI画像/動画はOCuLinkでdGPUへ。こうするとgpt-oss-120bなどパラメータ数(b)の大きいLLMがそれなりの速度で動き、生成AI画像/動画は(dGPUのランクにもよるが)、iGPUより高速に生成。個人が手の出る価格帯でAI関連どちらも快適に使えるようになるからだ。

 Macだと高額なM4 Max 128GB、M3 Ultra 512GBを使ってLLMはそこそこ動くものの生成AI画像/動画はどうにもならず(Thunderbolt 5でdGPU Boxを接続しても使えない)、PCだとGPUはどうにでもなっても、メモリがLPDDR5x-8000並の(SO-)DIMMを装着できず、128GB搭載したところでtok/sがさほど出ない。従って、どちらもOKな本機がAI PCとしては最適となる。

 ドライバとCUDAに関しては、少し前にRTX 5090(32GB)の話を書いたが、基本これと同じだ。

 まず、GeForce RTX 4060 Ti(16GB)をハードウェア的に認識しているか?の確認。

$ lspci | grep -i nvidia
c5:00.0 VGA compatible controller: NVIDIA Corporation AD106 [GeForce RTX 4060 Ti] (rev a1)
c5:00.1 Audio device: NVIDIA Corporation AD106M High Definition Audio Controller (rev a1)

 次にドライバのインストール。GeForce RTX 5090(32GB)ではNVIDAIのサイトにあるドライバしか動かなかったが、今回は、

$ ubuntu-drivers devices
== /sys/devices/pci0000:00/0000:00:03.1/0000:c5:00.0 ==
modalias : pci:v000010DEd00002803sv00001569sd0000F314bc03sc00i00
vendor   : NVIDIA Corporation
driver   : nvidia-driver-535-server-open - distro non-free
driver   : nvidia-driver-570-server-open - distro non-free
driver   : nvidia-driver-570 - distro non-free
driver   : nvidia-driver-580 - distro non-free recommended
driver   : nvidia-driver-550-open - distro non-free
driver   : nvidia-driver-535-open - distro non-free
driver   : nvidia-driver-570-open - distro non-free
driver   : nvidia-driver-580-open - distro non-free
driver   : nvidia-driver-570-server - distro non-free
driver   : nvidia-driver-580-server-open - distro non-free
driver   : nvidia-driver-535-server - distro non-free
driver   : nvidia-driver-535 - distro non-free
driver   : nvidia-driver-545-open - distro non-free
driver   : nvidia-driver-580-server - distro non-free
driver   : nvidia-driver-545 - distro non-free
driver   : nvidia-driver-550 - distro non-free
driver   : xserver-xorg-video-nouveau - distro free builtin

 リコメンドの nvidia-driver-580 – distro non-free recommended が動かず、nvidia-driver-580-open でインストールし作動した。どうもROCm関連と競合しているものがある感じだ。

$ sudo apt install nvidia-driver-580-open
$ sudo reboot

 再起動後、nvidia-smiもOK。次にCUDA。CUDA 12.8をインストールする。

nvidia-smi。OCuLinkで接続したGeForce RTX 4060 Ti(16GB)を認識

$ wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-keyring_1.1-1_all.deb
$ sudo dpkg -i cuda-keyring_1.1-1_all.deb
$ sudo apt update
$ sudo apt -y install cuda-toolkit-12-8
$ sudo reboot

 仕上げはComfyUI。関連モジュールやモデルをインストールして無事起動した。こちらは毎度やっていることもあり手慣れたものだ(笑)。

$ conda create -n comfyui python==3.12
$ conda activate comfyui
$ git clone https://github.com/comfyanonymous/ComfyUI
$ cd ComfyUI
$ pip install torch torchvision
$ pip install -r requirements.txt
$ python main.py --listen

OCuLinkで接続したGeForce RTX 4060 Ti(16GB)を使いComfyUI起動。SDXL/832×1,216px/28 steps(23 base + 5 refiner)で11.57秒

 実行速度は前回Windows + OCuLink /GeForce RTX 4060Ti(16GB)でSDXLを生成した時が13.56秒に対して11.57秒と2秒ほど速くなっている。


 以上のように、WindowsだとVRAM 96GBで最大だが、Ubuntuを使うとVRAMに128GBすべてを見かけ上割り当てることができ、LLMには有利な環境となる。ただしROCmの完成度かgfx1151への対応度合いか不明だが、結局Ollamaしか動かず。これは筆者の環境設定が悪かった可能性もあるため、何か進展があった時はまたご報告したい。

 生成AI画像/動画に関しては、iGPUでもSDXLクラスなら実用範囲。またOllamaでgpt-oss-120bを動かしながらComfyUIで生成しても(CPU/GPUを奪い合うため遅くはなるが)どちらも動き、VRAMも余裕……というのはなかなか見られない光景だったりする。

 加えてOCuLinkで強力なdGPUを接続すれば、生成AI画像/動画のパフォーマンスは飛躍的に向上する。ある意味、(今のところ)今年(2025年)一番面白いPCではないだろうか!?




Source link

関連記事

コメント

この記事へのコメントはありません。