GRAPE-DRネタ続き

GRAPE-DRにおけるLinpackの実行をどうやっているのか開示がないので、
公開情報からボチボチ見てみる。


「専用機の性能を持つ汎用超並列計算機へ」
http://www8.cao.go.jp/cstp/project/super/haihu02/siryo3-sanko.pdf

「SIMASD型計算機」ってのが書かれているが、どういうものかは書いていないなあ。
Single Instructions Multiple Aなんとか Single Data???

Linpackにおいて GRAPE-DR(SINGチップ)は DGEMMだけやってるという記述があるね。

LINPACKの実行形態
– Linpack の本体はサーバで実行。DGEMMをGRAPE-DRプロセッ
サで実行
– DGEMMは、サーバメモリ⇒ (ネットワーク) ⇒ サーバメモリ
⇒ 外部メモリ⇒ チップ内共有メモリ⇒ 演算器の順で階層的
に使う
– F.Gustavsonのデータ分散法の利用を仮定

http://grape.astron.s.u-tokyo.ac.jp/~makino/articles/future_sc/note013.htmlを見ると、SINGチップについて書かれていて、

SING チップの特徴は、倍精度演算換算でも 256+256 個と極めて沢山の演算器を集積した、ということです。このために、 GPU 並の低いクロックでありながら倍精度で現在のマイクロプロセッサを 1 桁以上上回るピーク性能を実現しています(というか、する予定です)。

このように多数のプロセッサを集積するためには、1つのプロセッサが非常に小規模なものでなければなりません。 SIMD 構成は、各プロセッサから命令を読んで解釈する部分を完全に無くし、演算器とレジスタ等のメモリユニットだけにできるので非常に有利です。 SING では 1つのプロセッサは


浮動小数点乗算器
浮動小数点加減算器
整数 ALU
3ポート 32ワードレジスタファイル
1ポート 256ワードメモリ
2ポート 4ワード補助レジスタ

これだけでできています。

ううむ、かなりシンプル。整数ALU入っているのが、GRAPE-6以前との違いなのかな。