プレリリース / 継続的ビルド: これは実験的なビルドであり、安定版リリースではありません。
llama : k-pool モデルにおける予期しないグラフ再割り当てを修正 (#29958) * llama : k-pool モデルにおける予期しないグラフ再割り当てを修正 どちらの k-pool モデルも、フルコンテキストの reserve が知り得ない状態に依存する グラフ形状を構築していました: - qwen4exp は inp->cache_safe で分岐しており、llama_memory_seq_cp がセルを 共有するとすぐに(例: batched-bench -pps)false になります。QSA レイヤーが scatter+gather を fill+concat に置き換え、new_pool_rep リーフを 削除したため、デコードグラフは予約されていたものより 12 ノード少なく なっていました - glm5-next は gather = n_tokens <= 16 && n_kv > n_sel で分岐しており、 TG デコードは gather 形状(7564 ノード)を構築した一方、最後の reserve である PP 用は dense 形状(7762 ノード)を持っていました いずれかの不一致により、デコード時に最悪ケースのサイジングを捨てて現在の状態を 固定する再 reserve が強制され、次の状態増加(n_pool、n_kv、n_new)が同じグラフ サイズのままより多くの領域を必要とし、GGML_SCHED_DEBUG_REALLOC=1 下で中断します。 次のように再現できます: GGML_SCHED_DEBUG_REALLOC=1 ./bin/llama-batched-bench \ -hf ggml-org/GLM-5.3-Flash-GGUF:Q2_K -npp 2500 -ntg 32 -npl 1,2 \ -c 32768 -pps -kvu プールされたキーは常に scatter+gather とし、gather の選択はコンテキスト定数 のみから行うようにしました: n_ubatch がすべての ubatch を、top_k + kpool - 1 が n_sel を上限とします。これにより、あるコンテキストのすべてのグラフが単一の形状を 共有し、reserve がそれをカバーします。また、dense パスは 2.5k および 16k コンテキストで gather パスよりも高速に測定されました。 Assisted-by: pi:llama.cpp/MiMo-V2.6-Flash-MOPD * llama : 未使用の k-pool cache_safe グラフ API を削除 k-pool グラフはもはや cache_safe で分岐しないため、get_kpool_cache_safe() や 条件付きの new_pool_rep を読み取る箇所はなくなりました: 両モデルは常に scatter ターゲットを渡すようになり、set_input_kpool は以前の「単に好む」から これを必須とするようになりました。 また、サイズのみのヘルパーである kpool_build_sizes() 内の cache_safe のコピーも 削除しました。レイアウトと状態フラグ自体は残っており、共有セルを持つレイアウトが どのプールを再プールすべきかの判定にはまだ使われます。 Assisted-by: pi:llama.cpp/MiMo-V2.6-Flash-MOPD * tests : 共有 seq のグラフ reserve に対するリグレッションテストを追加 プロンプトを seq 0 にデコードし、llama_memory_seq_cp でそのセルを seq 1 と共有し (llama-batched-bench が -pps で行っていること)、その後両シーケンスのデコードを 続けます。k-pool モデルでは共有により cache_safe がクリアされ、プールが成長し続ける 中でグラフトポロジーが変化するため、最悪ケースではなく現在の状態で再 reserve する スケジューラは GGML_SCHED_DEBUG_REALLOC=1 下で中断します。テストの登録でこのフラグが 設定され、2220411ec1 より前では両 k-pool モデルでテストが中断していました。 kimi-linear と minimax-01 はスキップされます: これらは最終 pp グラフを n_seqs = 1 で reserve するため(llama-context.cpp の [TAG_RESERVE_DIAG_DECAY] を参照)、すべての マルチ seq グラフが異なるレイアウトとなり、設計上再 reserve が発生します。 Assisted-by: pi:llama.cpp/MiMo-V2.6-Flash-MOPD * cont : TODO を追加 * cont : コメントを修正 * cuda: 空 ubatch における moe 加重還元を一致させる ggml_cuda_match_moe_weighted_reduction は行数ゼロのテンソルを拒否していました。 出力を持たない ubatch は inp_out_ids を通じて最後のレイヤーを行数ゼロに縮めるため、 graph_optimize はそこで alloc 依存を落とし、スケジューラグラフは予約されていたものより 1 ノード少なくなっていました。スケジューラはその ubatch のサイズで再 reserve し、 同じノード数だがより大きなテンソルを持つ次の ubatch が GGML_SCHED_DEBUG_REALLOC=1 下で 中断しました。 計算ループはすでにいかなる融合を試みる前にも空ノードをスキップしているため、この ガードは alloc 依存を行数に依存させているだけでした。 * tests: ロールバックテストを内部シンボルがリンクできる場所でのみビルド 共有 seq のケースは llm_arch_from_string を呼び出しますが、これは libllama が LLAMA_API を通じてエクスポートしないため、共有ライブラリ使用時に Windows で test-recurrent-state-rollback のリンクが失敗します。そのビルドは NOT WIN32 OR NOT BUILD_SHARED_LIBS ブロック内、すでに置かれている test-llama-archs とテスト登録の 隣に移されました。 * tests: 共有 seq の reserve テストでアーキ名によりアーキをスキップ のスキップは kimi-linear と minimax-01 について llm_arch_from_string を通じて行われていましたが、 これは libllama が LLAMA_API を通じてエクスポートしないため、共有ライブラリ使用時に Windows でテストがリンクできませんでした。現在は general.architecture 文字列を直接 比較するようになり、テストは再びすべてのプラットフォームでビルドされます。 --------- Co-authored-by: Pascalウェブサイト: - https://llama.app
証明書(Attestations): - https://github.com/ggml-org/llama.cpp/attestations/52789660
macOS/iOS 用: - macOS Apple Silicon(arm64)ビルド - macOS Apple Silicon(arm64、KleidiAI を有効化) 無効(ディセーブル) - macOS Intel(x64)ビルド - iOS 用 XCFramework
Linux: - Ubuntu x64 (CPU) - Ubuntu arm64 (CPU) - Ubuntu s390x (CPU) - Ubuntu x64 (Vulkan) - Ubuntu arm64 (Vulkan) - Ubuntu x64 (CUDA 12) - CUDA 12.8 ライブラリ - Ubuntu x64 (CUDA 13) - CUDA 13.4 ライブラリ - Ubuntu arm64 (CUDA 13) - CUDA 13.4 ライブラリ - Ubuntu x64 (ROCm 10.0) - Ubuntu x64 (OpenVINO) - Ubuntu x64 (SYCL FP32) - Ubuntu x64 (SYCL FP16) - Linux arm64 (Snapdragon: CPU、Adreno GPU、Hexagon NPU) - セットアップガイド
Android: - Android arm64 (CPU) - Android arm64 (Snapdragon: CPU、Adreno GPU、Hexagon NPU) - セットアップガイド
Windows 向け: - Windows x64 (CPU) 版 - Windows arm64 (CPU) 版 - Windows arm64 (OpenCL Adreno) 版 - Windows x64 (CUDA 12) 版 - CUDA 12.4 用 DLL - Windows x64 (CUDA 13) 版 - CUDA 13.4 用 DLL - Windows arm64 (CUDA 13) 版 - CUDA 13.4 用 DLL - Windows x64 (Vulkan) 版 - Windows arm64 (Vulkan) 版 - Windows x64 (OpenVINO) 版 - Windows x64 (SYCL) 版 - Windows x64 (ROCm 10.0) 版
openEuler: - DISABLED ・openEuler x86(310p) ・openEuler x86(910b、ACL Graph) ・openEuler aarch64(310p) ・openEuler aarch64(910b、ACL Graph)
UI: - UI