首藤です。

堀之内さん wrote:

> 聞きかじりで申し訳ありませんが、MacのG4かなんか、
> 1GflopsをうたっているCPUがありますが、あれは単精度での話で
> 倍精度ではだいぶ遅いだろうと聞いたことがあります

(以下、嘘が混じる可能性が高いです…)

AMD の Athlon では浮動小数点演算のピーク性能は、
クロック周波数 x 2 flops となります。
例えば Athlon 800 MHz の場合は 1.6 Gflops です。

これはどういうからくりかと言いますと、まず
3D Now! の積和演算命令 (fmac: fused multiply and accumulate) を使います。
1命令で乗算、加算の 2演算です。2クロックあたり 1命令のスループットなので、
1クロックあたり 1演算と数えます。
これと同時に FPU を使ってクロックあたり 1演算を行えば、
合計してクロックあたり 2演算という計算になります。

3D Now! の積和演算命令は「単精度の」浮動小数点数だけを扱えます。
つまり、クロック周波数 x 2 flops というピーク性能は
単精度数の演算でのみ達成できるということになります。

G4 (PowerPC) でもこれと同じような数え方で、
500 MHz の場合 1 Gflops ということになるのだと思います。
PowerPC は積和演算命令を持ってますし。

> (単精度計算専用のアクセラレーターを使っているのだとか)。

というわけで、積和演算命令が単精度数のみを扱えるから、に一票。
PowerPC の資料が手もとにないので確実なことは言えないんですが…

SHUDO Kazuyuki/首藤一幸   私をたばねないで あらせいとうの花のように
  shudoh / muraoka.info.waseda.ac.jp