Version 11 (modified by nakasato, 14 years ago) (diff) |
---|
DDエミュレーション手法の性能について
いわゆるdouble-doubleエミュレーション手法により、四倍精度演算を利用して、ファインマンループの数値積分を計算した場合の演算性能について。 SWoPP2009での発表から、さらにACAT2010での発表と論文の時点から、CypressアーキテクチャGPUでの演算性能が向上したので結果をまとめる。
SWoPP2009
ACAT2010論文
ACAT2010_Nakasato.pdf : ACAT2010の発表論文 preliminary version
結果
演算性能
N=256 | N=512 | N=1024 | N=2048 | note | |
Core i7 | 63.6 | 63.7 | 63.7 | 2670MHz 1 core | |
GRAPE-DR | 2234 | 3106 | 3840 | 4365 | 380MHz 512 core |
RV770 | 5220 | 5694 | 5977 | 6058 | 850MHz 160 core |
Cypress | 9395 | 12958 | 15497 | 16938 | 850MHz 320 core |
Cypress FMA | 23981 | 27270 | 850MHz 320 core |
性能はMFLOPS。28N3演算として評価した。Cypressでは、FMA命令を使うことでDD乗算が2.5倍ほど高速化するため非常に効率がよい。 1 coreのCPUと比べると400倍以上高速となった。
単位電力あたり
MFLOPS | MFLOPS/W | W (nominal) | |
Core i7 | 63.7 | 2.12 | 30W |
GRAPE-DR | 4365 | 87.3 | 50W |
RV770 | 6058 | 37.9 | 160W |
Cypress FMA | 27270 | 145.1 | 188W |
行列乗算のテスト実装
四倍精度での行列乗算をGPUでテスト的に実装してみた。単精度倍精度の結果を含めてMatrixMultiplyを参照のこと
ソースコード
VARI xx, yy, cnt4; VARJ x30_1, gw30; VARF res; CONST tt, ramda, fme, fmf, s, one; zz = x30_1*cnt4; d = -xx*yy*s-tt*zz*(one-xx-yy-zz)+(xx+yy)*ramda**2 + (one-xx-yy-zz)*(one-xx-yy)*fme**2+zz*(one-xx-yy)*fmf**2; res += gw30/d**2;
Attachments (1)
- ACAT2010_Nakasato.pdf (131.4 KB) - added by nakasato 14 years ago.
Download all attachments as: .zip