Strataの最新改善:WindowsのVRAM固定制限回避、NUMA高速化、そして新GPU世代での不具合報告

StrataローカルLLMQwenGPULLM

目次
  1. 今回の要点
  2. Windows環境におけるVRAM固定と読み込みの高速化
  3. Windows環境におけるNUMAバインディングとVRAM固定の高速化
  4. レイヤ分割Autoの非対称割り当てと不安定性
  5. Qwen3.8-Flash-Next (IQ3_S) の推論品質と非決定性問題
  6. Blackwell/RTX PRO 6000DおよびRTX 5060 Tiでのメモリクラッシュ
  7. Intel Arc (Battlemage/A770) 向けSYCLカーネルの高速化と画像対応
  8. 出典

Strataは、Niko1221 (@coldniko) によって開発されている、Qwen3.8-Flash-Next (125B MoE) などの大規模モデルを、8GB以上のNVIDIA GPUとシステムRAMで動作させるためのローカル推論エンジンです。OpenAI/Anthropic互換APIを提供し、MITライセンスで公開されています。

今回の更新では、Windows環境特有のVRAM固定(ページロック)に関する深刻な制限の回避策や、デュアルソケットPCにおけるNUMAノード固定による高速化が実装されました。一方で、Blackwell世代やRTX 5060 Tiなどの新世代・新アーキテクチャGPUにおいて、起動失敗やクラッシュが発生しているという報告も寄せられています。また、Intel Arc A770などのSYCL対応GPU向けにも、画像処理やデコード速度の大幅な最適化が行われています。

今回の要点

  • WindowsのVRAM固定制限回避: 複数GPU環境でページロックが失敗する問題に対し、`VirtualLock`による代替実装が導入されました。
  • Windowsのモデル読み込み高速化: 投影行列のアップロードに8スレッド並列処理を採用し、所要時間を1.5秒から0.3秒に短縮しました。
  • NUMA環境の高速化: CPUとGPUを同一のNUMAノードにバインドすることで、プロンプトスループットが最大40%向上しました。
  • レイヤ分割の改善と課題: 非対称GPUペアでの自動分割の偏りや、起動ごとの不安定性が報告されています。
  • 新世代GPUでの不具合: Blackwell (sm_120) やRTX 5060 Tiにおいて、Q5_K/Q8_0関連のクラッシュやCUDAエラーが発生しています。
  • Intel Arc (SYCL) の最適化: Battlemage向けデコードの高速化と、A770向け画像処理(Vision)のサポートが追加されました。

Windows環境におけるVRAM固定と読み込みの高速化

前提:ページロックとVRAMの仕組み

Strataは、モデルの重みなどをシステムRAMに保持し、必要な時だけGPUに転送する「ページロック(ページドメモリ)」技術を用いて、VRAMの容量不足を補完します。しかし、Windows環境では複数のNVIDIA GPUが存在する場合、ドライバーの制限により一度に確保できる「最大のページロック済みメモリ」のサイズが半分になってしまうという問題がありました。

何が変わったか

この制限を回避するため、`VirtualLock` APIとワーキングセットの最小値設定を用いた代替実装が採用されました。これにより、複数GPU環境でもRAM上のキャッシュを正しくページロックできるようになりました。また、Windows特有のモデル読み込み遅延(1.5秒)に対し、8つのスレッドで並列に投影行列(合計2019 MiB)をアップロードする実装が取り込まれ、読み込み時間が0.3秒に短縮されました。

なぜ重要か

VRAMが8GB程度しかないGPUで125Bクラスのモデルを動かす際、このRAMキャッシュの動作が安定しているかが成否を分けます。特に複数GPU(例:メインGPUの他にディスプレイ出力用やバックアップ用GPUがある場合)の環境では、以前の制限によりキャッシュが機能せず、動作が不安定になるリスクがありました。

利用者の報告

@KLOP09 による報告では、GTX 1650(ディスプレイ用、CUDA非表示)を追加した環境で、それまでページロックが失敗していたのが、`VirtualLock` 経由でロックされるようになったことが確認されています。

環境 ロック状態
GTX 1650 有効時(従来) ページロック拒否(ワーキングセット最小値で代替)
GTX 1650 無効時(従来) 正常にページロック済み
GTX 1650 有効時(改善後) 正常にロック済み(`VirtualLock` 経由)

Issue #2535: Windows: a second NVIDIA GPU halves the largest pinned allocation

また、Pull Request #2673 において、Windows環境でのモデルロード時間短縮(1.5s → 0.3s)が報告されています。

Windows環境におけるNUMAバインディングとVRAM固定の高速化

前提:NUMAとVRAM固定の高速化

デュアルソケットPCなどでは、CPUとGPUが異なるNUMAノードに接続されている場合があります。エンジンが両方のノードにまたがってメモリを確保すると、GPUとCPU間のデータ転送(DMA)がインターソケットリンクを介することになり、レイテンシが増加します。

何が変わったか

エンジン自体の変更は不要ですが、ユーザー側で `numactl` コマンドを用いて、プロセスをGPUが接続されているNUMAノードに固定することで、プロンプトスループットが37〜40%向上し、最初のトークン生成時間(TTFT)が27〜32%短縮されました。

なぜ重要か

古いCPU(AVX-512非対応など)やデュアルソケット構成でStrataを動かす場合、CPU側の処理がボトルネックになりがちです。NUMAノードを固定することで、CPUとGPU間のデータ移動を最小限に抑え、推論速度を大幅に改善できます。

利用者の報告

@MrKop-git による報告では、GTX 1080 Ti (11GB) と 2x Xeon E5-2696 v4 (44コア/88スレッド) の環境で、以下のコマンドを実行した結果、顕著な速度向上が確認されました。

利用者の報告

  • Ubuntu 24.04.5 LTS、NVIDIA RTX PRO 5000 72GB、Strata engine 0.1.42 環境で、Qwen3.8-Flash-Next IQ3_S モデルを用いたベンチマークにより、フルエキスパート定着とゼロVRAMミスが確認された。 jiangpedro
  • Linux 7.2.8、AMD Radeon RX 6700 XT 12GB、Strata 0.1.43 環境で、qwen3.8-flash-next-iq3_xxs モデルを用いたコミュニティベンチマークが実施された。 germane4oss
numactl --preferred=1 --cpunodebind=1 python serve/server.py ...

この環境では、Expertキャッシュのヒット率が16〜42%であり、ルーティングされたExpertの58〜84%がCPU側で計算されていました。NUMAノード固定により、CPU側の処理がボトルネックとなっていた部分が改善され、プロンプトスループットが向上したと推測されます。

Issue #2684: [Performance]: NUMA-local binding on a dual-socket PC gives +37-40% prompt throughput

レイヤ分割Autoの非対称割り当てと不安定性

前提:レイヤ分割(Layer Split)の仕組み

VRAMが不足する場合、モデルの層(レイヤ)を複数のGPUに分割して割り当てます。Strataは `--layer-split auto` を指定すると、GPUのVRAM容量などを基に最適な分割点を自動計算します。

何が変わったか

非対称なGPUペア(例:VRAM容量が異なる2枚のGPU)において、自動分割が極端な偏りを生む問題が報告されています。また、起動のたびに分割点が変動し、ディスク上のキャッシュ(tier)が無効化されるという不安定さも確認されています。

なぜ重要か

自動分割が機能しない場合、片方のGPUのVRAMが遊んでしまい、もう片方がオーバーフローしてエラーになる、あるいは推論速度が大幅に低下する原因となります。手動での分割設定が必要になるケースが増える可能性があります。

利用者の報告

@Tworks25 による報告では、RTX 4060 Ti 16GB と RTX 3060 12GB の環境で、`layer-split auto` 実行時、RTX 3060 側にわずか3層(48層中)しか割り当てられず、14,564トークンのプロンプト処理中も消費電力17W(アイドル状態)で利用率0-1%という結果になりました。

また、@shahrokhzargarpour による報告では、38回の起動テストのうち3回で分割点(K値)が変動し、その際にディスク上のキャッシュが読み込めなくなる現象が確認されています。

GPU構成 自動分割結果 問題点
RTX 4060 Ti 16GB + RTX 3060 12GB 4060 Ti: 45層, 3060: 3層 3060側のVRAMが未使用、プロンプト処理速度が低下
非対称GPUペア(複数) 起動ごとに分割点(K値)が変動 キャッシュが無効化され、起動速度や安定性が損なわれる

Issue #2644: layer-split auto gives an asymmetric pair 3 of 48 layers

Issue #2596: layer-split auto: the split is not stable between starts

Qwen3.8-Flash-Next (IQ3_S) の推論品質と非決定性問題

前提:量子化モデルの品質

Strataは、Qwen3.8-Flash-Nextなどの大規模モデルを、IQ3_Sなどの量子化形式で動作させることができます。量子化によりVRAM使用量は減りますが、推論品質の低下や、エンジン内部の状態破損によるエラーが発生するリスクがあります。

何が変わったか

IQ3_S量子化モデルにおいて、ツール呼び出し(Tool Call)の失敗や、推論結果の非決定性(同じプロンプトでも結果が変わる)が報告されています。また、最初のトークン生成前にロジット(logits)が非数値(NaNなど)になり、キャッシュ状態が破損する問題も確認されています。

なぜ重要か

エージェント機能(ツール呼び出し)をStrataで利用する場合、これらの品質低下は実用性を大きく損ないます。特に、状態破損による再起動不要なエラーは、長時間運用するサーバー環境では深刻な問題となります。

利用者の報告

@tamascogustavo による報告では、RTX 5070 12GB 環境で、Strata経由でのツール呼び出しが頻繁に失敗し(不正な引数や存在しないツールを hallucinate する)、llama.cpp と比較して推論品質が劣ると報告されています。

また、@Arvintian による報告では、デュアル 5060 Ti 環境で、最初のトークン生成前にロジットが非数値になり、キャッシュ状態が破損して空の応答が返される現象が確認されています。この場合、Strataを再起動するまで回復できないとのことです。

Issue #2685: Strata serves Qwen3.8-Flash-Next with strange behavior - really bad results

Issue #2536: the engine's logits became non-finite before the first token

Blackwell/RTX PRO 6000DおよびRTX 5060 Tiでのメモリクラッシュ

前提:新世代GPUとアーキテクチャ

NVIDIAの最新世代GPU(Blackwellアーキテクチャ、compute capability 12.0 / sm_120)や、RTX 5060 Tiなどの新モデルでは、Strataのカーネル(GPU上で実行される計算プログラム)との互換性に問題が生じています。

何が変わったか

RTX PRO 6000D (Blackwell) において、Q5_K量子化モデルの出力ヘッド脱量子化カーネルが、長いリクエスト(128トークン以上)でクラッシュする("unspecified launch failure")という報告があります。また、RTX 5060 Ti 16GB 環境では、Linux上でCUDA/Xidエラー(11/13/31/69)が発生し、短いプロンプトでも失敗したり、長いプロンプトで繰り返し失敗したりする問題が報告されています。

なぜ重要か

最新GPUを購入してStrataを利用しようとしているユーザーにとって、これらのクラッシュは致命的な問題です。特にBlackwell世代では、アーキテクチャガードのバグが疑われており、今後のエンジンアップデートで修正される可能性があります。

利用者の報告

@mikesse による報告では、RTX PRO 6000D (GB202, Blackwell 2.0, sm_120) 環境で、Q5_K出力ヘッド脱量子化カーネルが長いリクエストでクラッシュし、v0.1.44.1ではわずか128トークンで失敗すると報告されています。

また、@fdk3r6b による報告では、RTX 5060 Ti 16GB 環境で、Linux上でCUDA/Xidエラーが発生し、短いプロンプトでも失敗したり、長いプロンプトで繰り返し失敗したりする問題が報告されています。同じハードウェアがWindowsでは正常に動作しているとのことです。

Issue #2678: [sm_120 / RTX 6000D] native Q5_K head dequant crashes on long requests

Issue #2625: Linux CUDA/Xid crashes on RTX 5060 Ti 16 GB

Intel Arc (Battlemage/A770) 向けSYCLカーネルの高速化と画像対応

前提:SYCLとIntel Arc GPU

Strataは、NVIDIA GPUだけでなく、Intel Arc GPU(SYCL対応)でも動作します。Intel Arc GPU向けには、デコード速度の最適化や、画像処理(Vision)のサポートが進められています。

何が変わったか

Battlemageアーキテクチャ(B70など)向けに、IQ2/IQ4量子化モデルのデコードが最適化され、速度が向上しました。また、Arc A770向けには、ハイパー接続読み込みの高速化や、GDN再帰計算の高速化(2.6倍)が実装されました。さらに、CPUエンコーダーを用いた画像処理(`--vision cpu`)のサポートが追加されました。

なぜ重要か

Intel Arc GPUユーザーにとって、これらの最適化は推論速度の向上と、画像認識機能の利用を可能にします。特に、A770ではデコード速度が大幅に改善されており、実用的な速度での動作が期待できます。

利用者の報告

今回のIRには、Intel Arc GPUに関する具体的なユーザー報告(observations)は含まれていませんが、以下のPull Requestで実装が確認できます。

出典

【宣伝】SwitchBot 購入はこちらから

SwitchBot公式ページ
クーポン「AF-4903」で5%引き(アフィリエイトクーポンになりますのでご協力お願いします)
割引の詳しい仕組みに関してはこちらのページを参照ください。
製品ごとの特徴・紹介動画は SwitchBot 製品ガイド にまとめています。