NCCL (NVIDIA Collective Communications Library) เป็น library การสื่อสารแบบกลุ่มที่พัฒนาโดย NVIDIA สำหรับการทำ Parallel processing บน GPU โดยเฉพาะอย่างยิ่งในการ train deep learning model ที่ใช้ GPU หลายใบ NCCL ถูกออกแบบมาเพื่อเพิ่มประสิทธิภาพการสื่อสารระหว่าง GPU ในระบบที่มี GPU หลายใบ ทั้งภายใน single node และ multinode
...
Panel | ||||||
---|---|---|---|---|---|---|
| ||||||
However, the product of |
โดย parameter 2 ตัวนี้ จะใช้ทรัพยากรส่วนหนึ่งของ CPU ในการสื่อสารกันระหว่าง GPU/node ซึ่งในการประมวลผล main task จะต้องใช้ทรัพยากรของ CPU เช่นกันจึงต้อง balance เพื่อหาค่า parameter ที่เหมาะสม
...
NCCL_SOCKET_NTHREADS | NCCL_NSOCKS_PERTHREAD | Testing Rounds | Average time (sec) | Standard Deviation |
8 | 2 | 4 | 307.91 | 3.21 |
16 | 2 | 4 | 309.88 | 7.19 |
8 | 4 | 4 | 311.61 | 2.29 |
16 | 4 | 4 | 313.36 | 0.98 |
4 | 4 | 4 | 316.64 | 3.39 |
8 | 8 | 4 | 321.70 | 3.98 |
4 | 8 | 1 | 321.78 | N/A |
2 | 2 | 4 | 323.78 | 2.90 |
2 | 8 | 1 | 326.43 | N/A |
2 | 16 | 1 | 348.85 | N/A |
1 | 1 | 4 | 373.15 | 6.39 |
ในการทดสอบโดยใช้ model หรือ dataset อื่นอาจได้ผลลัพธ์ที่แตกต่างไป
...