2003 年 20 巻 4 号 p. 355-362
Javaの高速化の研究が盛んになされているが,数値計算の分野では依然Fortranに水をあけられたままである.その理由の1つに,浮動小数点演算の厳密な正確さ(accuracy)が原因で最適化が困難なことがある.とりわけ,融合型積和演算(fused multiply-add (FMA))命令や,再結合(reassociation)を利用できないことが,Javaの性能に大きく影響している.この論文では,浮動小数点演算の正確さに関する投機(floating-point (FP) speculation)を提案する.FP speculationは,既存アーキテクチャの余ったハードウェア資源(浮動小数点レジスタと演算ユニット)を利用して,各最適化対象に対し正確さの異なる2通りの計算(投機計算と検算)を同時に実行することで,Javaの言語仕様を満たしつつ平均実行時間を短縮する.