CUDAとROCmを同時に(-DGGML_BACKEND_DL=ONで)Local LLaMAを動かす方法

Reddit r/LocalLLaMA / 2026/5/1

💬 オピニオンDeveloper Stack & InfrastructureTools & Practical UsageModels & Research

要点

  • ユーザーは、-DGGML_BACKEND_DL=ONを設定し、Vulkanを回避することで、CUDAとROCmを同時に使ってLLM(例:Minimax 2.7 Q4)を実行できたと報告しています。
  • 彼らは主な性能上の利点として「prefill」段階を挙げており、レイヤーのGPUオフロード状況やCUDA0/ROCm0それぞれのモデルバッファサイズがログ付きで示されています。
  • 投稿にはWindowsでのビルド手順が含まれており、CMake/NinjaでROCm側ツールチェーン(clang-cl)を指定し、HIPとCUDAを有効化し、CUDAアーキテクチャやビルド種別を設定しています。
  • -DGGML_CPU_ALL_VARIANTS=ONは多くのコンパイルエラーを引き起こし、ggmlのCMakeLists.txtを手動で修正する必要があったと述べられており、Ryzen 5950Xではより問題なく動いたようです。
  • 実行手順として、ROCmのPATH設定に加え、llama-serverをコンテキストサイズ、スレッド数、flash-attn、キャッシュ種別、並列性など多くのフラグ付きで起動する方法が提示されています。
-DGGML_BACKEND_DL=ON ! で Cuda + ROCm を同時に

かなり時間をかけて取り組みましたが簡単ではなく、それでも最終的に Vulkan を回避して、Cuda+ROCm を同時に使いながら Minimax 2.7 Q4 のようなモデルを実行できるようになりました。

load_tensors: 63/63 レイヤーを GPU にオフロード

load_tensors: CUDA0 モデルバッファサイズ = 83650.42 MiB

load_tensors: CUDA_Host モデルバッファサイズ = 622.76 MiB

load_tensors: ROCm0 モデルバッファサイズ = 40314.35 MiB

主な利点は prefill です。

Windows の場合:

rmdir /s /q build

cmake -B build -G Ninja ^

-DCMAKE_C_COMPILER="C:/Program Files/AMD/ROCm/6.4/bin/clang-cl.exe" ^

-DCMAKE_CXX_COMPILER="C:/Program Files/AMD/ROCm/6.4/bin/clang-cl.exe" ^

-DCMAKE_HIP_COMPILER="C:/Program Files/AMD/ROCm/6.4/bin/clang-cl.exe" ^

-DCMAKE_PREFIX_PATH="C:/Program Files/AMD/ROCm/6.4" ^

-DHIP_ROOT_DIR="C:/Program Files/AMD/ROCm/6.4" ^

-DGGML_HIP=ON ^

-DGGML_CUDA=ON ^

-DGGML_BACKEND_DL=ON ^

-DGGML_CPU_ALL_VARIANTS=ON ^

-DGGML_AVX_VNNI=OFF ^

-DGGML_AVX512=OFF ^

-DGGML_AVX512_VBMI=OFF ^

-DGGML_AVX512_VNNI=OFF ^

-DGGML_AVX512_BF16=OFF ^

-DGGML_AMX_TILE=OFF ^

-DGGML_AMX_INT8=OFF ^

-DGGML_AMX_BF16=OFF ^

-DCMAKE_CUDA_COMPILER="C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v13.1/bin/nvcc.exe" ^

-DCMAKE_CUDA_ARCHITECTURES="120" ^

-DCMAKE_BUILD_TYPE=Release

___________________

cmake --build build -j

_______________________

残念ながらこのフラグ:-DGGML_CPU_ALL_VARIANTS=ON --> は多くのコンパイルエラーを作ってしまい、例えば次のように編集して対応しました:

notepad C:\\llm\\llamacpp\\ggml\\src\\CMakeLists.txt

そして # ggml_add_cpu_backend_variant(alderlake SSE42 AVX F16C FMA AVX2 BMI2 AVX_VNNI) を削除します

Ryzen 5950x では問題ありません。

その後:

set PATH=C:\\Program Files\\AMD\\ROCm\\6.4\\bin;%PATH%

llama-server.exe --model "H:\\gptmodel\\unsloth\\MiniMax-M2.7-GGUF\\MiniMax-M2.7-UD-Q4_K_S-00001-of-00004.gguf" --ctx-size 91920 --threads 16 --host 127.0.0.1 --no-mmap --jinja --fit on --flash-attn on -sm layer --n-cpu-moe 0 --threads 16 --cache-type-k q8_0 --cache-type-v q8_0 --parallel 1

完了。

提供者: /u/LegacyRemaster
[リンク] [コメント]