@huggingface/kernels の2.57倍とは:母数と測定条件
Hugging Face が2026年9月1日に公開した207個のWebGPUカーネルのベンチマークを、数値ごとの母数と測定条件で整理しました。2.57倍は1,756ケース中809ケースの幾何平均、MatMulは比較29件で1.14倍、測定はApple M4の単一構成です。
答え 809件の個別演算の比較 2.57 倍 幾何平均・HF発表値
この記事は海外の一次情報をAIエージェントが調査・検証して整理したもので、実際に試した体験談ではありません。
結論:2.57倍は「809件の個別演算」の幾何平均
Hugging Face の発表(2026年9月1日のブログ)によると、この倍率の性格は次の3点です。
- 母数は207演算・1,756テストケースのうち、双方の出力が一致して信頼できる計測が取れた809ケース
- 測定環境は Apple M4 GPU の1構成で、比較相手は ONNX Runtime Web の dev ビルド
1.30.0-dev.20260826-b1f76d586a - 対象は個々の演算であり、モデル全体の実効速度ではない(原典が明記)
以下の数値はすべて Hugging Face の自社ベンチマークによるもので、第三者による再測定は2026年9月2日時点で確認できていません。
数値ごとの母数と条件
全体の数字
| 項目 | 値 |
|---|---|
| 公開されたカーネル数 | 207 |
| 出発点のテストケース数 | 1,756 |
| 比較に採用されたケース数 | 809 |
| 幾何平均の速度比 | 2.57倍 |
| 中央値の速度比 | 1.90倍 |
| 勝ち / 負け / 引き分け | 629 / 176 / 4 |
629 + 176 + 4 は809で、採用ケース数と一致します。いっぽう 1,756 − 809 = 947 という差(この引き算は当方によるもので、947という数は原典に登場しません)については、原典は採用側の基準を1文で示すだけで、件数・演算別の分布・除外理由の区分を示していません。
演算別の数字(原典の表)
| 演算 | 比較件数 | HFカーネル | ORT WebGPU | 速度比 |
|---|---|---|---|---|
| Add | 5 | 0.064ms | 0.227ms | 3.52倍 |
| LayerNormalization | 6 | 0.061ms | 0.135ms | 2.22倍 |
| Softmax | 12 | 0.114ms | 0.240ms | 2.11倍 |
| MatMul | 29 | 0.115ms | 0.131ms | 1.14倍 |
比較件数の少ない順に並べ替えています。Transformer 系の推論時間を大きく占める MatMul は、掲載4演算のうち最小の1.14倍でした。
原典は、この4演算をどう選んだのか、比較件数がどう決まったのかを説明していません。また速度比の列は表示された2つの ms 値の比ではなく(割ると公表値と細かく食い違います)、算出方法の記載もありません。ms の列が平均値なのか中央値なのかも書かれていないため、ms から倍率を再計算しない・ms を「平均」と呼ばないのが安全です。
外れ値として原典が挙げた2件
| ケース | HFカーネル | ORT WebGPU | 速度比 |
|---|---|---|---|
bilinear Einsum(i,ij,j、サイズ4096) | 0.136ms | 1,396ms | 1万倍超 |
行方向 CumSum([256, 4096]) | 0.016ms | 4.784ms | 301倍 |
原典はこの2件に「異例のケース」という但し書きを添えており、どこでも期待できる高速化ではないと自ら釘を刺しています。
計測に含まれていない工程
原典によれば、計測対象は GPU 上で行われた処理そのもので、次のようなセットアップは除外されています。
- カーネルのロード
- セッションの生成
- 入力のアップロード
- シェーダーのコンパイル
- 出力の読み戻し
原文はこれらを “such as” として挙げているため、除外項目がこの5つで全部だとは書かれていません。原典はさらに、GPU とブラウザが変われば実際の性能は変わる(原文は will change)と述べ、これらの数値は「あらゆる用途への約束ではなく有用な比較として読むのが最善」だとしています。
導入手順と前提条件
インストール
原典が案内している導入は、次の1行だけです。
npm install @huggingface/kernels@preview
末尾の @preview というタグが示すとおり、これは preview 段階の配布です。当方が照会した npm レジストリの内容は次のとおりでした。
| 項目 | 実測値(2026年9月2日) |
|---|---|
| 公開バージョン | 0.0.1-preview.1 の1件のみ |
| その公開日 | 2026年9月1日 |
| ライセンス | Apache-2.0 |
動作要件にも原典は条件を付けています。WebGPU 対応のブラウザが前提で、対応状況を左右する要素としてブラウザ・OS・GPU・ドライバの4つが挙げられています。
カーネルのファイルがある場所
原典が挙げるファイルは manifest.json / metadata.json / test.json / bench.json / *.wgsl.jinja の5種類ですが、リポジトリ内のどの階層に置かれるかまでは書かれていません。当方が Hub の API で実物を照会した結果は次のとおりです。
| 確認した対象 | 結果(2026年9月2日) |
|---|---|
| main ブランチ | README.md のみ |
| v1 ブランチ | build/webgpu/ 配下に各ファイル |
ai.onnx.Add の *.wgsl.jinja | 3件 |
ai.onnx.MatMul の *.wgsl.jinja | 13件 |
上表は同日の実測であって、恒久的な仕様ではありません。
バージョン番号の読み違えに注意
原典が「別物である」と明示しているのは、次の組み合わせです。
getKernelに渡すversion: 1= 公開された kernel contract のバージョン- これと区別すべきもの = ONNX の opset / 演算子の
since_version/ モデルのリビジョン
引用時に落としやすい点
- 「@huggingface/kernels でブラウザ推論が2.57倍になる」── 原典が明示的に否定している範囲です。2.57倍は個別演算の比較であり、完全なモデルの結果ではありません
- 「他の GPU やブラウザでも同程度」── 測定は Apple M4 の単一構成のみで、他環境の実測値は原典にありません
- 「正式リリース」── npm 上の公開版は preview のみです
- 「ONNX Runtime に取り込まれた」── 原典は ONNX Runtime チームと協力して上流に取り込む作業を進めていると述べるにとどまり、完了や採用時期は書かれていません
なお同時公開の Fleet は、ブラウザ内で動く GPU ベンチマーク・テストスイートで、利用者が同意した場合に各実行が非公開の証跡として提供され、誤った結果や病的に遅いケースの発見に役立ちうる、と原典は説明しています(当チームは実行していないため、動作結果については記載しません)。
関連記事
- GoogleのTPU埋め込み記事、0.999の比較相手は表ごとに違う — 公式が掲げる合格ラインの比較相手が表ごとに違った例
- Papers with Code の検索基盤、公開値は全部5,000本での測定 — 公開されている実測値の分母をつけ直した例
参考にした情報源
全6件のうち0件 が公的機関の公開資料です。