การเชื่อมต่อระบบ DGX Spark สองเครื่องเข้าด้วยกันเพื่อสร้างสภาพแวดล้อม Distributed Computing ถือเป็นก้าวสำคัญในการยกระดับประสิทธิภาพการทำงานด้าน AI ไม่ว่าจะเป็นการทำ Inference หรือ Fine-tuning โมเดลขนาดใหญ่ โดยบทความนี้จะพาคุณไปเรียนรู้ขั้นตอนการตั้งค่าการสื่อสารระหว่างโหนดด้วยความเร็วสูง 200GbE ผ่านสาย QSFP เพื่อเชื่อมต่อโดยตรง ซึ่งจะช่วยให้สามารถส่งงานไปประมวลผลข้ามเครื่องได้อย่างราบรื่นและรวดเร็ว

   เนื้อหาจะครอบคลุมตั้งแต่การเตรียมความพรำด้านผู้ใช้งานบนระบบปฏิบัติการ การเชื่อมต่อฮาร์ดแวร์ทางกายภาพ ไปจนถึงการกำหนดค่าเครือข่ายที่ซับซ้อนด้วย Netplan ทั้งในโหมดอัตโนมัติและแบบ Manual และสุดท้ายคือการตั้งค่า SSH เพื่อการเข้าถึงระหว่างเครื่องโดยไม่ต้องใช้รหัสผ่าน ซึ่งทั้งหมดนี้มีจุดประสงค์เพื่อให้ระบบของคุณพร้อมสำหรับการรองรับ Distributed Workloads อย่างเต็มรูปแบบ

 

การเตรียมความพร้อมและการจัดการผู้ใช้ (Prerequisites & User Setup)

   ขั้นตอนแรกที่สำคัญที่สุดก่อนเริ่มต่อเชื่อมระบบเครือข่ายคือการตรวจสอบและจัดการผู้ใช้งานบนระบบปฏิบัติการของทั้งสองเครื่อง เพื่อให้แน่ใจว่าทั้งสองฝั่งมีชื่อผู้ใช้ที่ตรงกันซึ่งจะช่วยลดปัญหาเรื่องสิทธิ์การเข้าถึงและความซับซ้อนในการจัดการ SSH ในภายหลัง คุณสามารถตรวจสอบชื่อผู้ใช้ปัจจุบันได้ง่ายๆ โดยใช้คำสั่ง whoami ในเทอร์มินัล

   หากพบว่าชื่อผู้ใช้บนทั้งสองเครื่องไม่ตรงกัน คุณจำเป็นต้องสร้างผู้ใช้ใหม่ขึ้นมาให้สอดคล้องกัน โดยในที่นี้เราจะยกตัวอย่างการสร้าง User ชื่อ nvidia ซึ่งเป็นมาตรฐานที่นิยมใช้งาน การสร้างผู้ใช้ใหม่จะต้องมีการเพิ่ม User นั้นลงในกลุ่ม sudo เพื่อให้มีสิทธิ์ในการจัดการระบบ ตั้งรหัสผ่าน และทำการเปลี่ยนไปใช้งาน User นั้นทันทีเพื่อเริ่มกระบวนการตั้งค่าต่อไป

การเชื่อมต่อฮาร์ดแวร์และการตรวจสอบอินเทอร์เฟซ (Physical Connection & Interface Verification)

   เมื่อเตรียม User เรียบร้อยแล้ว ขั้นตอนต่อไปคือการเชื่อมต่อฮาร์ดแวร์ระหว่างสองระบบ DGX Spark เข้าด้วยกันด้วยสาย QSFP ซึ่งเป็นหัวใจสำคัญในการสร้างช่องทางสื่อสารความเร็วสูง 200GbE ให้คุณเสียบสาย QSFP เข้ากับพอร์ตที่มีอยู่บนอุปกรณ์ทั้งสองเครื่องโดยตรง หลังจากเชื่อมต่อแล้วระบบจะตรวจพบการเชื่อมต่อทางกายภาพและเตรียมอินเทอร์เฟซเครือข่ายสำหรับการใช้งาน

   หลังจากนั้นให้ทำการตรวจสอบสถานะของอินเทอร์เฟซเหล่านั้นด้วยคำสั่ง ibdev2netdev เพื่อดูว่าพอร์ตใดที่เชื่อมต่อสำเร็จและมีสถานะเป็น Up ให้สังเกตชื่อของอินเทอร์เฟซที่ใช้งานได้ เช่น enp1s0f1np1 ซึ่งอาจมีชื่อแตกต่างกันไปตามพอร์ตที่คุณเลือกเสียบ โดยคุณควรจดจำชื่อนี้ไว้เพื่อนำไปใช้ในขั้นตอนการตั้งค่าเครือข่ายต่อไป และควรสังเกตว่าแต่ละพอร์ตทางกายภาพอาจมีชื่ออินเทอร์เฟซสองแบบ แต่เราจะใช้ชื่อแบบมาตรฐานเป็นหลัก

การกำหนดค่าเครือข่าย (Network Configuration)

ตัวเลือกที่ 1: การกำหนด IP อัตโนมัติ (Automatic IP Assignment)

วิธีแรกเป็นวิธีที่ง่ายและรวดเร็วที่สุดสำหรับการเชื่อมต่อด้วยสาย QSFP เพียงเส้นเดียว โดยเราจะใช้ Link-local addressing ผ่าน Netplan ซึ่งจะทำให้ระบบสามารถกำหนดหมายเลข IP ให้แก่กันและกันโดยอัตโนมัติโดยไม่ต้องกำหนดค่าเอง วิธีนี้เหมาะสำหรับผู้ที่ต้องการตั้งค่าเบื้องต้นหรือใช้งานแบบเชื่อมต่อตรงๆ โดยไม่ซับซ้อน คุณเพียงแค่สร้างไฟล์คอนฟิกชื่อ 40-cx7.yaml ขึ้นมา

ในไฟล์คอนฟิกนี้ คุณจะต้องระบุเวอร์ชันของเครือข่ายและตั้งค่าให้อินเทอร์เฟซที่ตรวจพบใช้งานในโหมด link-local สำหรับ IPv4 เมื่อสร้างไฟล์เสร็จแล้วขั้นตอนสำคัญคือการตั้งค่าสิทธิ์การเข้าถึงไฟล์ให้ปลอดภัยด้วยคำสั่ง chmod และสุดท้ายคือใช้คำสั่ง netplan apply เพื่อนำการตั้งค่าทั้งหมดไปใช้งานจริงทันที ทำให้ทั้งสองเครื่องสามารถคุยกันได้โดยไม่ต้องจำ IP Address เอง

ตัวเลือกที่ 2: การกำหนด IP แบบ Manual ผ่านไฟล์ Netplan

สำหรับผู้ที่ต้องการความมั่นคงและความยืดหยุ่นในการจัดการเครือข่ายสูงกว่า หรือต้องการใช้สาย QSFP สองเส้นเพื่อให้ได้ Bandwidth สูงสุดแบบ Full Bandwidth การกำหนด IP แบบ Manual ผ่านไฟล์ Netplan เป็นทางเลือกที่เหมาะสมที่สุด วิธีนี้ต้องการให้คุณกำหนด Static IP ให้กับแต่ละอินเทอร์เฟซบน Node 1 และ Node 2 อย่างชัดเจนแยกกัน เพื่อป้องกันความสับสนและความผิดพลาดในการระบุตำแหน่งของอุปกรณ์

ในการตั้งค่านี้ คุณจะต้องแก้ไขหรือสร้างไฟล์ Netplan โดยระบุหมายเลข IP ที่ต้องการลงไปโดยตรง พร้อมทั้งปิดการใช้งาน DHCP4 บนอินเทอร์เฟซเหล่านั้น หากคุณใช้สายสองเส้นเพื่อประสิทธิภาพสูงสุด คุณจำเป็นต้องกำหนด IP ให้ครบทั้งสี่อินเทอร์เฟซ เช่นเดียวกับวิธีแรก เมื่อบันทึกไฟล์แล้วให้ตั้งค่า permissions ให้ถูกต้องและรันคำสั่ง netplan apply เพื่อให้การเปลี่ยนแปลงมีผลทันที

วิธีสุดท้ายเป็นการกำหนด IP แบบชั่วคราวผ่าน Command Line โดยตรง ซึ่งเหมาะสำหรับการทดสอบระบบเบื้องต้นหรือการใช้งานที่ไม่ต้องการความถาวร คุณสามารถใช้คำสั่ง ip addr add เพื่อกำหนดหมายเลข IP ให้กับอินเทอร์เฟซที่ต้องการได้ทันทีโดยไม่ต้องยุ่งยากกับการสร้างหรือแก้ไขไฟล์คอนฟิก ซึ่งช่วยให้คุณสามารถทดสอบการเชื่อมต่อได้อย่างรวดเร็ว

อย่างไรก็ตาม คุณต้องทราบข้อจำกัดสำคัญของวิธีนี้คือ หมายเลข IP ที่ตั้งค่าผ่าน Command Line จะมีผลเฉพาะขณะที่เครื่องทำงานอยู่เท่านั้น หากคุณทำการ Reboot เครื่อง การตั้งค่าเหล่านี้จะหายไปทันทีและคุณจะต้องมาตั้งค่าใหม่ทั้งหมด ดังนั้นวิธีนี้จึงไม่แนะนำสำหรับการใช้งานจริงในระบบ Production ที่ต้องการความเสถียรต่อเนื่อง

การตั้งค่า SSH และการสื่อสารระหว่างโหนด (SSH Configuration)

ขั้นตอนสุดท้ายที่จะทำให้ระบบ Distributed Computing ของคุณสมบูรณ์แบบคือการตั้งค่า SSH เพื่อให้สามารถเข้าถึงและส่งคำสั่งระหว่างเครื่องทั้งสองได้โดยไม่ต้องกรอกรหัสผ่านทุกครั้ง ซึ่งเป็นสิ่งจำเป็นอย่างยิ่งสำหรับการทำงานอัตโนมัติ คุณจำเป็นต้องสร้าง SSH Key บนเครื่องหลักและนำ Public Key ไปวางไว้บนเครื่องอีกฝั่ง เพื่อสร้างความสัมพันธ์ความไว้วางใจระหว่างระบบทั้งสอง

เพื่อลดความยุ่งยากและความผิดพลาดในการจัดการคีย์เหล่านี้ คุณสามารถใช้สคริปต์ discover-sparks.sh ที่ออกแบบมาเพื่อการค้นหาโหนดและกระจายคีย์ SSH ได้อย่างอัตโนมัติ การใช้งานสคริปต์นี้จะช่วยให้กระบวนการตั้งค่า Authentication ระหว่างเครื่อง DGX Spark ทั้งสองเป็นไปอย่างราบรื่น และระบบของคุณจะพร้อมที่จะเริ่มทำงาน Distributed Inference และ Fine-tuning ได้ทันที

สรุปแล้ว ขั้นตอนการเชื่อมต่อระบบเครือข่ายความเร็วสูงระหว่าง DGX Spark สองเครื่องนั้นต้องอาศัยความละเอียดตั้งแต่การเตรียม User การเชื่อมต่อฮาร์ดแวร์ การตั้งค่า Netplan ไปจนถึงการจัดการ SSH เพื่อให้แน่ใจว่าระบบจะทำงานร่วมกันได้อย่างมีประสิทธิภาพ อย่างไรก็ตาม คุณควรตระหนักถึงระดับความเสี่ยงในระดับปานกลางในการแก้ไขการตั้งค่าเครือข่าย และหากเกิดปัญหาขึ้น คุณสามารถทำการ Rollback ได้โดยการลบไฟล์คอนฟิก Netplan หรือยกเลิกการตั้งค่า IP ที่ทำไว้ เมื่อทุกอย่างเรียบร้อย ระบบของคุณก็พร้อมสำหรับการทำ Distributed Inference และ Fine-tuning อย่างเต็มรูปแบบแล้ว

🎯 สรุปสั้นๆ

  • ขั้นตอนการเชื่อมต่อฮาร์ดแวร์ระหว่างเครื่อง DGX Spark ด้วยสาย QSFP เพื่อความเร็ว 200GbE
  • การจัดการ User และสิทธิ์การใช้งานให้สอดคล้องกันบนทั้งสองระบบ
  • วิธีการกำหนดค่าเครือข่ายด้วย Netplan ทั้ง 3 วิธี (Automatic, Manual Config, Command Line)
  • การเตรียมความพร้อมสำหรับการส่งงาน Distributed Workloads ผ่าน SSH

สนใจติดต่อสั่งซื้อ