คู่มือทางเทคนิค

การสื่อสารโดยรวมและ NCCL

การสื่อสารแบบกลุ่มคือวิธีที่กลุ่ม GPU แลกเปลี่ยนและรวมข้อมูล และ NCCL คือไลบรารีของ NVIDIA ที่ทำให้การแลกเปลี่ยนเหล่านั้นรวดเร็วอย่างเห็นได้ชัด

อ่าน 2 นาทีอัปเดตล่าสุด

ภาพรวม

Operations like all-reduce are the heartbeat of distributed training, synchronizing gradients across every GPU each step.

เจาะลึก

การฝึกโมเดลขนาดใหญ่หมายความว่า GPU แต่ละตัวจะคำนวณการไล่ระดับสีบนส่วนของข้อมูลของตัวเอง จากนั้น GPU ทั้งหมดจะต้องตกลงกับผลลัพธ์ที่รวมกันก่อนถึงขั้นตอนถัดไป การประสานงานดังกล่าวเสร็จสิ้นด้วยการดำเนินการร่วมกัน: ลดค่าผลรวมใน GPU ทั้งหมดและให้ผลลัพธ์แก่ทุกคน all-gather รวบรวมชิ้นส่วนของ GPU แต่ละตัวเป็นสำเนาเต็มของชิ้นส่วนทั้งหมด การออกอากาศจะส่งข้อมูลของ GPU ตัวหนึ่งไปยังส่วนที่เหลือ ลดการกระจายรวมแล้วแยก NCCL (NVIDIA Collective Communications Library) ปรับใช้สิ่งเหล่านี้อย่างมีประสิทธิภาพกับ GPU ในเซิร์ฟเวอร์และข้ามเซิร์ฟเวอร์ โดยใช้อัลกอริธึมที่รับรู้โทโพโลยี เช่น ริงและทรีลดทั้งหมด โดยใช้ประโยชน์จาก NVLink ภายในโหนดและ InfiniBand หรือ RoCE ระหว่างโหนด และเป็นแกนหลักการสื่อสารภายใต้ PyTorch DDP, FSDP, DeepSpeed ​​และ Megatron

ข้อมูลเชิงลึกทางเทคนิค

Ring all-reduce เป็นอัลกอริธึมแบบคลาสสิก: GPU สร้างวงแหวนแบบลอจิคัล และข้อมูลจะถูกแบ่งออกเป็นส่วนที่หมุนเวียนเพื่อให้แต่ละขั้นตอนซ้อนทับการสื่อสาร ทำให้แบนด์วิดท์การถ่ายโอนทั้งหมดมีความเหมาะสมที่สุดและเป็นอิสระโดยประมาณจากจำนวน GPU สำหรับโหนดจำนวนมาก อัลกอริธึมแบบทรีจะลดเวลาแฝงโดยการรวมผลลัพธ์ตามลำดับชั้น NCCL ตรวจจับโทโพโลยีอัตโนมัติ เลือกอัลกอริธึมที่ดีที่สุด และสามารถถ่ายโอนการคำนวณการลดลงในเครือข่ายด้วย NVIDIA SHARP ซึ่งช่วยลดข้อมูลที่ต้องข้ามลิงก์ลงครึ่งหนึ่ง

ผลกระทบเชิงกลยุทธ์

ต้นทุนและงบประมาณ

การตัดสินใจด้านสถาปัตยกรรมขับเคลื่อนประสิทธิภาพและต้นทุนการดำเนินงานเป็นเวลาหลายปี

การตัดสินใจที่ชัดเจนยิ่งขึ้น

การศึกษาด้านเทคนิคช่วยให้ทีมเลือกกลุ่มที่เหมาะสม ไม่ใช่แค่กลุ่มใหม่ล่าสุด

การควบคุมคุณภาพ

ตัวเลือกทางวิศวกรรมที่ดีกว่าจะช่วยลดเหตุการณ์ด้านความน่าเชื่อถือในการผลิต

อนาคตของการสื่อสารโดยรวมและ NCCL

เมื่อคลัสเตอร์ขยายขนาดเป็น GPU นับแสน การสื่อสารจึงมีอิทธิพลเหนือเวลาการฝึกอบรมมากขึ้น ดังนั้นไลบรารีรวมจึงเป็นเขตแดนที่ร้อนแรง คาดหวังการประมวลผลในเครือข่ายที่ลึกยิ่งขึ้น (สวิตช์ทำการลดลง) การทับซ้อนกันที่ดีขึ้นของการประมวลผลและการสื่อสารเพื่อซ่อนเวลาแฝง และการรวมกลุ่มที่มีความแม่นยำต่ำลงซึ่งจะย่อขนาดไบต์ที่ย้าย การแข่งขันก็เพิ่มสูงขึ้นเช่นกัน ด้วยความพยายามของผู้จำหน่ายข้ามรายและ RDMA บนอีเทอร์เน็ตที่ผลักดันทางเลือกอื่น ในขณะที่ NCCL ยังคงกระชับการบูรณาการกับ NVLink, NVSwitch และออปติกแฟบริคที่เกิดขึ้นใหม่

การใช้งานจริงในโลกแห่งความเป็นจริง

การซิงโครไนซ์การไล่ระดับสีทุกขั้นตอนการฝึกกับ GPU ทั้งหมดโดยใช้การลดทั้งหมดใน PyTorch DistributedDataParallel

สถานะเครื่องมือเพิ่มประสิทธิภาพการแบ่งส่วนและการรวบรวมพารามิเตอร์ตามความต้องการด้วยการรวบรวมทั้งหมดและลดการกระจายใน FSDP หรือ DeepSpeed ZeRO

การถ่ายทอดน้ำหนักของโมเดลเริ่มต้นจาก GPU ตัวหนึ่งไปยังตัวอื่นๆ ทั้งหมดเมื่อเริ่มต้นการฝึกซ้อม

การใช้การลดวงแหวนทั้งหมดผ่าน NVLink และ InfiniBand เพื่อรักษาแบนด์วิธให้สูงในคลัสเตอร์ GPU แบบหลายโหนด

ความเสี่ยงและรั้ว

การเพิ่มประสิทธิภาพเกณฑ์มาตรฐานหนึ่งรายการสามารถซ่อนจุดอ่อนของระบบในวงกว้างได้

ต้นทุนโครงสร้างพื้นฐานและการบำรุงรักษามักถูกประเมินต่ำไป

ช่องว่างด้านความปลอดภัยและความสามารถในการสังเกตสามารถเพิ่มขึ้นได้เมื่อระบบมีความซับซ้อนมากขึ้น

แผนงานการดำเนินงาน

1

กำหนดเป้าหมายเวลาแฝง คุณภาพ และต้นทุนก่อนนำไปใช้งาน

2

เกณฑ์มาตรฐานภายใต้สภาวะโหลดและข้อมูลจริง

3

การตรวจสอบเครื่องมือเพื่อหาข้อผิดพลาด การเบี่ยงเบน และผลกระทบต่อผู้ใช้

4

เตรียมเส้นทางการย้อนกลับและการตอบสนองต่อเหตุการณ์ก่อนปรับขนาด

สำรวจต่อไป

Free newsletter

Get the daily AI briefing

Three verified AI stories every weekday morning, written in plain English. Free forever, no ads.

One email each weekday. Unsubscribe in one click. We never sell or share your address.

Test yourself

Take the Collective Communication and NCCL quiz

Instant feedback on every answer, and a shareable certificate with a verifiable ID once you pass a course.

เริ่มแบบทดสอบ

Support free AI education. AI Understanding is a 501(c)(3) nonprofit — no ads, no paywall, ever. Make a donation

คำแนะนำต่อไป

ฟีเจอร์ออนไลน์และออฟไลน์ที่ให้บริการแบบเอียง

คำถามที่พบบ่อย

What is Collective Communication and NCCL?

การสื่อสารแบบกลุ่มคือวิธีที่กลุ่ม GPU แลกเปลี่ยนและรวมข้อมูล และ NCCL คือไลบรารีของ NVIDIA ที่ทำให้การแลกเปลี่ยนเหล่านั้นรวดเร็วอย่างเห็นได้ชัด การดำเนินการเช่นการลดทั้งหมดเป็นหัวใจสำคัญของการฝึกอบรมแบบกระจาย โดยประสานการไล่ระดับสีบน GPU ทุกตัวในแต่ละขั้นตอน

การดำเนินการแบบลดทั้งหมดบรรลุผลสำเร็จอะไรในการฝึกอบรมแบบกระจาย?

ลดผลรวมทั้งหมด (หรือรวม) ค่าใน GPU ทุกตัว และกระจายผลลัพธ์ที่เหมือนกันกลับไปยังทุก GPU ซึ่งเป็นวิธีการซิงโครไนซ์การไล่ระดับสี

อักษรย่อ ป.ป.ช. ย่อมาจากอะไร?

NCCL คือ NVIDIA Collective Communications Library ซึ่งใช้การดำเนินงานแบบ multi-GPU และ multi-node ที่รวดเร็ว

เหตุใดการลดวงแหวนทั้งหมดจึงถือว่าแบนด์วิธเหมาะสมที่สุด

การแยกส่วนข้อมูลและส่งชิ้นส่วนไปรอบๆ ลอจิคัลริง ทุกลิงก์จะถูกใช้พร้อมกัน และการถ่ายโอนทั้งหมดจะเป็นอิสระจากจำนวน GPU โดยประมาณ

การดำเนินการโดยรวมใดที่รวบรวมข้อมูลของ GPU แต่ละตัวเป็นสำเนาฉบับสมบูรณ์ที่ GPU ทั้งหมดถือครอง

All-gather รวบรวมชิ้นส่วนที่แตกต่างกันจาก GPU ทุกตัวและประกอบเป็นชุดทั้งหมดบนชิ้นส่วนทั้งหมด ซึ่งใช้อย่างมากในการฝึกอบรมแบบแบ่งส่วน เช่น FSDP

NVIDIA SHARP ทำอะไรเพื่อการดำเนินงานโดยรวม?

SHARP ดำเนินการประมวลผลในเครือข่าย ซึ่งเป็นส่วนหนึ่งของการลดขนาดภายในสวิตช์ จึงมีข้อมูลน้อยลงที่ต้องข้ามลิงก์ เพื่อเร่งความเร็วโดยรวม