低遅延10gb ethernetによるgpuクラスタの構築と性能向上手法について

28
低遅延10Gb Ethernetによる GPUクラスタの構築と 性能向上手法について 株式会社エルザジャパン 鈴木篤志

Upload: atsushi-suzuki

Post on 04-Jun-2015

1.498 views

Category:

Technology


0 download

DESCRIPTION

今日のHPCにおいて急速な普及を見せているGPUコンピューティングは基本的に, 1.CPUメモリからGPUメモリに演算データを転送する 2.GPU上の大量の並列プロセッサ上で同一のプロセスを起動して演算データを処理する 3.GPUメモリからCPUメモリに演算結果を転送する というプロセスを通じて演算を行う. 単一のGPUによる処理能力では不足がある場合,多数のGPUを並列に使うこととなるが,そのとき演算データを転送するバス転送能力もまた並列的に確保する必要があり,CPUと主メモリもまた並列化することとなる.その際,CPU間のメモリ転送を行うMPIライブラリと高速のインターコネクトも同時に必要となる. 代表的な大規模並列GPUコンピュータである東京工業大学のTSUBAMEではインターコネクトにInfiniBandを用いている[2].InfiniBandはその低遅延性と広帯域の伝送能力から,HPC領域においては最適なインターコネクト技術と認知されている.しかし,特にIPベースの既存の装置・ソリューションとの相互接続において弱点がある. この論文においては,インターコネクト技術として10Gb Ethernet,中でも特に低遅延性で知られるSolarflare[3]社のネットワークインターフェイスを用いることとする. その上で以下の点をそれぞれ検討して最適な設定や手法を割り出し,結果として得られる性能を評価する.

TRANSCRIPT

  • 1. 10Gb EthernetGPU

2. 10Gb Ethernet ?InniBand ? MPIInniBand QDR33.5GB/s, FDR5.05.4GB/s 10GbE 2NIC 2.5GB/s 10GbE NAS/SANVDIGbE/WiFiCampus, MetroGlobal WAN HFTFPGA NIC SoC (ARM Cortex / intel Atom) InniBand 3. 10GbE Solarare / OpenOnload3NIC 4. FPGA NIC//CPUFPGACPUI/OFPGAHFT10GbE 5. SolarareFPGA NICApplication Onload Engine FDK5AOE HW+ OpenOnload OpenOnloadASIC NICFPGA 6. 10GbE / 40GbE Gnodal GSGS7200 GS4008 GS00187210GbE SFP+ 4010GbE SFP+840GbE QSFP1840GbE QSFPGnodal10GbEGnodal40GbE72 1 150ns 150nsinterswitch+1 66ns 66ns720 * 3 282ns 282ns6480 * 5 414ns 414ns66ns 64K 7. GnodalASICGnodal Ethernet! 8. 10GbE BOSTON Viridis Boston Viridis Calxeda EnergyCore Cortex A9 1.11.4GHz 4 EnergyCore ECX-1000 14EnergyCore 2U48EnergyCore 192 EnergyCore SoC4GBDRAM SoC10GbE 9. BOSTON Viridis10GbE 10. EnergyCore SoCCortex A1564bit128bit,40bit1.4GHz2.5GHz1.5HPC2.53 11. PhoronixCortex A15FFTE v5.0 N=64, 1D Complex FFT 12. InniBandGPUCPU MemoryForCUDAmemcpyInfiniBandFabricIBCPU MemoryForCUDAmemcpy 13. NVidia GPU DirectRDMAGPUDMA 14. GPU Direct CPU MemoryForCUDAmemcpyCPU MemoryForCUDAmemcpyInfiniBand FabricIBGPU-DirectP2PIOH 15. GPU Direct P2PIOHGPU 16. Intel QDR-80 GPUInfiniBandNUMAAffinityQPI 2QPI 1Xeon E5-2600PCIe2 1.16us 1.71usQDR-80CPUIBInterruptIntel Data Direct I/O (DDIO)Intel InfiniBand(Send/Recv)MPI bufferForCUDAmemcpyMPI bufferForCUDAmemcpy 17. QDR-80PSMQPI 2QPI 1Rank 0 Rank 1 Rank 1QPI 2QPI 1Rank 2 Rank 3 Rank 3NUMAAffinityNUMAAffinity 18. Solarflare 10GbE NIC OpenOnload QDR-80QPI 2QPI 1Xeon E5 1sQPICPUSolarflare NICopenmpirankfilerankCPUrankIPMPI bufferForCUDAmemcpyMPI bufferForCUDAmemcpy 19. GPU 32k32k MN=P M, N3232P MyiNix i1kPxy(i)1block() M, NGPUGlobal Memory blockShared memoryGlobal memory Global memory 20. GPU(1) 32x321024MPI(2) 32x321024MPI(3) GPU(4) GPU(5) GPU(6) MPI2 21. Solarare OpenOnload stack_pollstack_poll() {reprime_hw_timer();handle_network_events();refill_rx_ring();refill_tx_ring();process_timers();} recv(),send(), poll(), select() stack_poll() 22. OpenOnloadOpenOnload/usr/libexec/onload/profiles/latency :onload_set EF_POLL_USEC=100000onload_set EF_TCP_FASTSTART_INIT 0onload_set EF_TCP_FASTSTART_IDLE 0EF_POLL_USEC: spinningEF_TCP_FASTSTART_INIT/IDLE: ACKOpenOnload onload /etc/profile.d/openonload.sh LD_PRELOAD export LD_PRELOAD=libonload.so 23. OpenMPIPTLTCPOpenOnloadOpenMPITCP% onload profile=latency mpirun --mca btl tcp,self TCPMCA 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") 24. OpenMPIPTLTCPOpenOnloadOpenMPIOpenOnload[/etc/openmpi-x86_64/openmpi-mca-params.conf]btl_tcp_if_include = eth4,eth5btl_tcp_if_exclude = lo,eth0,eth1btl_tcp_bandwidth = 12500btl_tcp_latency = 1 25. InniBand 25message size(bytes)Solarflareport1Solarflareport2 Mellanox IB0 4.21 4.19 1.221 4.35 4.34 1.152 4.35 4.35 1.154 4.34 4.34 1.158 4.35 4.34 1.1816 4.35 4.35 1.1832 4.39 4.39 1.2164 4.45 4.45 1.3128 4.62 4.62 1.96256 4.92 4.94 2.12512 5.53 5.6 2.421024 6.6 6.66 3.032048 8.16 8.26 4.154096 10.01 10.28 5.18192 14.28 14.6 7.1916384 22.49 28.39 9.9532768 40.45 49.09 15.0365536 82.11 104.5 25.31131072 96.01 123.38 45.73262144 192.61 222.62 86.54524288 418.5 452.02 168.041048576 880.6 949.9 331.422097152 2037.82 2048.71 657.84194304 4068.6 3859.8 1311.4110100100010000Solarareport1Solarareport2Mellanox IBInfiniBand 26. InniBand 26message size(bytes)Solarflareport1Solarflareport2 Mellanox IB1 1.41 1.37 1.842 2.84 2.76 3.684 5.67 5.6 6.898 11.5 11.24 27.3916 22.87 22.43 53.6732 45.83 44.74 102.9764 88.79 87.46 199.23128 174.97 171.66 354.33256 337.04 335.74 639.49512 618.15 620.38 1103.311024 975.82 1031.24 1764.642048 1086.39 1139.46 2360.894096 1155.17 1173.95 2755.948192 1164.02 1168.38 2926.2216384 1166.13 1178.85 3051.3432768 1178.9 1176.36 3137.665536 1171.97 1173.63 3175.34131072 1178.65 1174.27 3194.5262144 1177.23 1174.83 3202.03524288 1180.2 1169.95 3208.581048576 1175.45 1175.67 3211.022097152 1174.35 1174.56 3211.924194304 1078.1 1077.61 3212.260500100015002000250030003500Solarareport1Solarareport2Mellanox IBSolarflare NIC 21 27. SolarareVAR (:) Tel. (03) 5765-7391 E-mail: [email protected] URL: http://www.elsa-jp.co.jp Solarflare Solarflare 28. 28