wiki:DDemulation

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

--

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

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

SWoPP2009

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)

Download all attachments as: .zip