yas@is.tsukuba.ac.jp (Yasushi Shinjo) writes:

> 新城@筑波大学情報です。こんにちは。
> 
> おもしろそうな話ですね。普通の数値計算だったら、SACSIS とい
> う学会で見た気がします。他のもあるのかもしれません。
> 
> http://www.hpcc.jp/sacsis/2006/program.html.ja
> CPUとGPUを用いた並列GEMM演算の提案と実装
> 大島 聡史, 吉瀬 謙二, 片桐 孝洋, 弓場 敏嗣(電通大) 
> 
> プログラムを見ただけで、論文読んだり、発表聞いたりしたわけで
> はないのですけど。

お、ちょっと読んでみます。
 
> > 120MHzのPentiumは10サイクルで32ビット乗算を行え、1024bit RSAで
> > 10Blocks/secで処理できます。
> > 
> > GeForce 8800 GTXでは 700倍の速さで実行できそうです。
> > (ALUの数が128でクロックが675MHzなので、128*675/120=720ってことですね。)
> > ALUの単位計算速度が考えてられなかったり演算幅32bitを使う必要性なんかも
> > ちょっと疑問ですが。
> 
> そうですね。結局の所、Pentium 120MHz の 700 倍で、7000
> Bock/sec という予想ですか。

たぶん、本当はそういう単純な話にはならない(メモリ転送速度とか)
とは、思うんですが、GPUだとCPUよりもメモリ周りは高速な気もするので
どうなるんだろう。
 
> > ちなみに、2.4GHz Core2 Quad プロセッサは6000Blocks/secだそうです。
> 
> あんまり変らない。ああでも、Core 2 Quad よりも、GPU の方がだ
> いぶ安いか。

8800 GTXは相当高いですけど(w
どちらかというと、最終的なパフォーマンスは処理能力よりやり取りするバスの
幅がダイレクトに利いてくるような気がします。
 
> > 個人的には、最近の暗号ソフトウェア実装でホットなのは、並列実装による
> > 共通鍵ブロック暗号の高速化です。長いレジスタをもつアーキテクチャのほうが
> > おいしいのですが、GPUでももしかしたら早くなるのかなぁ。
> 
> 128 ビットのブロックだと 128 ビットのレジスタがいいという意
> 味ですか。64ビットは、今はわりと普通に使えるのですが、64ビッ
> トだと倍出るという話になっていますか。

いえ、ビットスライス実装といって128個のブロック暗号を一気に処理してやろうと
いう話です。演算を分割するので計算回数は増えるのですが、処理ブロックが多いと
そちらの倍数で利いてくるので早くなります。

中嶋 純子, 松井 充, “Core2上でのブロック暗号アルゴリズムの実装性能評価について,” 
信学技報, vol. 106, no. 597, ISEC2006-158, pp. 105-110, 2007年3月.
とか。IEICEのISEC研究会なんですが、合同研究会だったのでITとかWBSにも載ってます。

 
> レジスタの幅の短さをレジスタ数でカバーできますか? メモリ・
> アクセスなしに計算できると効きそうだけど、メモリ・アクセス入
> ると途端に遅くなりそうな気もする。x86 のレジスタ数の少なさは
> 辛いかも。

今まで、Alphaとかに比べるとやっぱり効率はかなり悪かったみたいです。
ただ、いまどきは、XMMレジスタとか使うみたいで、ちょっとはマシなのかな。
x64だともうちょっとレジスタは多いんですよね。
-- 
I LOVE SNOOPY!  でつ
Yoshitaka Ikeda mailto:ikeda@4bn.ne.jp
My Honeypot: honey@4bn.ne.jp  <-don't send this address