Upgrade to Pro — share decks privately, control downloads, hide ads and more …

非CUDAの悲哀 〜Claude Code と挑んだ image to 3D “Hunyuan...

Sponsored · SiteGround - Reliable hosting with speed, security, and support you can count on.

非CUDAの悲哀 〜Claude Code と挑んだ image to 3D “Hunyuan3D”を EVO-X2(Ryzen AI Max+395)で動作させるチャレンジ〜

NVIDIA製GPU前提で構築されている Hunyuan 3D -2.1を、Ryzen AI Max+ 395搭載のEVO-X2 (128GB RAM)で動作させるべくチャレンジした結果を、『ローカルAIに向き合う展示会』(https://techplay.jp/event/987584)でのLT向けにまとめたものです

結局、不完全な動作であったため、当該コードベースをGitHubを公開する予定はありません。

Avatar for hawky the miscellaneous

hawky the miscellaneous

December 09, 2025
Tweet

More Decks by hawky the miscellaneous

Other Decks in Technology

Transcript

  1. CUDA vs ROCm 比較 NVIDIA CUDA PyTorch / TensorFlow cuDNN

    / cuBLAS CUDA Runtime NVIDIA GPU ✓ 業界標準・エコシステム成熟 ✓ ほぼ全てのAIフレームワークが対応 ⇔ 移植 AMD ROCm PyTorch (ROCm版) MIOpen / rocBLAS HIP Runtime AMD GPU △ エコシステム発展途上 △ CUDA前提コードの移植が必要
  2. 検証環境 ハードウェア CPU/APU AMD Ryzen AI MAX+ 395 GPU Radeon

    8060S アーキテクチャ gfx1151 (RDNA 3.5) VRAM 64GB (共有) 統合GPUのため、ROCmサポートは限定的 ソフトウェア ROCm 7.1 PyTorch 2.8.0+rocm7.1 コンテナ rocm/pytorch rocm7.1_ubuntu24.04_py3.12_pytorch_release_2.8.0
  3. 結論:動いた?動かなかった? シェイプ生成 成功! •環境変数設定で動作 •所要時間:約3分10秒 •頂点数 348,353 / 面数 696,714

    テクスチャ生成 未完 •ハードコードされたCUDA参照 •マルチGPU前提の設計 •大規模な改修が必要
  4. シェイプ生成:2つの壁を越えた 課題1: SDPAカーネル不在 Flash/Memory Efficient Attentionが ROCmでは実験的機能として無効化 解決策 実験的カーネルを明示的に有効化 課題2:

    GFXアーキテクチャ互換性 実機はgfx1151 (RDNA 3.5) ライブラリは gfx1100 (RDNA 3) 向け →GPU Hangやクラッシュが発生 解決策 export HSA_OVERRIDE_GFX_VERSION=11.0.0 export PYTORCH_ROCM_ARCH=gfx1100 GFXバージョンをエミュレート
  5. テクスチャ生成:立ちはだかる壁 ハードコードされたCUDA参照 複数箇所で直接指定されている マルチGPU前提設計 albedoとPBRを別GPUで処理 メモリ要求量 64GB共有メモリでも不足 動作に必要な改修 デバイス参照の動的化 "cuda:X"

    → tensor.device マルチGPU設計の見直し シングルGPU対応へ再設計 メモリ効率化 チャンク処理・CPUオフロード MIOpen回避 Math SDPへフォールバック アーキテクチャレベルの変更が必要
  6. ROCm 環境変数チェックリスト HSA_OVERRIDE_GFX_VERSION=11.0.0 → GFXアーキテクチャ互換性の確保 PYTORCH_ROCM_ARCH=gfx1100 → ターゲットアーキテクチャの指定 TORCH_ROCM_AOTRITON_ENABLE_EXPERIMENTAL=1 →

    実験的カーネル (Flash Attention等) の有効化 PYTORCH_HIP_ALLOC_CONF=expandable_segments:True → メモリ断片化対策 Docker実行時の設定例 docker run --rm -it --device=/dev/kfd --device=/dev/dri \ -e HSA_OVERRIDE_GFX_VERSION=11.0.0 \ -e TORCH_ROCM_AOTRITON_ENABLE_EXPERIMENTAL=1 \ rocm/pytorch:rocm7.1_ubuntu24.04_py3.12_pytorch_release_2.8.0