Performance evaluation of branch-free fused multiply-add algorithms for multi-component-type multiple-precision floating-point arithmetic
本論文は、ダブルワード、トリプルワード、およびクアドラプルワードの多倍長演算に向けた新しい分岐フリーの融合積和アルゴリズムを提案およびベンチマークし、それらが条件分岐を排除することによって既存の手法よりもさらなる性能向上を実現することを実証する。
原論文は CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) でライセンスされています。 これは以下の論文のAI生成解説です。著者が執筆または承認したものではありません。技術的な正確性については原論文を参照してください。 免責事項の全文を読む
あなたは、標準的な市販のレゴブロックだけを使って、超精密な計算機を作ろうとしていると想像してください。これらのブロックは、あなたのコンピュータにおける通常の浮動小数点数です。通常、これらのブロックを積み重ねて「ダブルワード(2個のブロック)」、「トリプルワード(3個)」、「クアドラプルワード(4個)」の数字を作る際、パーツのサイズが適切かどうかを常に確認しなければなりません。もしパーツが大きすぎたり小さすぎたりすると、作業を中断し、止まって、スタックを組み直す必要があります。コンピュータチップの世界では、これらの「一時停止」は**分岐(ブランチ)**と呼ばれます。
これらのスタックを一度に100万個作る(現代のグラフィックスカードや強力なプロセッサのように)とき、これらの一時停止は悪夢となります。それは、すべての車が異なる標識を確認するために停止しなければならない交通渋滞のようなものです。ある車は左へ、ある車は右へと進むため、列全体が停滞します。これは「レーン分岐(レーン・ダイバージェンス)」と呼ばれ、パフォーマンスを著しく低下させます。
大きな発見:「止まらない」高速道路
Tomonori Kouyaの論文は、決して標識を確認するために止まることのない、新しいスタックの構築方法を紹介しています。それは「分岐フリー(branch-free)」のアルゴリズムです。パーツが十分に大きいかどうかを問い、「答えを待つ」代わりに、この新しい手法は、どのようなパーツであっても完璧に機能する、巧妙に計画されたルートを使用します。
この論文は、超スマートなロボット数学者(FPANVerifierと呼ばれるSMTソルバー)を用いて、この新しいルートがすべての標準的なフォーマットにおいて安全かつ正確であることを証明しています。主な知見は、これらの「停止して確認する」ためのポーズを取り除くことで、コンピュータがはるかに速く計算できるということです。
魔法のトリック:動きの融合
この論文は、**融合積和演算(Fused Multiply-Add: FMA)**と呼ばれる特定の動きに焦点を当てています。想像してみてください、2つの数を掛け合わせ、そこに3つ目の数を足す必要があります。通常、これは2つのステップで行われます。
- 掛け算(そして、おそらく結果を修正するために一時停止する)。
- 足し算(そして、おそらく再び一時停止する)。
著者は、これら両方を一つの滑らかな動きで行う「融合(Fused)」バージョンを提案しています。まるで、ナイフを投げると同時にキャッチする忍者のようなものです。
- ダブルワード(2個のブロック)の場合: 旧来の方法は29ステップかかりましたが、新しい方法ではわずか17ステップです。
- トリプルワード(3個のブロック)の場合: 旧来の方法は96ステップかかりましたが、新しい方法では66ステップです。
- クアドラプルワード(4個のブロック)の場合: 旧来の方法は209ステップかかりましたが、新しい方法では146ステップです。
また、論文では他の研究者によって提案された「ショートカット」手法(6ステップ法)についても議論しています。決定的なことに、このショートカットは一般的には有効ではありません。 これは、数値がすでに特定の配置(具体的には、足される数が積の少なくとも2倍である場合)になっている場合にのみ機能する、高速なツールです。もし、数値が整列していることを保証できない除算や平方根のような一般的な数学の問題にこのショートカットを使おうとすると、精度が著しく低下します。しかし、著者の新しい手法は、特別な配置を必要とせず、あらゆる数値に対して機能するため、一般的な高精度数学のための真の「ドロップイン(そのまま置き換え可能な)」リプレースメントとなります。
どれほど確かなのか?
著者たちは非常に自信を持っていますが、それは単なる推測ではなく、確かな証拠に基づいています。
- 機械検証済み: 彼らは単にコードを書いて期待したわけではありません。エラーが極めて小さいこと(具体的には、、、といった式で抑えられること。ここでは単一の数の微小な丸め誤差)を数学的に証明するために、コンピュータプログラムを使用しました。
- あらゆる場所でテスト済み: 彼らは、これら新しいアルゴリズムを、2つの全く異なるスーパーコンピュータ、**Armベースのチップ(GB10)とIntelベースのチップ(H100)**で実行しました。
- 結果:
- Armチップ上では、除算および平方根の計算において、新しい手法は1.5倍から2.1倍速くなりました。
- Intelチップ上では、除算および平方根において、1.2倍から1.6倍速くなりました。
- 行列乗算(GEMM)のような大規模な数学的タスクでは、トリプルワードの場合、Armチップ上で最大2.0倍の高速化という劇的な結果が得られました。
「正確な」代替案
論文では、このトリックのさらに精密な「完璧な」バージョンであるExact FMAについても言及しています。このバージョンはさらに正確ですが、重い代償を伴います。それは、提案された新しい手法よりも6倍から11倍遅いということです。著者らは、絶対的な、100%の精度が必要であり、速度を気にしない場合にのみ、この「完璧な」バージョンを使用することを提案しています。それ以外のほとんどのケースでは、「分岐フリー」の手法が勝者となります。
「古い」方法については?
この論文は、以前のバージョンの研究における間違いも訂正しています。以前、著者らは自分たちの新しい手法を、非常に遅く非効率な「完全に蒸留された(fully distilled)」旧来の方法と比較していました。彼らは、それが公平な戦いではないと気づきました。新しい手法を、実際の標準的な「分岐フリー」手法(これはすでにかなり高速です)と比較したとき、新しい手法は依然として勝利しましたが、そのスピードアップはより控えめなもの(約1.3倍から1.7倍の高速化)でした。これは依然として大きな勝利ですが、より現実的な結果です。
結論
この論文は、高精度な数学における「停止して確認する」ためのポーズを取り除くことで、精度を損なうことなく、コンピュータを大幅に高速化できることを示しています。それは、あらゆる交差点で止まらなければならない車から、交差点を飛び越えていくことができる車へとアップグレードするようなものです。著者たちは、これが機能することを証明し、実際のハードウェアでテストし、次世代の超高速計算機の準備ができていることを示しました。
自分の分野の論文に埋もれていませんか?
研究キーワードに一致する最新の論文のダイジェストを毎日受け取りましょう——技術要約付き、あなたの言語で。