wiki:DDemulation

Version 8 (modified by nakasato, 14 years ago) (diff)

--

DDエミュレーション手法の性能について

いわゆるdouble-doubleエミュレーション手法により、四倍精度演算を利用して、ファインマンループの数値積分を計算した場合の演算性能について。 ACAT2010での発表と論文の時点から、CypressアーキテクチャGPUでの演算性能がさらに向上したので、結果をまとめる。

ソースコード

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;

結果

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倍以上高速となった。

行列乗算のテスト実装

四倍精度での行列乗算をGPUでテスト的に実装してみた。単精度倍精度の結果を含めてMatrixMultiplyを参照のこと

Attachments (1)

Download all attachments as: .zip