חזרה
DOCA GPUnetIO מאגד את האינטראקציה הרשתית מופעלת-GPU בחספת התוכנה של NVIDIA
SiTech AI Team2 דק׳ קריאה

DOCA GPUnetIO מאגד את האינטראקציה הרשתית מופעלת-GPU בחספת התוכנה של NVIDIA

DOCA GPUnetIO מעניק לליבות CUDA בסיס GDA-KI מאוחד כדי לנהל ישירות פעולות Ethernet, RDMA, Verbs ו-DMA ולהסיר את ה-CPU מהנתיב הקריטי. כעת NCCL, NVSHMEM, UCX/NIXL ו-Holoscan נשענים על יישום אחד.

בסיס מאוחד לרשת מופעלת-GPU

DOCA GPUnetIO הוא SDK רשתי מוכוון-GPU לעיבוד חבילות בזמן אמת ולהעברת נתונים. הוא מאגד את GPUDirect RDMA, GPUDirect Async Kernel-Initiated (GDA-KI) ו-GDRCopy, כך שליבות CUDA יכולות לנהל ישירות פעולות Ethernet, RDMA, Verbs ו-DMA, וה-CPU מוסר מהנתיב הקריטי. לפי NVIDIA, זהו בסיס GDA-KI מאוחד שבו משתמשים NVSHMEM, NCCL, Aerial 5G SDK, UCX/NIXL, NVQLink עם Holoscan Sensor Bridge, Holoscan Advanced Network Operator ו-DeepEP/HybridEP.

קוד פתוח וגרסאות SDK

NVIDIA מציגה את GPUnetIO כערכת-על מלאה של DOCA SDK וכיישום קל יותר, מוכוון קוד פתוח מבוסס-Verbs. גרסת ה-SDK כוללת Verbs, Ethernet, DMA ו-Comm Channel, בעוד הגרסה הפתוחה תומכת במסגרות תחבורה פתוחות לחלוטין. היישום הפתוח מזהה בזמן ההפעלה את DOCA SDK וקורא באמצעות dlopen לפונקציות סגורות נבחרות, אם משתנה הסביבה מצביע על הנתיב הנכון; אחרת, הוא פועל בעצמו. שתי הצורות חושפות CUDA API מוכוון-התקן, ששומר על מודל תכנות GPU עקבי.

נתיב הבקרה, נתיב הנתונים וה-API-ים

אפליקציות GPUnetIO מתחילות בנתיב הבקרה של ה-CPU: מאתחלות GPU ורשת, מחלקות זיכרון, יוצרות אובייקטי תחבורה ומעבירות מתארים לזיכרון ה-GPU. עזרים כמו doca_gpu_verbs_create_qp_hl מפשטים יצירת וחיבור זוגות תורי RDMA. בנתיב הנתונים של ה-GPU, תהליכוני CUDA מציבים WQE-ים, מפעילים צליל פעמון על כרטיס הרשת ובודקים רשומות השלמה לפי הצורך. מצבי צליל פעמון כוללים כתיבות MMIO מזיכרון CUDA, כתיבת WQE מלא עם BlueFlame לחבילות קטנות עם חזור נמוך, ומצב עזר-CPU למערכות ללא חיבור GPU-NIC ישיר, כגון DGX Spark. עבור Ethernet ו-RDMA Verbs, קריאות רמה גבוהה (doca_gpu_dev_verbs_put_signal, doca_gpu_dev_eth_txq_send) מנהלות סנכרון ושליחת צליל פעמון ברמת תהליכון, warp או בלוק. פרימיטיבים ברמה נמוכה מספקים הכנת WQE, שליחת תורים ובדיקת השלמות, אך אינם בטוחים לתהליכון ודורשים סנכרון אפליקציה. דוגמאות נמצאות במאגר הפתוח וב-DOCA SDK.

שילובי NCCL ו-NVSHMEM

NCCL GIN חושף לצד ההתקן פרימיטיבים של put, get, signal, wait ו-flush. מ-NCCL 2.27, GIN משתמש בנתיב GPUnetIO Verbs בקוד פתוח כבקנד GDA-KI: פעולות GIN מתבססות על קריאות GPUnetIO להכנת WQE, בקשת צליל פעמון ובדיקת השלמה. NVSHMEM 3.7 הוסיף תחבורת GPUnetIO, שעוקבת אחר מבנה IBGDA ומחליפה חלק גדול ברמה הנמוכה בקריאות GPUnetIO. הוא תומך ב-GDA-KI וב-RDMA מופעלת-מארח, שנבחרות עם NVSHMEM_REMOTE_TRANSPORT=gpunetio ו-NVSHMEM_GPUNETIO_ENABLE_GDAKI=1. NVQLink משתמש במפעיל GPU RoCE Transceiver מבוסס-GPUnetIO לחזור דו-כיווני מינימלי של כ-2.6 מיקרו-שניות על IGX Thor עם Blackwell GPU ו-ConnectX-7.

מקורות: Nvidia Dev

SSiTech

SiTech — פיתוח אתרים בכוח ה-AI

אנחנו בונים אתרים מהירים ומודרניים ומשלבים AI בתהליכי עבודה אמיתיים. יש לכם פרויקט או שאלה? נשמח לעזור.