Red Hat AI Inference Server(RHAIIS) 3.0のGetting Startedを、Radeon 890M搭載マシンで試した記録です。
前提条件
RHAIISのGetting Startedドキュメントに記載されている前提条件を確認します。
AMD GPUを使用するLinuxサーバーにアクセスでき、root権限がある
$ id
uid=1000(hirotaka) gid=1000(hirotaka) groups=...,27(sudo),...,44(video),110(render),...
sudoグループに所属しており、root権限があります。
PodmanまたはDockerがインストールされている
$ podman --version
podman version 4.9.3
ROCmソフトウェアがインストールされている
$ rocminfo | grep -E '(Name:|gfx)' | head -6
Name: AMD Ryzen AI 9 HX 370 w/ Radeon 890M
Marketing Name: AMD Ryzen AI 9 HX 370 w/ Radeon 890M
Vendor Name: CPU
Name: gfx1150
Marketing Name: AMD Radeon 890M Graphics
Vendor Name: AMD
ROCm 10.0.0です。gfx1150がネイティブ認識されています。
ROCmコンテナーを実行できることを確認している
https://rocm.docs.amd.com/projects/install-on-linux/en/docs-6.4.0/how-to/docker.html に沿って、コンテナからGPUにアクセスできることを確認します。
Podmanのrootlessコンテナで実行するには/dev/kfdへのACL追加と--userns=keep-idが必要です。詳細は別記事を参照してください。
$ podman run --rm \
--userns=keep-id \
--device /dev/kfd --device /dev/dri \
--security-opt=label=disable \
docker.io/rocm/rocm-terminal:latest \
rocminfo 2>&1 | grep -E '(Name:|gfx)' | head -6
Name: AMD Ryzen AI 9 HX 370 w/ Radeon 890M
Marketing Name: AMD Ryzen AI 9 HX 370 w/ Radeon 890M
Vendor Name: CPU
Name: gfx1150
Marketing Name: AMD Radeon Graphics
Vendor Name: AMD
コンテナ内からGPUが認識できています。
Red Hatレジストリへのログイン
RHAIISのコンテナイメージはregistry.redhat.ioから取得します。事前にログインが必要です。
https://access.redhat.com/terms-based-registry/ でサービスアカウントを作成し、そのUsername/Tokenでログインします。Red Hatアカウントのパスワードではなくトークンを使う点に注意。
$ podman login registry.redhat.io
Username: 11009103|htagawa
Password:
Login Succeeded!
モデルサーバーイメージの取得
Getting Startedの手順に沿って進めます。
1. インフラストラクチャーの正しいイメージを特定する
AMD ROCm環境では以下のイメージを使用します。
registry.redhat.io/rhaiis/vllm-rocm-rhel9
利用可能なタグはRed Hatコンテナカタログで確認できます。記事執筆時点の最新は3.3です。
タグ一覧はCLIでも確認できます。
$ podman search registry.redhat.io/rhaiis/vllm-rocm-rhel9 --list-tags
2. サーバーホストでレジストリにログインする
前提条件のステップで既にログイン済みです。
$ podman login registry.redhat.io
Authenticating with existing credentials for registry.redhat.io
Existing credentials are valid. Already logged in to registry.redhat.io
3. モデルサーバーイメージをプルする
$ podman pull registry.redhat.io/rhaiis/vllm-rocm-rhel9:3.3.7-1789504371
20.8GBのイメージがダウンロードされます。
$ podman image ls | grep rhel
registry.redhat.io/rhaiis/vllm-rocm-rhel9 3.3.7-1789504371 6fbceb39e3e9 4 days ago 20.8 GB
4. SELinuxの設定
Ubuntu 24.04ではSELinuxは無効(未インストール)のため、スキップします。
$ getenforce
bash: getenforce: コマンドが見つかりません
5. ボリュームを作成してコンテナーにマウントする
モデルキャッシュ用のディレクトリを作成し、コンテナーからアクセスできるよう権限を設定します。
$ mkdir -p ~/rhaiis-cache
$ chmod g+rwX ~/rhaiis-cache
6. Hugging Faceトークンを設定する
ゲート付きモデルをダウンロードするため、Hugging Faceのアクセストークンを環境変数に設定します。
$ export HF_TOKEN=hf_xxxxx
7. コンテナーからGPUにアクセスできることを確認する
RHAIISコンテナ(RHEL9ベース)はデフォルトユーザーがUID 1001のため、rootless Podmanで/dev/kfdにアクセスするには--userns=keep-id --user 1000でホストユーザーのUIDに合わせる必要があります。
$ podman run -ti --rm \
--userns=keep-id \
--user 1000 \
--security-opt=label=disable \
--device=/dev/kfd --device=/dev/dri \
--entrypoint="" \
registry.redhat.io/rhaiis/vllm-rocm-rhel9:3.3.7-1789504371 \
amd-smi static -a
GPU: 0
ASIC:
MARKET_NAME: AMD Radeon Graphics
VENDOR_ID: 0x1002
VENDOR_NAME: Advanced Micro Devices Inc. [AMD/ATI]
SUBVENDOR_ID: 0x1f4c
DEVICE_ID: 0x150e
SUBSYSTEM_ID: 0xb020
REV_ID: 0xc1
ASIC_SERIAL: 0x0000000000000000
OAM_ID: N/A
NUM_COMPUTE_UNITS: 16
TARGET_GRAPHICS_VERSION: gfx1150
gfx1150が認識されています。
7.2 コンテナーを起動する
$ podman run --rm -it \
--userns=keep-id \
--user 1000 \
--security-opt=label=disable \
--device=/dev/kfd --device=/dev/dri \
--shm-size=4GB \
-p 8000:8000 \
--env "HUGGING_FACE_HUB_TOKEN=$HF_TOKEN" \
--env "HF_HUB_OFFLINE=0" \
--env "VLLM_NO_USAGE_STATS=1" \
-v ./rhaiis-cache:/opt/app-root/src/.cache \
registry.redhat.io/rhaiis/vllm-rocm-rhel9:3.3.7-1789504371 \
--model RedHatAI/Llama-3.2-1B-Instruct-FP8 \
--tensor-parallel-size 1
結果: 起動失敗。AITERライブラリがgfx1150を認識できずエラーになります。
KeyError: "Unknown GPU architecture: gfx1150. Supported architectures:
['native', 'gfx90a', 'gfx908', 'gfx940', 'gfx941', 'gfx942', 'gfx945', 'gfx1100', 'gfx950']"
HSA_OVERRIDE_GFX_VERSION=11.0.0でgfx1100に偽装するとAITERのチェックは通過しますが、HIPカーネルがgfx1100向けにコンパイルされているため、gfx1150では実行できません。
torch.AcceleratorError: HIP error: invalid device function
結論
RHAIISのROCmイメージ(vllm-rocm-rhel9)はMI系データセンターGPU(MI210, MI300X等)向けにビルドされており、Radeon 890M(gfx1150, RDNA 3.5)では動作しません。GPU認識やコンテナ起動まではできますが、推論実行に必要なHIPカーネルがgfx1150に対応していないため、モデルサーブは不可能です。
Radeon 890Mでvllmを使う場合は、gfx1150対応のコミュニティイメージ(rocm/vllm:rocm7.13.0_gfx1150_ubuntu24.04_py3.13_pytorch_2.10.0_vllm_0.19.1)を使用してください。