GitHub Repo
Ollamaコミュニティ、Vulkanキャッシュの性能異常を報告—特定のAMD構成で同一リクエストの速度が大幅低下
10月22日のOllamaコミュニティからの報告によると、特定のAMD RADV構成では、プロンプトキャッシュを有効にした状態で同じリクエストを2回目に送ると、生成速度が大幅に低下する。協力者は別のAMD GPUでは再現できておらず、根本原因と影響範囲は引き続き調査中だ。

OllamaのVulkan推論経路で、ローカル環境へのデプロイを担うチームが注視すべき性能報告が寄せられた。10月22日に作成されたissueによると、Ubuntu、Radeon RX 6600 XT、Mesa RADVの組み合わせでOllama 0.40.8を実行し、同じプロンプトを連続して送信したところ、2回目のリクエストの生成速度が毎秒78.50トークンから2.64トークンに低下した。モデルは引き続き完全にGPUへオフロードされており、プロセスもクラッシュしていない。これは特定環境でのテスト結果であり、すべてのAMDデバイスに当てはまるとは限らない。出典:issue報告
報告者はqwen3:4b、コンテキスト長4096トークン、最大出力64トークンを使用し、ネイティブの生成APIを直接呼び出した。サービスの環境変数LLAMA_ARG_CACHE_RAMを0に設定して再起動すると、連続する3回のリクエストはいずれも毎秒約78トークンを維持した。ただし、この設定はホストメモリのプロンプトキャッシュとアイドルスロットキャッシュの両方を無効にする。テストでは両者の影響を切り分けていないため、単一のキャッシュ機構が根本原因だとは結論づけられない。出典:再現手順と制約
エンジニアリングチームにとって、この報告はモデルを常駐させた後の反復リクエストも性能評価に含める必要があることを示している。Ollamaの公式APIは、モデルのロード、プロンプト処理、生成にかかった時間をそれぞれ提供する。ドキュメントの定義に従い、eval_count ÷ eval_duration × 10⁹で毎秒の生成トークン数を算出し、総所要時間と併せて評価できる。これにより、ロード遅延、プロンプト処理、デコード速度を区別し、エンドツーエンドの待ち時間だけでボトルネックを判断することを避けられる。出典:生成APIドキュメント
一方、反対の結果も報告されている。プロジェクトの協力者1名が、別のAMD RADV GPUで同じOllamaバージョンをテストしたところ、2回のリクエストはいずれも毎秒約78トークンで、速度低下は確認されなかった。また、公式ドキュメントによると、LinuxのVulkanでは異なるドライバー実装を利用でき、使用するGPUも指定できる。今後は、同一ハードウェアでの独立した再現確認、キャッシュ機構を切り分けたテスト、正式な修正を追う必要がある。現時点では、キャッシュを無効にする方法は影響を受ける環境での比較実験としてのみ使うのが適切だ。出典:協力者によるテスト、ハードウェア対応ドキュメント