今どき 浮動小数点演算ワールド

◆ 計算力時代到来…スパコン技術研究コーナ ◆
物理学実験用の小型スパコンの世界
今どき
浮動小数点演算ワールド
ご購入はこちら
中里 直人,台坂 博,石川 正
実験のイメージ
e-
e+
電子
陽電子
いろいろ起きる反応(図は
ファインマン・ダイヤグラムという)
クォーク
陽電子
計算するもの
(多次元の数値積分など)
2
A (1+cos
θ)
0
電子
クォーク
近似
(ツリー図形)
+
e
-
e
+
衝突
クォーク
(素粒子)
電子じゃない粒子が
発生したりするので クォーク
調べる
(素粒子)
クォーク
陽電子
電子
A1
1
2
f 1(cosθ)
クォーク
次の近似に必要なもの
(1ループ図形)
+
陽電子
電子
クォーク
A2
1
3
g1(cosθ)
クォーク
さらに次の近似に必要なもの
(2ループ図形)
図 1 素粒子の性質を詳細に調べる実験では多次元の数値積分を高速に行う必要がある➡専用浮動小数点演算が行える小型スパコンがほしい
図の真ん中には,衝突実験で起こりえる反応を示すファインマン・ダイヤグラム(Feynman Diagram)の一部を示す.電子と陽電子が衝突すると,衝突エ
ネルギーがクォーク(Quark)と呼ばれる別の素粒子へ変化する.この過程にはさまざまな場合があり,それぞれに応じて理論で決定されるファインマン・
ダイヤグラムがあり,それらを数値計算で調べる必要がある
筆者らは,素粒子の性質を詳細に調べるための実験
で,多次元の数値積分を高速に行う必要があります
(図 1).本稿では,実験解析用に作った小型 FPGA ス
パコンを紹介します.
浮動小数点計算機の世界
● 標準浮動小数点演算は大抵 CPU/GPU を使う
数値計算を行うには,通常は浮動小数点演算を利用
します.浮動小数点演算では,図 2 に示すような数値
フォーマットを利用します.
現在,CPU や GPU に実装されている浮動小数点演
算器では,32 ビットの単精度フォーマットと 64 ビッ
トの倍精度フォーマットだけが採用されています.そ
れぞれ,指数部(Ne)と仮数部(Nm)のサイズは 8/23
ビット,11/52 ビットと規定されています(IEEE 754
規格)
.
158
● 最近は FPGA にも FPU が入ってきている
これまで FPGA の浮動小数点演算性能はあまり高
くありませんでした.CPU などとは異なり,これま
での FPGA には整数の加算 / 乗算を専用に行う DSP
(Digital Signal Processing)ブロックしか実装されて
いなかったためです.浮動小数点演算専用の演算ブ
ロックは搭載されていませんでした.
最近になって,その状況は変わりつつあります.最
新の FPGA には浮動小数点演算ブロックが搭載され
はじめました.それを利用することで,CPU や GPU
を越える高性能な数値計算アプリケーションを実現す
ることが可能になりつつあります(1).
● 特別なリアルタイム浮動小数点演算を行いた
い場合は FPGA
アプリケーションの要求に専用に FPGA に演算器
を作り込むことで高性能な浮動小数点演算を実現する
ことも可能です.それは,非標準な浮動小数点演算を
2017 年 4 月号