llama.cpp プロジェクトは、ggml-cpu バックエンド内のヒープ破損に対する重要な修正を含むバージョン b10955 をリリースしました。このアップデートは、プリコンパイル済みヘッダー (PCH) を無効にし、あいまいな CACHE_LINE_SIZE の定義を削除してメモリ安全性の問題を解決します。

  • ggml-cpu PCH の無効化により、自然なインクルード順序が復元され、ops.h がハードウェア干渉ヘッダーよりも先に処理されることが保証されます。
  • std::hardware_destructive_interference_size ブランチの削除により、CACHE_LINE_SIZE は決定論的になり、インクルード順序に依存しなくなります。
  • この修正は、C++ カーネルが 256 バイトのキャッシュラインを使用している一方で C コードが 64 バイトのフォールバックを使用していた不一致を解消し、これにより rope ワークバッファが以前は小さすぎました。
  • この修正により、バッファサイズの不一致に起因する ggml_compute_forward_rope_flt でのヒープバッファオーバーフロークラッシュを防ぎます。

このリリースでは、macOS (Apple Silicon および Intel)、Linux (x64、arm64、s390x)、Windows (CPU、CUDA、Vulkan、ROCm、OpenVINO、SYCL)、Android、および openEuler プラットフォーム向けのバイナリが提供されています。