ブロック浮動小数点( BFP ) は、固定小数点プロセッサを使用しながら浮動小数点に近い演算を提供するために使用される方法です。BFP は、単一の仮数部に独自の指数を割り当てるのではなく、仮数部 (浮動小数点数の指数部以外の部分)のグループを単一の指数に割り当てます。BFP は、指数を再利用することで、ハードウェアのスペースの使用を制限して浮動小数点アルゴリズムと同じ機能を実行するのに有利です。ブロック間の複数の値に対する一部の操作も、計算量を減らして実行できます。[1]
共通指数は、ブロック内で振幅が最も大きいデータによって求められます。指数の値を求めるには、先頭のゼロの数を見つける必要があります (先頭のゼロの数を数える)。これを行うには、データに必要な左シフトの数を、使用するプロセッサのダイナミック レンジに合わせて正規化する必要があります。一部のプロセッサには、指数検出や正規化命令など、これを独自に見つける手段があります。[2] [3]
ブロック浮動小数点アルゴリズムはジェームズ・ハーディ・ウィルキンソンによって広範囲に研究された。[4] [5] [6]
BFP は、パフォーマンスをわずかに向上させるためにソフトウェアで再作成できます。
マイクロスケーリング (MX) 形式
マイクロスケーリング(MX)形式は、AIおよび機械学習ワークロード向けに特別に設計されたブロック浮動小数点(BFP)データ形式の一種です。AMD、Arm、Intel、Meta、Microsoft、NVIDIA、Qualcommなどの大手業界プレーヤーによって承認および標準化されたMX形式は、AI向けの狭精度データ形式における大きな進歩を表しています。[7] [8] [9]
MX 形式では、要素のブロックに対して単一の共有スケーリング係数 (指数) が使用されるため、AI 操作に必要なメモリ フットプリントと計算リソースが大幅に削減されます。k 要素の各ブロックはこの共通のスケーリング係数を共有し、個々の要素とは別に保存されます。
最初の MX 仕様では、MXFP8、MXFP6、MXFP4、MXINT8 など、いくつかの特定の形式が導入されています。これらの形式は、さまざまな精度レベルをサポートしています。
- MXFP8: 2 つのバリエーション (E5M2 と E4M3) を持つ 8 ビット浮動小数点。
- MXFP6: 2 つのバリエーション (E3M2 と E2M3) を持つ 6 ビット浮動小数点。
- MXFP4: 4 ビット浮動小数点 (E2M1)。
- MXINT8: 8 ビット整数。
MXフォーマットは、大規模言語モデル(LLM)、画像分類、音声認識、推奨システムなど、さまざまなAIタスクで効果があることが実証されています。[10]たとえば、MXFP6は量子化を考慮した微調整後の推論タスクではFP32とほぼ一致し、MXFP4はわずかな精度の低下のみで生成言語モデルのトレーニングに使用できます。
MXフォーマットは、オープンコンピューティングプロジェクト(OCP)を通じてマイクロスケーリングフォーマット(MX)仕様v1.0として標準化されています。[7]データサイエンスアプローチの詳細とMXの実際の結果を提供するエミュレーションライブラリも公開されています。[11]
ハードウェアサポート
次のハードウェアは BFP 操作をサポートします。
- d-マトリックス ジェイホークII [12] [13]
- テンストレント グレイスカル e75 および e150 (BFP8、BFP4、BFP2) [14]
- テンストレントワームホールn150とn300(BFP8、BFP4、BFP2)[14]
- Amd Strix Point APU(Ryzen AI 300シリーズとしてブランド化)はNPUでブロックFP16をサポートしています[15] [16]
- AMD Versal AI EdgeシリーズGen 2はMX6およびMX9データ型をサポート
参照
- バイナリスケーリング
- 高速フーリエ変換(FFT)
- デジタル信号プロセッサ(DSP)
参考文献
- ^ 「ブロック浮動小数点」。BDTI DSP 辞書。Berkeley Design Technology, Inc. (BDTI)。2018 年 7 月 11 日時点のオリジナルよりアーカイブ。2015年 11 月 1 日閲覧。
- ^ Chhabra, Arun; Iyer, Ramesh (1999 年 12 月)。「TMS320C55x A Block Floating Point Implementation on the TMS320C54x DSP」(PDF) (アプリケーション レポート)。デジタル信号処理ソリューション。Texas Instruments。SPRA610。2018年 7 月 11 日にオリジナルからアーカイブ(PDF) 。2018年 7 月 11 日に取得。
- ^ Elam, David; Iovescu, Cesar (2003 年 9 月)。「TMS320C55x DSP での N ポイント FFT のブロック浮動小数点実装」(PDF) (アプリケーション レポート)。TMS320C5000 ソフトウェア アプリケーション。Texas Instruments。SPRA948。2018年 7 月 11 日にオリジナルからアーカイブ(PDF) 。2015年 11 月 1 日に取得。
- ^ ウィルキンソン、ジェームズ・ハーディ(1963)。代数的プロセスにおける丸め誤差(第1版)。ニュージャージー州エングルウッドクリフス、米国:Prentice-Hall、Inc。ISBN 978-0-486-67999-0MR 0161456 。
- ^ ミュラー、ジャン=ミシェル;ブリセバーレ、ニコラス。デ・ディネシン、フィレンツェ。ジャンヌロ、クロード・ピエール。ルフェーブル、ヴァンサン。メルキオンド、ギョーム。ナタリー・レボル;ステレ、ダミアン。トーレス、セルジュ (2010)。浮動小数点演算ハンドブック(第 1 版)。ビルクホイザー。土井:10.1007/978-0-8176-4705-6。ISBN 978-0-8176-4704-9LCCN 2009939668 。
- ^ Overton, Michael L. (2001). IEEE 浮動小数点演算による数値計算 - 1 つの定理、1 つの経験則、101 の演習を含む(第 1 版). Society for Industrial and Applied Mathematics (SIAM). ISBN 0-89871-482-69-780898-714821-90000。
- ^ ab "Open Compute Project". Open Compute Project . 2024年6月3日閲覧。
- ^ Rouhani, Bita Darvish; Zhao, Ritchie; More, Ankit; Hall, Mathew; Khodamoradi, Alireza; Deng, Summer; Choudhary, Dhruv; Cornea, Marius; Dellinger, Eric (2023-10-19). 「ディープラーニングのためのマイクロスケーリングデータフォーマット」. arXiv : 2310.10537 [cs.LG].
- ^ D'Sa、Rani Borkar、Reynold (2023-10-17)。「標準化による AI インフラストラクチャの進歩の促進」。Microsoft Azure ブログ。2024年 6 月 3 日閲覧。
{{cite web}}: CS1 maint: 複数の名前: 著者リスト (リンク) - ^ Rouhani, Bita; Zhao, Ritchie; Elango, Venmugil; Shafipour, Rasoul; Hall, Mathew; Mesmakhosroshahi, Maral; More, Ankit; Melnick, Levi; Golub, Maximilian (2023-04-12). 「共有マイクロ指数では、少しのシフトで大きな効果が得られます」。arXiv : 2302.08007 [ cs.LG]。
- ^ microsoft/microxcaling、Microsoft、2024-05-29、2024-06-03取得
- ^ Clarke, Peter (2023-08-28). 「チップレットベースの生成AIプラットフォームがLLMのパフォーマンスを向上」. eeNews Europe . 2024-04-23閲覧。
- ^ [SPCL_Bcast] ブロック浮動小数点データ型を使用したチップレットベースの生成推論アーキテクチャ。2024年4月23日取得– www.youtube.com経由。
- ^ ab 「Tenstorrent AI アクセラレータ」(PDF)。
- ^ Bonshor, Gavin. 「AMD、モバイル向けRyzen AI 300シリーズを発表:RDNA 3.5搭載のZen 5、50 TOPSのXDNA2 NPU」www.anandtech.com 。 2024年6月3日閲覧。
- ^ 「AMD、Computex 2024で新型AMD Instinct、Ryzen、EPYCプロセッサを発表し、データセンターとPCにおけるAIと高性能リーダーシップを拡大」Advanced Micro Devices, Inc. 2024-06-02 . 2024-06-03閲覧。
さらに読む
- 「FFT/IFFT ブロック浮動小数点スケーリング」(PDF) (アプリケーション ノート)。米国カリフォルニア州サンノゼ: Altera Corporation。2005年 10 月。404-1.0。2018年 7 月 11 日にオリジナルからアーカイブ(PDF) 。2018年 7 月 11 日に取得。
