HPC向け優れた混合精度戦略の模索
オリジナル記事「In Search of Better Mixed Precision Strategies for HPC」
いつなら倍精度を捨てて単精度に切り替えてもよいのか。同じプログラム内で混合精度を使用することは可能か。精度の低下はI/Oにどのような影響を与えるのか。これらは、先月開催されたISC 2026で、ミュンヘン工科大学の計算数学学科長であるハルトヴィヒ・アンツ氏が、説得力のあるプレゼンテーションの中で提起した質問の一部だ。
「かつて誰かが混合精度について語った場合、それはほぼ間違いなく倍精度(またはFP64)と単精度(またはFP32)の切り替えについてのことだった」と、アンツ氏はISC 2026での「The Narrow Margin: Leveraging Mixed Precision to Breach the Memory Wall」と題したプレゼンテーションの中で述べた。
「現在では、状況ははるかに複雑だ。我々は基本的に、フォーマットの動物園の中にいるようなものだ」とアンツ氏は述べ、Bfloat 16、FP8、INT8、さらには将来的なINT2やINT1といった様々なマイクロスケーリング形式を盛り込んだスライドを示した。「我々はまさに、珍しい動物たちがいる領域に足を踏み入れつつあるのだ。」
HPCの専門家たちは、この珍しいデータ形式の「動物園」などあまり気にも留めず、FP64やFP32を使い続けることを好むだろう。しかし、エヌビディアがデータセンター向けGPUにおいて、特にマイクロスケーリング形式といった低精度を強調し続けているという事実がある。
![]() |
|
| (画像提供:Hartwig Anzt/TUM) | |
アンツ氏によると、2007年のTesla GPUの発売から2025年のBlackwell Ultraの発売に至るまで、FP16の性能は年平均で68.3%向上し、FP32は57.3%、FP64は29.8%向上したというスライドが示された。一方、メモリ帯域幅は年率29.3%増加したのに対し、価格はわずか22.9%の上昇にとどまった。
HPCwireで過去1年間にわたり報じてきたように、エヌビディアのGPUにおけるFP64の性能向上は近年停滞している。AmpereからHopperへの移行時に大幅な飛躍を見せた後、Blackwellや現在のRubinでは、ネイティブのFP64処理能力の向上は見られていない。
アンツ氏によると、Blackwell GPUはFP64に比べてFP4テンソルのFLOPSが5,000倍高いという。
研究者がその活用方法を編み出せれば、これは利用可能な膨大な計算能力となる。データやアルゴリズム、あるいはその両方に変更を加えることで、低精度ハードウェアの性能を引き出すことができる。問題は、計算の整合性を損なうことなく、それをどのように実現するかだ。
混合精度の世界に足を踏み入れる
アンツ氏は、ハンブルク・コングレスセンター(CCH)の会場で、研究者がハードウェアエミュレーションやデータ圧縮といった手法を活用し、低精度フォーマットを効果的に利用できるいくつかのシナリオを聴衆に解説した。
例えば、研究者はマルチワードエミュレーションを行うことができる。これは、大規模で複雑なデータセットを、個別に処理すればより高速に処理できる、より小さく複雑度の低いチャンクに実質的に分割し、最後に再組み立てして同じ結果を得る手法だ。
![]() |
|
| (画像提供:Hartwig Anzt/TUM) | |
「そして最近、おそらく最も注目を集めた論文は、オザキ方式に関するものだ」とアンツ氏が述べた。「オザキ方式とは、このマルチワードエミュレーションを、スカラーレベルではなく行列レベルで行うという考え方だ。」
Ozaki IIは、中国剰余定理を活用することでOzaki Iをさらに発展させたものだ。「これは非常に賢いアイデアだ。これにより、実行しなければならないスライスの数が基本的に削減される」とアンツ氏は述べた。「これにより、例えばテンソルコア上で倍精度の行列・行列乗算を非常に高いパフォーマンスで実行できるようになる。」
Ozaki IIのエミュレーションは、エヌビディアのGPUに搭載されているINT8テンソルコア上でFP64ワークロードをエミュレートすることで、一部のシナリオにおいて処理速度の向上をもたらすことができるが、あらゆる状況で機能するわけではないとアンツ氏は述べた。「問題は、密行列同士の乗算が優れたアプリケーションであり、機械学習で多用されている点だ」と彼は語った。「しかし、密行列同士の乗算以外にも、はるかに多くの処理が存在するのだ。」
ルーフラインに注目!
メモリ帯域幅に制約されていない限り、FP64からFP32への切り替えによって、アプリケーションのパフォーマンスがさらに向上する可能性がある。アンツ氏は、FP32とFP64のルーフラインがどのように異なるかを示すことで、この原理を実証した。特定のアプリケーションがルーフライン図上のどこに位置するかによって、それがオザキのようなエミュレーション手法の適した候補となるかどうかが決まる。
![]() |
|
| (画像提供:Hartwig Anzt/TUM) | |
「このルーフライングラフの右側には、主に高密度な行列・行列乗算が占めている。これらは演算負荷の高い演算だ……ここが、プロセッサのピーク性能において『ルーフ』あるいは『天井』に達する地点だ」とアンツ氏は述べた。「倍精度から単精度に切り替えた場合、左側の領域にいる時よりも高い処理速度が得られるだろう」。
気候や気象のモデリングといった他のHPCアプリケーションは、主に疎な線形代数を用いるアルゴリズムで構成されており、処理能力ではなくメモリ帯域幅によって制約される傾向がある、とアンツ氏は述べた。これらはすでにメモリ帯域幅のルーフラインによって制約されているため、倍精度から単精度に切り替えても処理速度の向上は見込めない。
しかし、これらの疎な線形代数アプリケーションでも、I/Oが高速化されるため、倍精度から単精度に切り替えることで、ある程度の速度向上が見込める。「したがって、これは私たち全員が常に念頭に置いておくべき重要な点だ」とアンツ氏は述べた。
アプリ内での混合精度
精度を下げれば処理速度が向上するように見えても、切り替えを行う前に考慮すべき他の要因がある。
「第一の問題は、最終結果の精度が同じにならないことだ」と彼は述べた。「そして、あまり議論されない第二の問題がある。行列の低次元表現を解いているため、実際には一般的に異なる問題を解いていることになるのだ。」
![]() |
|
| (画像提供:Hartwig Anzt/TUM) | |
行列の低精度表現と高精度表現が同一である可能性はあるが、一般的にはそのようなことはあまりない、と彼は述べた。「したがって、単に低精度に切り替えるのは、概して良い考えではない」とアンツ氏は語った。
GMRESのような反復法ソルバーにおいて、テンソルコアの利点を活かすもう一つの方法は、出力ベクトルを高精度表現から低精度表現に切り替えることだ。しかし、それも良い考えではないとアンツ氏は述べた。「結局のところ、我々が求めているのは高品質な出力、つまり高精度な解だからだ」と彼は語った。「したがって、出力解を低精度で提供することはできない。」
クリロフ法は低精度で性能向上が見込まれる
しかし、他にも恩恵を受けられる分野がある。その一つが、高次元空間における解候補を探索する手法であるクリロフ基底の利用だ。アンツ氏によると、計算自体は高精度(倍精度)で行う一方で、クリロフ基底の保存には低精度(単精度)で済ませても問題ないという。
アンツ氏は、クリロフソルバーを2つのモードで実行したテスト結果を聴衆に示した。1つは完全に倍精度で行うモード、もう1つはクリロフ基底を単精度で保存しつつ、計算は倍精度で行うモードだ。混合精度のアプローチでは反復回数が多くなるものの、最終的には1.4倍高速に実行された。
「結局のところ、クリロフソルバーの反復回数は増えるかもしれないが、すべての反復処理が、クリロフ基底を倍精度で保存する場合よりも大幅に高速であるため、収束までの時間は短縮される」と彼は述べた。「つまり、クリロフ基底を低精度で保存しつつ、すべての演算を高精度で行うことで、同じ収束速度を維持しつつ、処理速度を約40%向上させることができるのだ。」
![]() |
| (画像提供:Hartwig Antz/TUM) |
結果を倍精度で保存する方式から単精度で保存する方式に移行することは、実質的に単純な形式の圧縮にあたる。結果を損なうことなくFLOPを節約できることが実証されれば、その余ったFLOPを活用して、他にもさまざまなより精巧な圧縮手法を適用できるようになる、とアンツ氏は述べた。
マルチグリッドも有望だ
アンツ氏は、低精度を利用したもう1つの手法の結果を示した。今回は、偏微分方程式に対するマルチグリッドソルバーを用いたものだ。代数的マルチグリッド(AMG)前処理器の結果をGingkoライブラリに低精度で格納することで、アンツ氏は近似誤差を増大させることなく計算速度の向上を図れることを期待していた。
「マルチグリッドのレベルを下っていくにつれて、システム行列の表現はますます粗くなっていく」とアンツ氏は述べた。「そして、近似が粗くなるのであれば、おそらくより粗い形式も使えるはずだ。」
テストの結果、その仮説は裏付けられた。「低精度で実行すれば、直接法ソルバーの計算コストは低くなる」と彼は述べた。「そしてレベルが上がるにつれて、ある時点で変換を行わなければならない。これには多少のオーバーヘッドが生じるが、全体としては、この戦略を用いればマルチグリッド全体の処理が高速化されることが確認できた。」
このアプローチは現実の世界でメリットにつながるだろうか。それが大きな疑問だ。アンツ氏は実際に、ユーロHPCセンター・オブ・エクセレンスが実施している心臓の電気信号に関する研究の一環として、実験室環境でAMGプレコンディショナーの手法を検証した。
「このため、心臓を細胞レベルで離散化し、各細胞ごとに化学シミュレーションを行い、そしてもちろん、心臓全体にわたる電気シミュレーションを行わなければならない」とアンツ氏は述べた。「まさにこのケースにおいて、混合精度が導入された代数マルチグリッド法が適用された。しかし、何の効果も見られなかった。つまり、処理速度が向上しているとは実感できなかったのだ。」
結論
結局のところ、今日のハードウェアのトレンドは低精度を重視しており、これはまさにAIブームが求めているものだ。
![]() |
|
| ミュンヘン工科大学の計算数学学科長、ハルトヴィヒ・アンツ | |
「我々は、ハードウェア設計がAIによって牽引され、低精度フォーマットがますます重要になっている時代に生きている」と、アンツ氏は締めくくりの言葉で述べた。「精度が完全に消え去るかどうかは今後の展開次第だ。そうはならないと思うが、焦点は低精度と密行列の行列積にある。なぜなら、これこそがAIモデルが必要としているものだからだ。」
場合によっては、HPCワークロードでも低精度ハードウェアを活用できる。特に、アルゴリズムが密線形代数に依存し、メモリ帯域幅ではなく演算能力に制約されている場合だ。しかし、留意すべき大きな注意点がある。
「混合精度(Mixed precision)はブラックボックス的なアプローチではない」とアンツ氏は述べた。「単に倍精度から単精度に切り替えるだけでは良い考えとは言えない。同じ精度が得られず、結果として異なる問題を解いている可能性もある。また、アルゴリズム内部であっても、どの部分で混合精度を使用できるかを設定したとしても、それがすべての問題に通用するわけではない。」
アルゴリズム内で混合精度を使用することの影響を理解するには、そのアルゴリズムを綿密に分析しなければならない、と彼は述べた。「しかし、データも検討し、特定のデータセットに対して混合精度を使用することが実際に理にかなっているかを確認する必要もある。また、実際にいつ、どこで混合精度を使用できるかを判断するための戦略も必要だ。」
しかし、精度の低下によってI/Oが軽減されるという利点も見逃してはならない、と彼は述べた。特に、純粋な処理能力の向上に比べて、メモリ帯域幅の向上ペースがはるかに遅いことを考慮すればなおさらだ。
「我々は、読み書きするデータ量の削減に真に注力する必要があり、混合精度はその点で有用なツールとなり得る。なぜなら、精度は基本的にデータの圧縮であり、それによって読み書きするデータ量を削減できるからだ」と彼は述べた。「また、通信量を減らすために、より多くの計算を行うアルゴリズムを優先すべきだ。」











