12. GpuScan + GpuJoin + GpuPreAgg Combined Kernel (1/3)
Aggregation
GROUP BY
JOIN
SCAN
SELECT cat, count(*), avg(x)
FROM t0 JOIN t1 ON t0.id = t1.id
WHERE y like ‘%abc%’
GROUP BY cat;
count(*), avg(x)
GROUP BY cat
t0 JOIN t1
ON t0.id = t1.id
WHERE y like ‘%abc%’
実行結果
ビッグデータ処理のためのGPUとNVME-SSD活用 - PGconf.ASIA 201812
GpuScan
GpuJoin
Agg
+
GpuPreAgg
SeqScan
HashJoin
Agg
31. ハードウェア構成に関する考慮事項(1/3)
ビッグデータ処理のためのGPUとNVME-SSD活用 - PGconf.ASIA 201831
① PCIeスイッチを介して
SSDとGPUが接続の場合
OK
② CPUがPCIeバスを管理し、
SSDにGPU直接接続の場合
Workable
③ SSDとGPUが互いに異なる
CPUに接続の場合
Not Supported
CPU CPU
PLX
SSD GPU
PCIeスイッチ
CPU CPU
SSD GPU
CPU CPU
SSD GPU
QPI
SSDとGPUのペアは、同一CPUまたはPLXの配下に接続されている必要がある。
CPUよりはPCIeスイッチ経由の方が望ましい。
https://docs.nvidia.com/cuda/gpudirect-rdma/index.html#supported-systems
32. ハードウェア構成に関する考慮事項(2/3)
ビッグデータ処理のためのGPUとNVME-SSD活用 - PGconf.ASIA 201832
PCIe-switchがI/Oをバイパスする事でCPUの負荷を軽減できる。
CPU CPU
PLX
SSD GPU
PLX
SSD GPU
PLX
SSD GPU
PLX
SSD GPU
SCAN SCAN SCAN SCAN
JOIN JOIN JOIN JOIN
GROUP BY GROUP BY GROUP BY GROUP BY
非常に少ないボリュームのデータ
GATHER GATHER
33. PCIeスイッチ付ハードウェア(1/2)- HPC向けサーバ
ビッグデータ処理のためのGPUとNVME-SSD活用 - PGconf.ASIA 201833
Supermicro SYS-4029TRT2
x96 lane
PCIe switch
x96 lane
PCIe switch
CPU2 CPU1
QPI
Gen3
x16
Gen3 x16
for each slot
Gen3 x16
for each slot
Gen3
x16
マルチノードMPI向けに最適化されたハードウェアが売られている
35. ハードウェア構成に関する考慮事項(3/3)
ビッグデータ処理のためのGPUとNVME-SSD活用 - PGconf.ASIA 201835
Most of the SQL workloads are executed inside of the I/O box
CPU CPU
PLX
SSD GPU
PLX
SSD GPU
PLX
SSD GPU
PLX
SSD GPU
SCAN SCAN SCAN SCAN
JOIN JOIN JOIN JOIN
GROUP BY GROUP BY GROUP BY GROUP BY
GATHER GATHER
I/O BoxI/O BoxI/O BoxI/O Box