スポンサーサイト

 --------
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
カテゴリ :スポンサー広告 トラックバック(-) コメント(-)

opi-clst HPLでベンチマーク OpenBLAS版で16.95GFLOPS達成!編

 2016-11-28
opi-clst n14の性能測定はこれにてとりあえず終了です。
Allwinner H3 x14node の性能はいかほどか?
 

忙しい人のための結論

  • opi-clst n14は16.95GFLOPSの性能を持つ
  • OpenBLASを利用する事で4コア使って大幅にスコアが向上した
  • 16.95GFLOPSとは・・
    • 1989年のQCDPAX(14GFLOPS)に勝てる
    • 1993年11月のTOP500で8位に食い込める
    • 現行CPUのPentium A1018、Celeron 1020Mに勝てる




OpenBLAS版HPLで良いスコアの出せるパラメータを探索する


パラメータ探索 その1 (NB,BCASTの傾向)

Nが大きいとスコアに好影響なのはこれまでの結果からわかっているので、まずはNBとBCASTの傾向を確認するべく、下記の方針で探索してみる。
  • N=28800
    • まずはこれまでの結果で優秀な28800を選択
  • NB=8,16,24,32,40,48,64,72,80,88,96,128,160,192,224,256,288,300,320,384
      ガイドラインではNBは~256までが推奨とされていたがネットワークIOが遅いので大きめのNBも探索する
    • これまでの結果からいうとNB=288あたりが良いかもしれない
  • P:Q(major)=2:7(Row-major)
    • これまでの結果からP:Q=2:7が良好
    • ガイドラインでもRow-major推奨
  • BCAST=0,1,2,3,4,5
    • ガイドラインにて全探索推奨のため
    • これまでの結果からBCAST=0が有望かも?


NNBBCAST
012345
2880089.6839.8619.9039.8557.4257.527
1611.8212.1212.1512.1610.5410.46
2412.76129713.2113.0411.7911.69
3214.1714.2014.5714.2212.7912.34
4014.0614.1914.4814.3713.1012.62
4814.1314.3014.9214.6713.2612.80
6414.8214.8515.6615.6613.5013.17
7214.1514.7715.3315.1013.2213.20
8814.1714.5315.2615.1313.6713.17
9614.6814.8515.6715.6813.4913.24
12814.1914.5615.4515.0513.0412.72
16014.1414.3215.3414.9012.9112.82
19214.4214.4615.4515.2313.2013.09
22413.7114.1315.2914.7812.8712.98
25614.0713.9714.8714.8512.6112.79
28813.6413.8115.1214.4112.4512.97
30013.5713.8614.8114.1012.3512.95
32013.5613.7814.5214.4312.2912.87
38412.8213.5314.3214.1712.0012.65

  • NB=96, BCAST=2が好成績
  • NB=96の時15.68GFLOPSという最も良いスコアが出た
  • 次点でNB=64の15.66GFLOPS
    • OpenBLASで計算が高速化されるとネットワークの遅さがさらに際立ち、NBは大きい方が有利と思っていたがそうでもないらしい?
    • 小さめのNBで良いスコアを出せるのであればその分Nを大きくできるはず。(NBが小さいとメモリ使用量も減る ハズ)
  • BCAST=2が他のBCASTよりも良いスコアを出している
    • BCAST=2は2ringである。Longが良いかと思ったがLongとLongModは最も悪いスコアを出している


パラメータ探索 その2 (Nの最大値)

パラメータ探索その1の結果から、NBを小さく設定しても良い結果が得られることが分かった。
NBを小さくするとメモリ使用量が減り、結果的にもうちょっと大きなNを指定可能なはずである。もっと良いスコアを出すべくNの最大値を探す。
  • NB=100
    • Nの限界値を探るために1種類だけ試す
    • 探索その1で得られた最適値付近、かつ、Nを割り切れるような数を選択した
    • Nが大きすぎて異常終了した場合はNB=50までを目安にして多少調整していく
  • N=32000,33000,34000,35000,36000,37000,38000,39000
    • HPLのFAQで示された理論上の最適値(RAMの8割使用)はN=38771なのでこれを目安にして大きなNを探す
    • Nが大きすぎるとHPLが異常終了するので大きすぎはNG.(swapほぼ無しのため?)
    • 異常終了した場合はそれ以上の探索を終了し、NBを小さくして再挑戦。
  • BCAST=2
    • Nの限界値を知るための探索なのでまずは成績の良かった1種類で試す


NBN(time)BCAST=2
10032000(1393s)15.67
33000(1486s)16.12
34000(1610s)16.27
34500(N/A s)FAILED
35000(N/A s)FAILED
5635000(1747s)16.36
35280(N/A s)FAILED
35560(N/A s)FAILED
36000(N/A s)FAILED
5036000(N/A s)FAILED
37000(N/A s)-
38000(N/A s)-
39000(N/A s)-

  • N=35000,34000で好成績
  • N=35000,NB=56の時に16.36GFLOPSという最も良いスコアが出た
  • 次点でN=34000,NB=100の時に16.27GFLOPSというスコアが出た
  • やはりNやNBを大きくしすぎるとHPLが異常終了する
  • NBが50を下回るとスコアが急激に悪化する傾向があるのは探索その1で確認済みのためNBはこれ以上さげられない


パラメータ探索 その3 (好成績周辺をもうちょっと詳しく探す)

  • N=35000,3400
    • 探索その2で良いスコアを出したNを対象とする
  • NB=35,40,50,56,70(N=35000), NB=40,50,68,80,85,100,125,136(N=34000)
    • 40~100付近、かつ、Nの約数で探索を行う
  • BCAST=0,1,2,3,4,5
    • HPLガイドラインにて全探索推奨のため


NNBBCAST
012345
350003515.4315.7916.2816.0713.7513.82
4015.2015.1416.3916.1813.7413.44
5015.3215.8816.0616.1414.4014.36
5615.4215.5616.7015.5614.2413.89
7016.0715.0016.3416.2514.6514.32
340004014.6614.2716.2015.3414.2013.54
5014.5414.9215.5215.6113.4913.36
6815.8215.3215.3416.1913.5514.23
8016.1515.5215.9216.1014.4514.23
8515.1114.9015.8815.8014.4313.73
10015.9215.4416.3516.3014.2714.44
12515.5715.8816.2916.9513.7114.10
13615.3515.8916.6715.7714.1014.23

  • N=34000,NB=125,BCAST=3の時に16.95GFLOPSという最も良いスコアが出た
  • 次点でN=35000,NB=56,BCAST=2の時に16.70GFLOPSというスコアが出た
  • やはりNが大きいと良いスコアが出る
  • 最適なNBはNに依存する




結論 opi-clst n14 は16.95GFLOPSの性能を持つ

opi-clst n14は下記の条件にて16.95GFLOPSの性能を発揮した
  • HPL (OpenBLAS)
  • N=34000
  • NB=125
  • BCAST=3
  • P:Q=2:7


16.95GFLOPSってどんなもん?

  • スーパーコンピュータとして
    opi-clst n14が対向できそうな性能のスーパーコンピュータとしては下記があるらしい。

    1989年 アンリツ QCDPAX 14GFLOPS
    (wikipedia スーパーコンピュータ技術史)

    opi-clst n14をガチのスーパーコンピュータとしてみた場合、今から27年前の性能ということになる。(´・ω・`)

  • TOP500では

    Lists | TOP500 Supercomputer Sites
    https://www.top500.org/lists/1993/11/

    1993年11月のリストでは第8位にXPS/S35が実効性能15.2GFLOPSなので、コイツになら勝てる!
    opi-clst n14をガチのスーパーコンピュータとして観た場合、23年前の世界第8位の性能ということになる。(´・ω・`)

やっぱり20年以上前の性能って感じですね。
でも逆に言えば、たった20年程度で個人のお小遣い資金でこの性能を得る事が出来る様になったんですね。すごい。

  • CPUの処理能力として
    似たような性能のCPUとしては下記があるらしい。

    3rd Generation Intel Core Base Pentium A1018 (16.80GFLOPS)
    3rd Generation Intel Core Base Celeron 1020M (16.80GFLOPS)
    Montevina Core 2 Duo T6500 (16.80GFLOPS)
    1st Generation AMD Fusion A4-3310MX (16.80GFLOPS)
    その他
    (CPU比較表(性能ランキング) - Hardware Navi)


ここで挙げた中で現行品とされているのは先頭二つのPentium A1018とCeleron 1020Mです。
ARMでもたくさん束ねれば、PentiumやCeleronぐらいには勝てるって感じでしょうか。。



これまでHPLでパラメタ振り振りしてスコアを見てきましたが、目標だった10GFLOPS超えは達成されたのでこれにて一旦終了とします。
HPLで高スコアを出すにはNを大きくするのが効果的で、これにはRAMサイズが影響するようですね。SBCではRAMは少なめなのでそこがネックでしょうか。

今後、ノードを増やしてopi-clst n21とかopi-clst n28とかも作ってみたいと考えているので、その時にまたHPLでベンチしてみたいと思います。

 
 
コメント












管理者にだけ表示を許可する
トラックバック
トラックバックURL:
http://wbbwbb.blog83.fc2.com/tb.php/276-a94dc5f1
≪ トップページへこのページの先頭へ  ≫
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。