ホームへ戻る

GitHub Repo

Ollamaコミュニティ、ROCmのグラフ初期化時にメモリを使い果たすと報告 一部をCPUにオフロードしてもクラッシュする可能性

10月15日のOllamaコミュニティへの報告によると、AMD GPUでGemma 4モデルの一部をCPUにオフロードして実行しても、グラフ初期化中にメモリ不足が起きる可能性がある。報告者はグラフ実行を無効にして一時的にクラッシュを回避したが、保守担当者は原因を確認しておらず、正式な修正もまだない。

Mattruffoni · CC BY-SA 4.0 · Image source
zh-Hant

Ollamaは10月15日、ROCmの推論障害に関する報告を受けた。ユーザーは12GBのRadeon RX 6750 XTとOllama 0.40.3でgemma4:26b-a4b-it-qatを実行していた。メモリ適応機構によって計算の一部がCPUにオフロードされた後も、後続リクエストのhipGraphInstantiate段階でメモリ不足が発生し、推論プロセスが終了したという。これは特定の環境でのコミュニティ報告であり、すべてのAMD環境に共通する問題だとは言えない。公開されたissue

この障害で注目すべきなのは、モデルの読み込みと最初のリクエストが成功しても、サービスを安定して継続稼働できるとは限らない点だ。報告に添付された構成ログによると、適応後に約2.2GBのGPUメモリが残っていた。最初の障害の後、モデルを再度読み込むと、プロンプト処理後にセグメンテーションフォールトが発生したという。バッチパラメーターを下げても問題は回避できなかった。報告者は、グラフ初期化に必要な追加メモリが十分に確保されていない可能性を疑っているが、これはまだ検証が必要な説明だ。障害ログと構成

AMDのドキュメントによると、HIPグラフはまず演算と依存関係を定義し、その後hipGraphInstantiate()で実行可能なインスタンスを作成する。これにより、繰り返し実行時のカーネル起動とスケジューリングのコストを抑えられる。グラフ機構には初期化とリソース管理の手順が含まれるため、エンジニアは重みの読み込み、初回生成、継続実行でそれぞれ必要となるリソースを確認すべきだ。読み込み後に残っている容量だけでは、すべての実行段階が安全だとは判断できない。これはドキュメントと事例に基づくデプロイ上の見立てであり、原因が確認されたわけではない。AMD HIPグラフのドキュメント

報告者はサービス設定でGGML_CUDA_DISABLE_GRAPHS=1を指定したところ、約7,000トークンの長いプロンプトを使ったテストと実際のプロンプト処理で、クラッシュが再発しなかったと述べている。ただし、速度低下が測定されなかったという記述は、GPUに完全に収まる別の12Bモデルでの結果だ。影響を受けたモデルでもグラフを無効にした際にコストがないとは推論できない。この環境ではGPUアーキテクチャの上書き設定も使われていた。今後は、独立した再現報告、グラフ初期化時のピークメモリ使用量、そして保守担当者がメモリの事前確保や失敗時に通常実行へフォールバックする仕組みを導入するかどうかに注目したい。現在もissueはオープンで、修正ブランチは示されていない。暫定回避策とissueの状況

出典

  1. Ollama issue #19015:ROCm 圖初始化記憶體不足與重載崩潰回報
  2. HIP 7.2:HIP graphs