私は高精度版BLAS, LAPACKの開発を行っているので、高精度演算のハードウェアの存在にも興味を持っている。しかし四倍精度の規格が定められたのもごく最近、つまり2008年754-2008
IEEE Standard for Floating-Point Arithmeticであって、まだハードウェアで四倍精度を実現しているプロセッサはない。このことを調査中である。
IEEE 754Rなどとして呼ばれていた2008年正式版のドラフトにもあったようであるのでハードウェアサポートはあるのではと思っていたが。特に理研次世代スパコンには、CPUとしてはSparc64の拡張が採用されて、また、Sparc64には既にインストラクションレベルで、binary128をサポートしているのだが(リンク先のp.10を参照)、ハードウェア実装ではないようだ。
後藤さんからも既にご指摘いただいたが、
> 命令レベルでのサポートで、実際にはカーネルによるソフトウェアエミュ
> レーションではないかと思います。この処理は極端に性能が悪いので、
> double- doubleによる処理も用意したのではないでしょうか?
ということだった。一応クロスチェックしてみると...
他の調査でも今もbinary128のハードウェア実装をサポートしている
プロセッサはないようである。
Handbook of Floating-Point Arithmeticのp.105によると、
As we write this book, no processors have full hardware support for binary128 format(註:いわゆる四倍精度). Some instruction sets (SPARC, POWER) have instructions operating on binary128 data, but on, current hardware these instruction trap to software emulation.
ということであった。トラップしてとなるとそりゃ時間かかるからdouble-double入れてるのだろう...
IA-64 (Itanium)は、実はサポートさえしてない(1976年にW. Kahan教授がIntelのコンサルとして雇用されていたのを思うと、ショックである)。しかしIEEE 754 2008ではなくなってしまった、80bitの拡張倍精度はサポートするという倒錯ぶり...
やっぱり高価なのかなぁ。30年前って倍精度は高価で、みんなfloatを使っていたことを考えると、またあと10-20年したらむしろ四倍精度が普通になるのかもしれない。
IEEE Standard for Floating-Point Arithmeticであって、まだハードウェアで四倍精度を実現しているプロセッサはない。このことを調査中である。
IEEE 754Rなどとして呼ばれていた2008年正式版のドラフトにもあったようであるのでハードウェアサポートはあるのではと思っていたが。特に理研次世代スパコンには、CPUとしてはSparc64の拡張が採用されて、また、Sparc64には既にインストラクションレベルで、binary128をサポートしているのだが(リンク先のp.10を参照)、ハードウェア実装ではないようだ。
後藤さんからも既にご指摘いただいたが、
> 命令レベルでのサポートで、実際にはカーネルによるソフトウェアエミュ
> レーションではないかと思います。この処理は極端に性能が悪いので、
> double- doubleによる処理も用意したのではないでしょうか?
ということだった。一応クロスチェックしてみると...
他の調査でも今もbinary128のハードウェア実装をサポートしている
プロセッサはないようである。
Handbook of Floating-Point Arithmeticのp.105によると、
As we write this book, no processors have full hardware support for binary128 format(註:いわゆる四倍精度). Some instruction sets (SPARC, POWER) have instructions operating on binary128 data, but on, current hardware these instruction trap to software emulation.
ということであった。トラップしてとなるとそりゃ時間かかるからdouble-double入れてるのだろう...
IA-64 (Itanium)は、実はサポートさえしてない(1976年にW. Kahan教授がIntelのコンサルとして雇用されていたのを思うと、ショックである)。しかしIEEE 754 2008ではなくなってしまった、80bitの拡張倍精度はサポートするという倒錯ぶり...
やっぱり高価なのかなぁ。30年前って倍精度は高価で、みんなfloatを使っていたことを考えると、またあと10-20年したらむしろ四倍精度が普通になるのかもしれない。
サポートはしていませんが、double-double と同様な実装方法で 128bit FP が実現できます。しかもそれなりに速いんだな。
IEEE 754 2008もやっと発効したわけで、そのうちハードが出るのでは。おそらく第一段はIBMのPower系かと睨んでます。