中田真秀(なかたまほ)のブログ

研究について、日常について、その他。

いわゆる四倍精度(binary128)は今ハードウェアサポートはないそうだ

2010-04-27 08:52:25 | 日記
私は高精度版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年したらむしろ四倍精度が普通になるのかもしれない。






最新の画像もっと見る

4 コメント

コメント日が  古い順  |   新しい順
Unknown (後藤)
2010-04-27 13:40:16
> IA-64 (Itanium)は、実はサポートさえしてない

サポートはしていませんが、double-double と同様な実装方法で 128bit FP が実現できます。しかもそれなりに速いんだな。
返信する
Unknown (中田)
2010-04-27 14:03:02
80bit FPUを用いてでしたっけ。あれにはビックリで、しかもそれなりに速いにもう1回ビックリです。
返信する
Unknown (藤澤)
2010-04-27 18:07:37
80 bit 拡張倍精度では微妙に精度が足りません。中途半端なサポートという感じがします。個人的には10年も待てませんが、皆さんまだ倍精度でもいいんですかね?
返信する
Unknown (中田)
2010-04-27 18:52:16
後藤さんのおっしゃる通り、exponentさえ確保できればハードウェアサポートは必要ないとさえ言えます。

IEEE 754 2008もやっと発効したわけで、そのうちハードが出るのでは。おそらく第一段はIBMのPower系かと睨んでます。

返信する

コメントを投稿