arXiv論文メモ
新着一覧
cs.DC · 査読状況未確認

GPU行列積の後から誤りを見つけて修復する

Sketching the Error, Not the Product: Post Hoc Fault Recovery for Half Precision GPU Matrix Multiplication

Pranav Napolean, Vikas Srivastava, Napolean Periathambi

この論文をやさしく読む

ひとことで言うと

GPUの行列積を変更せず、計算後に小さな検査値を使って壊れた出力位置を見つけ、回復する方法です。

何に役立つ?

大規模学習中に起きる無言の計算破損の検知・診断に役立ちます。故障ごとの位置と大きさも得て、装置群の調査につなげる狙いがあります。

この研究の面白いところ

誤差の位置特定を制限するのは単なるハッシュ衝突でなく浮動小数点の検査雑音だと調べます。実測雑音や故障の大きさに応じて検査サイズを変えます。

どこまで分かった?

8形状で回復率1.000に達した設定がありますが、故障注入方法とサイズ設定に依存します。Llama-2-7Bで困惑度悪化の99.4〜99.9%を除去した一方、正常経路の検査にも0.78〜3.06 msを要します。

v1のアブストラクトに基づくAI解説。日本語訳とは別に、用途の解釈を含みます。

アブストラクトの日本語訳

故障したアクセラレータによるサイレント・データ破損(SDC)が大規模学習を中断させるようになっているが、導入済みの対策はノード全体を単位として動作する。単一のGEMMに対するアルゴリズムに基づく耐故障性(ABFT)は、カーネルへの組み込み、または入力行列の符号化を必要とし、1つのチェックサム当たり最大1つの誤りしか位置特定できない。 FP-Sketchを提案する。これは、半精度の入力をFP32で累積し、FP32で出力する、変更を加えていないテンソルコアGEMMの実行後に動く検証器である。総和スケッチが呼び出しごとに破損を検出する。その後、独立した再計算で確認する、ハッシュ化した一次モーメントのスケッチが複数の破損要素の位置を特定する。構成上、偽陽性は生じず、各故障について座標と大きさが得られるため、装置群の診断に利用できる。 浮動小数点では、位置特定を制限するのはバケットの衝突ではなく、スケッチのノイズである。このノイズを測定し、その定数がBLASと入力形式に依存すること、正方行列の積ではバケット数をnの2.57乗に比例して増やす必要があることを見いだす。nの累乗への当てはめではなく測定したノイズでバケット数を決めると、8種類のTransformerの形状で回復率が0.402から1.000に向上する。実行時にノイズを測れば、バケット数をカーネルとモデルに適応させられる。 NVBitを使った命令レベルの故障注入では、使用中の累積器の異常は、典型的な要素の値のわずか2〜9%であることが多いと分かる。このような故障の集団は、出力側での故障注入では生成できない。出力側の注入ではすべての故障を回復する一方、NVBitでは、典型的な大きさの故障に合わせた同じエンジンの回復率は0.550となる。測定した故障の大きさに合わせて設定すると、1.000に戻る。 Llama-2-7Bでは、MLPのダウン射影を保護することで、2,048回のビット反転によるパープレキシティの悪化の99.4%(BF16)および99.9%(FP16)を取り除く。正常時の検査には0.78〜3.06 msかかり、比較対象のGEMMは0.35〜12.47 msである。

v1の要旨から自動生成。本文の精読・人による確認は未実施。

初稿
2026-09-17(UTC)
最新改訂
2026-09-17 · v1
査読・掲載
査読状況未確認
arXivで読むPDF

更新履歴

取得できた版を表示。版の更新は査読済みを意味しません。過去版の本文差分は未解析です。

原文の要旨

Silent data corruption (SDC) from defective accelerators now interrupts large scale training, yet deployed mitigations act on whole nodes. Algorithm based fault tolerance (ABFT) for a single GEMM has to be fused into the kernel or encode the operands, and it localizes at most one error per checksum. We present FP-Sketch, a verifier that runs after an unmodified tensor core GEMM whose half precision operands are accumulated and delivered at FP32. A sum sketch detects corruption on every call. Hashed first moment sketches, confirmed by independent recomputation, then localize several corrupted entries with no false positives by construction, and each fault yields a coordinate and a magnitude for fleet diagnosis. In floating point, sketch noise rather than bucket collisions limits localization. We measure that noise and find that its constant depends on the BLAS and the operand format and that the bucket count must grow as $n^{2.57}$ for a square product. Sizing the bucket count by measured noise rather than by a fitted power of $n$ raises recovery on eight transformer shapes from 0.402 to 1.000, and measuring the noise at run time adapts the bucket count to the kernel and the model. Instruction level injection with NVBit shows that upsets in a live accumulator are often only 2 to 9% of a typical entry, a population that output side injection cannot produce. Output side injection recovers every fault, while under NVBit the same engine sized for faults of typical magnitude recovers 0.550, and sizing for the measured magnitudes restores 1.000. On Llama-2-7B, guarding the MLP down projections removes 99.4% (BF16) and 99.9% (FP16) of the perplexity damage caused by 2048 bit flips, and the clean path probe costs 0.78 to 3.06 ms against GEMMs of 0.35 to 12.47 ms.

arXiv ID: 2609.19758 / 要約の誤りについて