Show HN: Headroom – ローカルAI用GPUの真の帯域幅上限を測定
Headroomは、ローカルAI推論におけるGPUメモリ帯域幅の上限を30秒で測定するブラウザベースのツールです。モデルのダウンロードは不要で、合成ウェイトを使用し、WebGPU対応が必要です。3つの独立した方法で帯域幅を測定し、ブラウザ内LLMで静かにゴミを生成するサブグループバグを検出します。検証により、ブラウザ内エンジンは起動オーバーヘッドに制限されており、ハードウェアには2〜3倍の余裕があることが示されています。
Headroomは、ローカルAI推論におけるデバイスの真のメモリ帯域幅上限を測定するための革新的なブラウザベースのベンチマークツールです。テスト全体は約30秒で完了し、モデルのダウンロードは不要です。合成ウェイトを使用し、約0.4 MBの公開テンソルメタデータのみを取得してトークンあたりの正確なバイト数を導出します。WebGPU対応が必要で、アカウント不要、広告なし、テレメトリーなしで、測定結果はユーザーが共有しない限りブラウザ内に留まります。
Headroomの基本原理は、LLMデコードにおけるメモリ帯域幅のボトルネックに基づいています。バッチサイズ1のデコードでは、生成される各トークンはGPUメモリからウェイトを一度ストリームする必要があるため、トークン/秒の上限はメモリ帯域幅をトークンあたりのバイト数で割ったものになります。Headroomは3つの独立した方法(バッファコピー、トライアド読み書き、および純粋読み取りリダクション(GEMV形状))で帯域幅を測定し、その後、決定論的な合成ウェイトを使用してゼロからのGEMVラダーテストを実行し、実際のカーネルがデバイス上でどの程度の上限に達するかを示します。合成ウェイトが有効なのは、ストリーミング時間は値に依存せず、正確性チェックのみが値に依存するためです。ハッシュ由来のフィルにより、FP64 CPUリファレンスで各カーネルをタイミング前に検証できます。
分母は推測ではなく導出されます。Headroomはモデルのsafetensorsヘッダー(約0.4 MBの公開メタデータ、固定リビジョンから)をレンジフェッチし、テキストデコード用にすべてのテンソルを分類します。例えば、Gemma 4 E2B QAT(2.46 GB、2780テンソル)では、0.81 GBが毎トークンストリームされ(トランスフォーマーレイヤー0.68 + lm_head 0.10 + レイヤーごとのプロジェクション0.03)、1.31 GBの埋め込みテーブルはトークンごとに1行が収集され、0.34 GBのビジョン/オーディオタワーはテキストデコードでは触れられません。上限は空のコンテキストで引用されます。KVキャッシュ読み取りはコンテキスト長とともに増加し、実際の上限を下げます。
実際のエンジンに対して検証済みです。RTX 5070では、ブラウザタブを介して577 GB/s(672 GB/s GDDR7仕様の86%)を測定し、E2B上限は約717 tok/sとなります。Xenovaのエンジンはそのマシンで約217 tok/s(上限の30%)をデコードします。ウェイトのストリーミングには各4.6 msトークンのうち1.4 msしか必要とせず、予算の約70%は起動オーバーヘッドと非GEMV作業に消費されます。Apple M1では51〜56 GB/s(仕様の74〜82%)を測定し、上限は約63〜69 tok/s、同じエンジンで30〜40 tok/s(約50%)を実現します。2つのマシンからの結論は同じです:今日のブラウザ内エンジンは帯域幅ではなく起動オーバーヘッドに制限されており、ハードウェアには2〜3倍の余裕があります。これが測定の目的です。同じランの追加の発見として、非結合アクセスはAppleの統合メモリで上限の約50%を維持しますが、個別GDDR7では27%に低下します。Blackwellでは結合が3.7倍の価値があります。
Headroomには、「Canary v2」テストも含まれており、特定のサブグループバグを検出します。一部のブラウザでsubgroupAddを使用すると、決定論的なエラーが発生し、LLMがゴミを生成する可能性があります。このテストは32ワイド最小サブグループで実行され、subgroupShuffleXorを使用する正しいコントロールと比較されます。RTX 5070の安定版Chrome 150で検証済みで、Canary v2は20/20の試行で失敗し、相対誤差は最大1.7×10⁻¹でしたが、バタフライは20/20をパスしました。これは静的分析では見えない、ライブでサイレントな正確性バグです。
Headroomチームは一般的な反論にも回答しています。例えば、GEMVは100%の上限に達しない(しかし3つの独立した測定が相互検証する)、タイムスタンプクエリなしの壁時計タイミングは信頼できる(大きなブロックでの自動キャリブレーションと中央値による)、ウェイトバッファはキャッシュに収まらない(128 MiB対48 MB L2)、合成ウェイトはパフォーマンス測定に影響しない、Canary v2は真の誤コンパイルであり意味論のギャップではない、などです。
要約すると、Headroomは、開発者や愛好家がGPUの真の帯域幅上限を理解し、ブラウザ内AI推論のボトルネックを明らかにするための、正確で透明性があり検証可能なツールを提供します。