More Related Content
Similar to 低遅延10Gb EthernetによるGPUクラスタの構築と性能向上手法について (20)
More from Atsushi Suzuki (7)
低遅延10Gb EthernetによるGPUクラスタの構築と性能向上手法について
- 2. なぜ 10Gb Ethernet なのか?
InfiniBand ではなく?
• MPI通信の基本性能はInfiniBandが優勢
• QDRで3〜~3.5GB/s, FDRで5.0〜~5.4GB/s
• 10GbE 2ポートNICを使った場合で合計 2.5GB/s
• 広範な10GbEインフラストラクチャーとの相互接続
• NAS/SAN・VDI・GbE/WiFi・Campus, Metro〜~Global WAN
• HFT等で発達しているFPGA NIC技術
• SoC化の発達 (ARM Cortex / intel Atom)
• InfiniBandに匹敵する遅延性能・メッセージレートを達成
- 5. SolarflareのFPGA NIC
Application Onload Engine と FDK
5
AOE ユニバーシティプ
ログラム
• HW+開発キットを実
効的な教育向けディス
カウント価格で提供
• 世界中の大学・教育
研究機関に所属する
教職員・学生を対象
• OpenOnload® 対応
OpenOnload対応のASIC NICとのハイブリッドで,特定のパケットに対してFPGAアプリの動作が可能
- 6. 10GbE / 40GbE ポートフォリオ
Gnodal GSシリーズスイッチ
GS7200 GS4008 GS0018
72×10GbE SFP+ 40×10GbE SFP+
8×40GbE QSFP
18×40GbE QSFP
ポート
数
ホッ
プ数
Gnodal
10GbE
Gnodal
40GbE
72 1 150ns 150ns
inter
switch
+1 66ns 66ns
720 * 3 282ns 282ns
6480 * 5 414ns 414ns
スイッチ間66nsの遅延と, マルチパス対応トポロジー,64Kノードまでのスケーラビリティ
- 8. 10GbE 関連製品ポートフォリオ
BOSTON Viridis
• Boston Viridis – 電⼒力力効率率率に⾮非常に優れたサーバーの誕⽣生
– Calxeda EnergyCore プロセッサーを採⽤用
• Cortex A9 1.1〜~1.4GHz 4コア の EnergyCore ECX-‐‑‒1000
• 1枚のサーバーモジュールに4基のEnergyCoreプロセッサを搭載
• 2Uサイズのサーバー筐体に48基のEnergyCoreプロセッサを集約 – 192コア
– 各EnergyCore SoCには4GBまでのDRAMを接続可能
– 各々のSoCが10GbEスイッチを内蔵し
メッシュ型のトポロジーをシャーシ内に構成
- 14. GPU Direct の現状
CPU Memory
For
CUDAmemcpy
CPU Memory
For
CUDAmemcpy
InfiniBand Fabric
IB転送が可能に
GPU-
Direct
P2P
※同⼀一
IOH内
のみ
- 16. Intel® QDR-80 ソリューションで
GPU・InfiniBand・NUMAのAffinity問題を⼀一気に解決
QPI 2
QPI 1
• Xeon E5-2600より、PCIeコントローラーがオンチップ化。
• 2ソケットサーバーではリモートソケット参照が発生。(遅延 1.16us → 1.71us)
• QDR-80により、CPUソケット数分のIBを用意すれば、リモートソケット参照は回避可能
• 遅延およびInterruptハンドリング性能を劇的に改善
• Intel® Data Direct I/O (DDIO)のメリットを享受
• Intel InfiniBandスタックは多重ピンロック問題の回避が容易(Send/Recv)
MPI buffer
For
CUDAmemcpy
MPI buffer
For
CUDAmemcpy
- 18. Solarflare 10GbE NIC と OpenOnload で
QDR-80により近い構成を構築
QPI 2
QPI 1
• Xeon E5 モデルのサーバーを採用
• 1µs前後の遅延が生じるQPI経由の通信を極力回避
• CPUソケットからローカルなSolarflare NICの特定ポートを選択する
• たとえばopenmpiではrankfileにより各rankが動作するCPUコアを指定できるので
自らのrank番号により使用すべきIPアドレスを特定できる
MPI buffer
For
CUDAmemcpy
MPI buffer
For
CUDAmemcpy
- 19. GPUによる⾏行行列列演算
• 問題を単純化し、32k×32kの⼆二次元⾏行行列列の積の演算 M×N=Pを⾏行行う
• M, N⾏行行列列を32×32のタイルに分割し、タイル対ごとに積を求め、結果を⾜足し
合わせてPのタイルとする。
– M⾏行行列列の縦y番⽬目横i番⽬目と、N⾏行行列列の縦i番⽬目横x番⽬目の積を求める
– iを1〜~kの範囲で繰り返し、各々で求まるPxy(i)を⾜足し合わせる
1blockが受け持
つ部分行列
(タイル)
• M, N⾏行行列列の必要な部分をGPUのGlobal Memoryに転送
• 各blockは担当するタイルをShared memoryに転送し
、積を求め、結果をGlobal memoryにストアする
• Global memory上の結果のタイルを⾜足し合わせる
- 23. OpenMPIのPTLとしてTCPを指定し
OpenOnloadに適したチューニングを⾏行行う
OpenMPIの起動オプションとして以下のようにTCPを指定する
% onload –profile=latency mpirun --mca btl tcp,self …
TCP使用時の代表的なチューニングパラメータ
MCA btl: parameter "btl_tcp_free_list_num" (current value: "8")
MCA btl: parameter "btl_tcp_free_list_max" (current value: "-1")
MCA btl: parameter "btl_tcp_free_list_inc" (current value: "32")
MCA btl: parameter "btl_tcp_sndbuf" (current value: "131072")
MCA btl: parameter "btl_tcp_rcvbuf" (current value: "131072")
MCA btl: parameter "btl_tcp_endpoint_cache" (current value: "30720")
MCA btl: parameter "btl_tcp_exclusivity" (current value: "0")
MCA btl: parameter "btl_tcp_eager_limit" (current value: "65536")
MCA btl: parameter "btl_tcp_min_send_size" (current value: "65536")
MCA btl: parameter "btl_tcp_max_send_size" (current value: "131072")
MCA btl: parameter "btl_tcp_flags" (current value: "122“)
MCA btl: parameter "btl_tcp_priority" (current value: "0")
- 25. InfiniBandとの⽐比較 – レイテンシー
25
message size
(bytes)
Solarflare
port1
Solarflare
port2
Mellanox IB
0
4.21
4.19
1.22
1
4.35
4.34
1.15
2
4.35
4.35
1.15
4
4.34
4.34
1.15
8
4.35
4.34
1.18
16
4.35
4.35
1.18
32
4.39
4.39
1.21
64
4.45
4.45
1.3
128
4.62
4.62
1.96
256
4.92
4.94
2.12
512
5.53
5.6
2.42
1024
6.6
6.66
3.03
2048
8.16
8.26
4.15
4096
10.01
10.28
5.1
8192
14.28
14.6
7.19
16384
22.49
28.39
9.95
32768
40.45
49.09
15.03
65536
82.11
104.5
25.31
131072
96.01
123.38
45.73
262144
192.61
222.62
86.54
524288
418.5
452.02
168.04
1048576
880.6
949.9
331.42
2097152
2037.82
2048.71
657.8
4194304
4068.6
3859.8
1311.4
1
10
100
1000
10000
Solarflare
port1
Solarflare
port2
Mellanox IB
レイテンシーにおいてはInfiniBandの性能が非常に高い
- 26. InfiniBandとの⽐比較 – 帯域 26
message size
(bytes)
Solarflare
port1
Solarflare
port2
Mellanox IB
1
1.41
1.37
1.84
2
2.84
2.76
3.68
4
5.67
5.6
6.89
8
11.5
11.24
27.39
16
22.87
22.43
53.67
32
45.83
44.74
102.97
64
88.79
87.46
199.23
128
174.97
171.66
354.33
256
337.04
335.74
639.49
512
618.15
620.38
1103.31
1024
975.82
1031.24
1764.64
2048
1086.39
1139.46
2360.89
4096
1155.17
1173.95
2755.94
8192
1164.02
1168.38
2926.22
16384
1166.13
1178.85
3051.34
32768
1178.9
1176.36
3137.6
65536
1171.97
1173.63
3175.34
131072
1178.65
1174.27
3194.5
262144
1177.23
1174.83
3202.03
524288
1180.2
1169.95
3208.58
1048576
1175.45
1175.67
3211.02
2097152
1174.35
1174.56
3211.92
4194304
1078.1
1077.61
3212.26
0
500
1000
1500
2000
2500
3000
3500
Solarflare
port1
Solarflare
port2
Mellanox IB
Solarflare NIC 2ポート同時使用でもラインレートの帯域が得られ、各コアに1ポート割り当てられる
- 27. ご⽤用命は…
• エルザジャパンにお問い合わせください。
– Solarflare製品の⽇日本国内のVARです。
– 技術部 (担当:鈴鈴⽊木)
– Tel. (03) 5765-7391
– E-mail: hpc@elsa-jp.co.jp
– URL: http://www.elsa-jp.co.jp
• プレゼンテーション、デモ、および検証作業のご協⼒力力に
伺います。
– ターゲットアプリケーション、評価の規模などをあらかじめ教え
ていただければ、Solarflare と連携し、最適な構成を⽤用意して検
証いただけるようセットアップします。
– 技術的質問・改修のご要望など、Solarflare とのやりとりはすべ
てエルザジャパンにてご対応いたします。