2012年8月7日火曜日

GRAPEとMIC


GPUCPUと似た取り組みにGRAPEがある。これは天文計算のために、天文を実際に計算する人が作り、1/rや1/r^3の計算が高速にできるよう作ったaccelaratorである。(計算機は四則演算のうち割り算の計算がもっとも時間がかかる。)彼らはこれで大量に論文を書いた。必要に迫られて使う人が作ったacceleratorが実際に役にたったわけで素晴らしい。

Gaussianのacceleratorを作ろうとした人もいた。しかし、物はできたがclockがあげられず、そうこうしているうちに5年位たってしまい、CPUの速度があがり並列計算が当たり前の世の中になり、速度という唯一の利点がなくなってしまった。GRAPEが成功してこちらが失敗した違いは基本的な開発次期の違いと言っていい。GRAPEはPC98の頃からやっておりbusのハードルが低いときから経験を積めたが、busの速度が上がってしまった時にいきなりやろうとして失敗したわけだ。GPUCPUの場合はもともとbusの専門家が作った物だったからその点は問題なかった。

数年後にintel MICが来るがどうだろうか。CPUと接続しGPUCPUのようにcoprocessorとして動かした場合失敗するだろう。失敗する理由はCPUとMICの転送速度の低さである。しかし、CPUと協調させなくてもMIC同士で協調させて動く場合は成功するかもしれない。思い出されるのはhitachi SR8000である。これはPA-RISCをカスタムしてresigter切り替えとfetchなどでpseudovector機に仕立てたCPUを持っていた。このSR8000上にUNIXが乗っていたがこのUNIX front endは絶望するくらいのろかった。しかし、ここで諦めずに気の遠くなるような時間をかけてコンパイルをし計算をさせるととても高速な計算機に変わった。MICも計算は高速だが、通常処理はのろいという計算機として完成するかもしれない。それにしてもAtom processor位の速度で動くのであれば問題はないだろう。