答えが違う

先日ある専門家の方と立ち話をする機会があった。
お互いハイパフォーマンス系の使い方をするので話題が合って
ソニーのCellやNVIDIAのCUDAの話をしてた。
簡単な結論は一致した。
新しい技術は興味があるし十分なチューニングをすればパフォーマンスが期待できるが
そのための時間やコストを考えるとなかなか割に合わない。
特化させた分つぶしが利かないし、汎用CPUが半年あれば追いついてくる可能性は高いということ。
 
Intelコンパイラの話もした。
SSE2くらいの世代だったと思う。
SSE2に最適化コンパイルした同一バイナリがPentium4Pentium Mで答えが違うことがあるという話だ。
つまりSSE2のハードウェア実装が異なるんだろうという結論になってる。
 
お返しに面白い話を聞いた。
CUDAである。SSEのときもオーバーフローなどのエラー訂正が付いてないってのが
結構数値計算では怖いのだがCUDAはもっと危険らしい。
ビデオメモリってエラー訂正ビットが付いてない上、そのエラーをさほど気にしないという風潮があって結構答えが違うらしい。
まぁ、低価格で高性能を出してビデオ画像に時々ドット単位で不具合があっても
そちらは無視されるというのは感覚的に理解できる。
しかし、CUDAで計算して答えが違うのは流石に困るよなぁ。
 
まぁ、使ってどの程度かによりますけどね。