各種計算機アプリケーション性能比較 目次. はじめに. 行列積計算.QDR 積計算 4.N 体問題計算 5. 多次元積分計算 5. 次元積分計算 5. 次元積分計算 5. 4 次元積分計算 5.4 5 次元積分計算 5.5 6 次元積分計算 平成 6 年度第 四半期
. はじめに 今までと少し性質の異なるグラフィックボードが使用できる様になったので従来のアプリケーションで性能比較を実施しました 主に使用した計算機は以下のものです ()SR6/M プロセッサ :power7 周波数 :.8GHz ノード当たり CPU コア数 ( 物理的 ),64( 論理的 ) 理論最大性能 98.48 GFLOPs メモリ容量 56GB メモリアーキテクチャー NUMA,(6 論理コア単位で flat) SIMD(Single Instruction Multiple Data) をサポートする VSX 機構付き L キャッシュ On-Chip MB/8 コア演算器 / 物理コア乗加算器 4 つ
()GPGPU GPU カード型番 :ATI RadeonHD587 メモリ : GDDR5, GB, 5.6 GB/s ホストインタフェース : PCI Epress. 6stream processing unit: 個 ( 演算プロセッサ ) 動作周波数 : 85 MHz ピーク性能 ( 単精度 ): 544 Gflops (=85MHz) ピーク性能 ( 倍精度 ): 88 Gflops () グラフィックボード HOST E5 67.6GHz cpu 8core キャシュ MB.6GHz 88 66.4GFLOPs cpu cpu.8gflops Xeon Phi5P.5GHz 6コア,4スレッド/core.5GHz644.88GFLOPs
行列積計算 比較は SR6 ノード (core,64smp),es-67 6smp, Phi5P 4core で実施しています 最も多くのケースを実施したのは行列サイズ N=4,N=48 の 回実行です C は,ES-67,Phi5P で倍精度, 拡張倍精度, 拡張倍精度 + 拡張倍精度のケースを行っています 名称はそれぞれ Double,edouble,ddedouble としています FORTRAN は SR6,ES-67,Phi5P で倍精度 multd,4 倍精度 (ieee754-8 データ形式 )multq,dd 形式 4 倍精度 ddmultd,dd 形式の 6 倍精度,8 倍精度, 倍精度, それぞれ mult6,mult8,mult です.SR6 では特に multd,multq は実施していません また比較という事で, テストプログラムは定義式どうりのコーデイングでアンローリング, キャシュチューニング等は実施していません 演算量は以下の様になっています 演算量 (GFLOP) 一覧 プログラム N=4 N=48 multd 8 ddmultd 47 76 mult6 849 4789 mult8 866 98 mult 8657 6965
行列サイズ N=4 の結果は以下の様になっています 行列積 N=4, 回実行の性能比較 実行時間 ( 秒 ) プログラム SR6 phi5p E5-67 core 64smp 4smp 6smp multd.84.4 ddmultd 7.6.75.95 5.68 multq 54.77 6.97 double.94.4 edouble 5.75.66 ddedouble 7.8 55.966 mult6.74 4.789.97 6.44 mult8 7.599 4.575.496 56.5 mult 79.776 5.658 86.748.9 ()dd 形式 4 倍精度は phi5p は高速 ()dd 形式 6 倍精度,8 倍精度, 倍精度は SR6 core と phi5p の性能が同等 ()C とソフトウエアサポートルーチンは E5-67 が高速
行列サイズ N=48 の結果は以下の様になっています 行列積 N=48, 回実行の性能比較 実行時間 ( 秒 ) プログラム SR6 phi5p E5-67 core 64smp 4smp 6smp multd.445.4 ddmultd 55.4 9.658. 44.669 multq 469.77 9.5 double.78.96 edouble.46.76 ddedouble 56.87 9.585 mult6 64.54 9.44 59.44 5.8 mult8 89.64 96.6 85.54 46.64 mult 65.88 46.9 688.87 686.64 性能比較の傾向は N=4 の場合と全く同じ
各種行列積計算の性能は以下の様になっています 各種行列積計算性能比較表 実行時間一覧表 ( 秒 ) N CPU double edouble ddedouble multd ddmultd 4 E5-67.4.66 55.966.4 5.68 Phi5P.94 5.75 7.8.84.95 48 E5-67.96.76 9.585.4 44.669 Phi5P.78.46 56.87.445. 7 E5-67 7.64 7.78 485.78 9. 5.859 Phi5P.4.56 948.54.5 5.65 96 E5-67 4.647 4.89 5.46 45. 57.64 Phi5P 5.9 5.48 84.65 5. 6.46 E5-67 79.576 69.7 89.84 88. 7.564 Phi5P 56.584 564.9 464.6 57.5 4.7 () 倍精度では c,fortran とも N=7 で Phi5 P の性能が E5-67 を上回ります () 拡張倍精度はすべて E5-67 の性能が上回っています ()SR6 の 4 倍精度では,Phi5P が非常に効力を発揮する事がわかります
これに関連した計算は以下の様になっています 4 倍精度行列積計算 N=56 回の実行時間 SR6 single ジョブ 9.68 msec ieeequad 874.767 msec 557 double+double 457.59 msec etend double +etend double 74.46 msec e54 gcc double+double 65.9 msec etend double +etend double 759.77 msec e54 icc double+double 9.57 msec etend double +etend double 6.66 msec Phi5P 4smp が SR6 ノードより高速という結果と合わせ Phi5P が有効な事がわかります
正しく計算するには仮数部 ビット以上必要で, 演算順序も厳密に保証する必要がある rump s の例題の結果です rump's 例題,, 回実行 実行時間 ( 秒 ) 精度 E5-67 Phi5P 6smp 4core 拡張倍精度 *.64467 6.985987 6 倍精度.855 49.887 8 倍精度 47.869 58.877 E5-67 拡張倍精度 + 拡張倍精度が非常に高速 dd 形式の 4 倍精度では指数部の制限の影響を受けるプログラムには, E5-67 で拡張倍精度 + 拡張倍精度を使用するのが非常に有効です
.QDR 積計算 Q( 行列 ),D( ベクトル),R( 行列 ) C i, j (DR) n Q k k, j 量子モンテカルロ法による物性スペクトル計 算で4倍精度演算で精度の良い結果が得ら れなかった事もあり, 演算量の主要部分を占め る6,8,倍精度演算のQDR 積計算で性能を 比較しました 演算量は以下の様になって います i,k D k (DR) R k, j k, j (j,..., n) QDR 積計算 回実行の演算量 (GFLOP) 精度 n=4 n=48 6 倍精度 878 6 8 倍精度 5969 47755 倍精度 48
QDR 積計算実行時間 ( 秒 ) 一覧表 N=4, 回実行 CPU SR6 Phi5P E5-67 精度 core 64smp 4core 6smp 6 倍精度 4.68.655 58.79 48.7 8 倍精度 66.474 4.46 85.4 9.67 倍精度.57 7.498 7.588 9.59 N=48, 回実行 CPU SR6 Phi5P E5-67 精度 core 64smp 4core 6smp 6 倍精度 59.77 7.97 475.8 8.79 8 倍精度 499.58.659 686.868 745.48 倍精度 84.99 57.847 5.565 7.5 SR6 64smp(smt=on) の効果が大 Phi5P と E5-67 では 6 倍精度と 8 倍精度での性能が逆転していますま これは再内側 DO ループ内の演算量が多くなると Phi5P が効果を発揮する事によります
4. N 体問題計算 専用計算機,GPU 等で非常に性能のでる N 体問題で性能を比較しました N体問題 N, タイムステップ 演算量は約 5 GFLOP Phi5P 実行時間一覧表 ( 秒 ) core 数 倍精度 拡張倍精度 5 7.7 86.5688 5 5.5779 44.79.854595 9.578.88877 5.459 4.78867.4664 E5-67 smp 数 倍精度 拡張倍精度 5.97 4.7694 6.9899.594 6 6.455 6.66 HD588 gpu 面 倍精度 一面 4.55599 一面.989969 二面.94664 Phi5P では倍精度は非常に高速です 倍精度と拡張倍精度の性能比は Phi5P は大きく,E5-67 は小さいという差があります HD588 は一面 6core, 二面 core のため, 粒子数 ではあまり性能は出ていません
HD588 で演算量が一定になる様に粒子数 N を変化させて測定しました N 体問題粒子数 N, タイムステップ数 N M を一定になる様にしま 演算量は約 5 GFLOP HD 588 の測定結果 M した 実行時間一覧表 ( 秒 ) N=, タイムステップ gpu 面 倍精度 一面 4.55599 一面.989969 二面.94664 N=4, タイムステップ 65 gpu 面 倍精度 一面 4.656 一面 4.685 二面 5.4678 N=, タイムステップ gpu 面 倍精度 一面.747958 一面.7467 二面.9969 粒子数 N が 以上で性能が出る様になっている事がわかります
5. 多次元積分計算で実施しています 次元積分は 5.5,,m 5 s y) ( m y) ( ys D dyd D I vt ra inf () で実施しています 次元積分は 5 e f f e y.5 m 5,,m 5 t, 5 s y)m z( y)m z)( y ( y) ( z) y tz( ys D dzdyd D I bo ra inf () 演算量は従来との比較よりソース上からカウントしています
dudzdyd DC I ()4 y z y 次元積分計算 C M se D m u z y um zm ym m M y u z zu y u y z u z y E u z y u z y u z y C 5 4 ) ( ) ( ) ( ) )( )( ( ) )( ( ) )( ( にしています はとしてサイズループにしたものを重ループ併合してループのものを重にして積分区間をで変数変換により 576 N case DO case, DO 4 [,], 4 としています の内容ででループを併合つのループ内側ループを併合つのループを外側ループ重にしてを変数変換で積分区間次元積分 case, case D, N, ) DO ( DO ) DO ( DO DO,5 [,] d d d d d D I (4)5 5 5 4 6 4 5 4
5 次元 case D =-***-***-***4-***6-***-** &-.d***4 &-**5-**6-***-.d***4-**5-**6 &-*4** &-*4*5-.d**4*6-*5*6-*6**- ***4-***5 &-**4 &-**5-*4**-.d**4*5-*4*6-*5**-*5*6 &-** *4 &-***5-*4**-.d**4*5-*4*6-*5**-*5*6 &-4***5 &-4***6-4*5**-.d*4*5*6-4*6**-5***6-5*6** 5 次元 case D=-**-**4-**5-**6-**-**.-**4.-.d***5-.d***6-**4-**5-**6.-*4*4-.d**4*5.-.d**4*6-*5*5-*5*6- *6*6-**.-**5-**6.-**-**4-**5-.d***6-*4*5.-*4*6-*5*5-*5*6-*6*6-**4-**5.-**6-*4*4-.d**4*5-.d**4*6-*5*5.-*5*6-*6*6-4*4*5-4*4*6-4*5*5-4*5*6. -4*6*6
(5)6次元積分 変数変換により積分区間を[,] にして 重 DOループ をひとまとめにした重 DOループを作成 サイズは N. 以下のつの問題を選択しています 6 次元 case 6 I 4 5 6 5 5 6 7 C D d 7 d 6 d 5 d d d C=*4+*5+*6+*4+*5+*6+*4+*5+ *6+4*5 & + 4*6+4*7+5*7+6*7 D =- (**+**+**+7**+*+*+*7+*+ *7+*7) &*(4+5+6) &-4***(+++5+X6+7) &-(5**+6**+5*6)*(+++4+7) &-.*4*(*5+6*7) &-.*((++)*4*6+(++7)*4*5)
6 次元 case I 5 7 6 4 7 7 6 C D d 4 d 6 d 7 d d d C=(+++4)*(4+5+6+7)-4*4 cc=*m+*m+*m+4*m4+5*m5+6*m6+7*m7 D=-c*cc.+s*(**(4+5+6+7)+5*6*(+++4)+*4*6+*4*5).+t**4*7.+p*(**(4+5+6+7)+*4*5).+p*(**(4+5+6+7)+*4*6).+p*(5*7*(+++4)+*4*7).+p4*(6*7*(+++4)+*4*7) 6 次元 case I 7 4 5 6 4 4 5 C D d 6 d 5 d 4 d d d c=(+++4+5)*(+++6+7)-(++)*(++) ; cc=*m+*m+*m+4*m4+5*m5+6*m6+7*m7 ; d=-c*cc +s*(**(4+5+6+7)+*5*6+*4*7-*4*6) +t**(-4*6+5*7) +p*(**(4+5+6+7)+*4*(6+7)) +p*(**(4+5+6+7)+*6*(4+5)) +p*(4*5*(+++6+7)+4*6*(+)+*5*7) +p4*(6*7*(+++4+5)+4*6*(+)+*5*7) ;
5. 次元積分計算 GFLOPs 4. 次元積分 (VTX) 性能測定結果 ( 演算量はソース上から算出 ) 5.. 5.. 5. HD588 E5-67 Phi5P. 5.. N サイズ
5. 次元積分計算 GFLOPs 6. 次元積分 (BOX) 性能測定結果 ( 演算量はソース上から算出 ) 5. 4.. HD588 E5-67 Phi5P... 4 86445 サイズ N
5. 4 次元積分計算 SR6,E5-67,Phi5P の比較の結果は以下の様になっています 4 次元積分実行時間一覧表 ( 秒 ) case 精度 SR6 E5-67 Phi5P 演算量 core 64smp ((GFLOP) case 倍精度.6989.6455 7.685 7.865 976 case 拡張倍精度 8.65758 57.5765 case 倍精度 4.68.9569 6.95874 7.8574 4568 case 拡張倍精度 8.6557 56.6988 case 4 倍精度 458.965 976.665 () 多重 DO ループの一重化は E5-67, Phi5P は若干速くなりますが SR6 は ~ 倍程度遅くなっています ()ieee754-8 形式の 4 倍精度は非常に遅くなっています
サイズを大きくした場合と HD588 との比較は以下の様になっています 4 次元積分計算詳細テスト結果 case N= 実行時間 ( 秒 ) 精度 E5-67 Phi5P 6smp 4core 倍精度 56.766 87.7787 拡張倍精度 47.47488 468.5599 case 実行時間 ( 秒 ) 精度 HD588 Phi5P 面 面 9core 4core 倍精度 7.99.8476 9.556 7.8574 拡張倍精度.4544 56.6988 4 倍精度 45.6999.7949 Phi5P は倍精度は高速で E5-67 は拡張倍精度が高速 HD588 の 4 倍精度は dd 形式のため高速です
5.4 5 次元積分計算 5 次元積分実行結果一覧表 演算量 (N=) case GFLOP case 54 case 68 実行時間一覧表 ( 秒 ) CPU SR6 E5-67 Phi5P HD588 case core 64smp c fortran c fortran 面 case 8.44 5.46 7.756 7.6 7.474 7.665 5.868 case 9.84 6.7 8.75 7.9 7.4 7.46 5.98 演算量が約 5GFLOP 程度だと SR6 と Phi5P,HD588 の性能はほぼ等しい. これは 4 次元積分でも同様でした
5.5 6 次元積分計算 6 次元積分実行結果一覧表 演算量 (N=) case GFLOP case 64 case 48 case 896 実行時間一覧表 ( 秒 ) cpu SR6 E5-67 Phi5P HD588 case core 64smp c fortran c fortran 二面 case.744 48.55 85.5 97.67 96.56 94.48 589.47 case 99.49 56.8 96.47 77.488 95.74 959. 568.48 case.99 48.7 467.79 47. 888.4 6.9 66.8 演算量がこれだけ大きくなると,Phi5P, HD588 の性能が SR6 を大きく上回ります また,Phi5P,HD588 のカタログ性能はほぼ同じですが HD588 の性能が Phi5P の倍近く良くなっています これは Phi5P は 6CPU, 4core という構成によるものと考えられます