يعد الحمل الزائد لاتصالات وحدة معالجة الرسومات بمثابة عنق الزجاجة القابل للقياس في أعباء عمل الذكاء الاصطناعي في الإنتاج. وفقا للبيانات التي استشهد بها مشروع mKernel، يمكن أن تستهلك الاتصالات 43.6% من التمريرات الأمامية و32% من وقت التدريب الشامل. عبر نماذج خليط الخبراء (MoE) الشائعة، يمكن أن يكون الاتصال بين الأجهزة مسؤولاً عن ذلك ما يصل إلى 47٪ من إجمالي وقت التنفيذ. أصدر باحثون من مشروع UCCL التابع لجامعة كاليفورنيا في بيركلي mKernel، وهي مكتبة من حبات CUDA المستمرة التي تدمج اتصالات NVLink داخل العقدة، وRDMA بين العقد، وتجري العمليات الحسابية في نواة واحدة.

المشكلة: الاتصالات التي يحركها المضيف

النموذج القياسي للاتصالات متعددة GPU هو يحركها المضيف: تقوم وحدة المعالجة المركزية بتشغيل مسار التحكم والاتصال بمكتبة مثل NCCL أو NVSHMEM. تصدر المكتبة العملية الجماعية — AllReduce، وAllGather، وما إلى ذلك — عبر وحدات معالجة الرسومات. يتم تشغيل الحوسبة والاتصالات على تدفقات CUDA منفصلة وتتداخل عند حدود kernel.

يحدد فريق البحث مشكلتين في هذا النهج:

(1) لا يتم قياس وحدات المعالجة المركزية (CPU) باستخدام حساب وحدة معالجة الرسومات. يشتمل حامل GB300 NVL72 على 72 وحدة معالجة رسوميات Blackwell Ultra و36 وحدة معالجة مركزية Grace، مما يوفر 720 PFLOP/s FP8/FP6، و1.44 EFLOP/s FP4 Tensor Core، و130 تيرابايت/ثانية من عرض النطاق الترددي NVLink الشامل داخل الحامل. عند تلك السرعات، يكون تزامن المضيف على نطاق ميكروثانية – أ cudaLaunchKernel استدعاء، والتحقق من “تم تنفيذ جميع عمليات الكتابة” من جانب وحدة المعالجة المركزية، وحدث بين الدفق – يظهر مباشرة كـ فقاعات الأنابيب.

(2) تتداخل الأنظمة التي يحركها المضيف مع الحوسبة والاتصالات عند حدود النواة التقريبية. لا يمكن إجراء تداخل دقيق على مستوى البلاط أو القطعة من الجانب المضيف.

البديل هو الاتصالات المعتمدة على GPU: تقوم وحدة معالجة الرسومات نفسها بتشغيل عمليات النقل، مع دمج الاتصال في نفس النواة مثل الحساب. تعمل معظم مكتبات النواة المدمجة الموجودة ضمن عقدة واحدة أو وحدة معالجة رسومات واحدة. يستهدف mKernel الحالة متعددة العقد.

ما يفعله mKernel

mKernel هي مكتبة حبات CUDA المستمرة. تقوم كل نواة بدمج اتصالات NVLink داخل العقدة وRDMA بين العقد والحوسبة الكثيفة في نواة واحدة.

Multi-GPU + multinode، في نواة واحدة: يعيش كل من NVLink داخل العقدة وRDMA بين العقدة داخل نفس النواة المستمرة.

تداخل دقيق داخل النواة: يتداخل الحوسبة والاتصالات عند دقة التجانب/القطعة، مما يغطي كلاً من اتصالات وحدة معالجة الرسومات داخل العقدة وبين العقد.

نواة ثابتة مع تخصص SM: عبارات الحث على اتخاذ إجراء تقوم بتعيين الأدوار ذاتيًا: compute, intra-comm, inter-send, inter-reduce. يمكن ضبط عدد الرسائل القصيرة المخصصة لكل دور لكل شكل.

الشبكات المعتمدة على وحدة معالجة الرسومات (GPU) مبنية على libibverbs: يستخدم mKernel عمليات كتابة RDMA التي تبدأ بواسطة GPU دون الاعتماد على NCCL أو NVSHMEM. تتم كتابة الواجهة الخلفية للاتصالات من البداية لتحقيق أقصى قدر من الأداء ودعم أجهزة الشبكات غير المتجانسة.

الحبات الخمس المنصهرة

نواة ما الصمامات وصف
AllGather + GEMM AllGather → GEMM كل رتبة تحمل قطعة من A. بينما تقوم الرتب بجمع أجزاء الأقران عبر NVLink/RDMA، فإن GEMM المحلي يستهلك المربعات بمجرد وصولها.
جيمم + AllReduce جيمم → أولريدوس يحسب C = A @ B ويقلل النواتج الجزئية عبر جميع الرتب في عملية إطلاق واحدة. يتم دفع مربعات الإخراج إلى شجرة الاختزال فور إنتاجها.
إيفاد وزارة التعليم + GEMM إرسال الكل إلى الكل → GEMM المجمعة يقوم بتوجيه رموز MoE إلى صفوف الخبراء الخاصة بهم (NVLink داخل العقدة + الكل إلى الكل بين العقد) ويقوم بتشغيل GEMM المجمعة لكل خبير في نفس النواة. تتم معالجة الرموز بمجرد وصولها – لا يوجد مخزن مؤقت مرحلي ذهابًا وإيابًا.
انتباه الدائري تبادل حلقة KV → FlashAttention الاهتمام التسلسلي الموازي عبر الرتب. تقوم كل خطوة بتدوير قطعة KV حول الحلقة بينما يستهلك FlashAttention المحلي القطعة التي تم استلامها مسبقًا. يتم تشغيل الحساب وإرسال/استقبال الحلقة بشكل متزامن داخل نواة ثابتة واحدة.
جيمم + تقليل التشتت جيمم → تقليل التشتت يحسب C = A @ B وتقليل تشتت الإخراج. يتم تقليل كل بلاطة إخراج وإرسالها إلى رتبتها الخاصة بمجرد إنتاجها.

إعداد التقييم

قام فريق البحث بتقييم mKernel على مجموعتين مكونتين من عقدتين × 8-H200 تختلفان فقط في النسيج البيني الخاص بهما:

اختبار العقد × وحدات معالجة الرسومات داخل العقدة النقل بين العقدة نيك
AWS التعليم للجميع 2×8 ح200 نفلينك AWS EFA / SRD 16 × 200 جيجابايت/ثانية EFA لكل عقدة
كونيكت اكس-7 2×8 ح200 نفلينك إنفينيباند 8 × 400 جيجابت/ثانية NVIDIA ConnectX-7 لكل عقدة

تم اختبار mKernel مقابل NCCL، وTriton-distributed، وFlux، وMercury، وMagiAttention، وTransformer-Engine، وRing-flash-attention. ويشير الفريق إلى أن المزيد من القياس على نطاق أوسع لا يزال قيد التقدم.

الخلفيات والمتطلبات

يدعم mKernel واجهتين خلفيتين للشبكات:

الخلفية ماكرو ينقل حيث يتم تشغيله
CX7 -DINTERNODE_BACKEND_IBVERBS libibverbs RC ConnectX-7 / InfiniBand / RoCE
التعليم للجميع -DINTERNODE_BACKEND_EFA أفعال libibverbs + efadv (SRD) AWS p5/p5e (H200، EFA)

تشترك كلتا الواجهتين الخلفيتين في نفس واجهة برمجة التطبيقات (API) من جانب المضيف ونفس نواة وحدة معالجة الرسومات (GPU). يختلف تنفيذ الوكيل/الجلسة فقط (session.h لCX7، session_efa.h للتعليم للجميع). المتطلبات: وحدات معالجة الرسومات NVIDIA Hopper (أهداف البناء الافتراضية sm_90a)، CUDA 12.9، بايثون مع PyTorch. تتطلب الواجهة الخلفية لـ CX7 رؤوس ومكتبات تطوير libibverbs. تتطلب الواجهة الخلفية لـ EFA تثبيت AWS EFA مع رؤوس libfabric وlibibverbs وefadv وEFA ضمن EFA_HOME=/opt/amazon/efa بشكل افتراضي.

الشرح المرئي لـ Marktechpost

01 / 07 – نظرة عامة

ما هو mKernel؟

mKernel هي مكتبة مفتوحة المصدر لنواة CUDA المستمرة من مشروع UCCL التابع لجامعة كاليفورنيا في بيركلي. فهو يدمج اتصالات NVLink داخل العقدة، وRDMA بين العقد، والحوسبة الكثيفة في نواة واحدة.

تعمل معظم مكتبات النواة المدمجة الموجودة ضمن عقدة واحدة أو وحدة معالجة رسومات واحدة. تم تصميم mKernel منذ البداية ليشمل حدود العقدة.

43.6%

من التمريرة الأمامية التي تستهلكها الاتصالات في الإنتاج

47%

من إجمالي وقت التنفيذ في نماذج وزارة التربية والتعليم الشائعة

32%

من وقت التدريب الشامل الذي يستهلكه الاتصال

02 / 07 – المشكلة

لماذا يحركها المضيف الاتصالات قصيرة

النموذج القياسي يعتمد على المضيف: تستدعي وحدة المعالجة المركزية NCCL أو NVSHMEM، والتي تصدر عمليات جماعية عبر وحدات معالجة الرسومات. يحدد فريق UCCL مشكلتين.

وحدات المعالجة المركزية (CPUs) لا تتوسع مع وحدات معالجة الرسومات (GPU). يوفر الحامل GB300 NVL72 720 PFLOP/s FP8/FP6 و1.44 EFLOP/s FP4. عند تلك السرعات، يكون الحمل على نطاق ميكروثانية من cudaLaunchKernelوتظهر عمليات التحقق من المزامنة على جانب وحدة المعالجة المركزية (CPU)، والأحداث بين الدفق مباشرةً كفقاعات أنابيب.

🔲

التداخل خشن للغاية. تتداخل الأنظمة التي يحركها المضيف مع الحوسبة والاتصالات عند حدود kernel فقط. لا يمكن إجراء تداخل دقيق على مستوى البلاط أو القطعة من الجانب المضيف.

🔀

الجواب: الاتصالات التي تعتمد على GPU. تقوم وحدة معالجة الرسومات نفسها بتشغيل عمليات نقل دقيقة، يتم دمجها في نفس النواة مثل الحساب.

03 / 07 – التصميم

أربعة تصميم الأساسية ملكيات

🖧

Multi-GPU + multinode، في نواة واحدة. يعيش كل من NVLink داخل العقدة وRDMA بين العقدة داخل نفس النواة المستمرة.

🔬

تداخل دقيق داخل النواة. يتداخل الحوسبة والاتصالات عند دقة التجانب/القطعة، مما يغطي كلاً من الاتصال داخل العقدة وبين العقد.

⚙️

نواة ثابتة مع تخصص SM. تقوم عبارات الحث على اتخاذ إجراء بتعيين الأدوار ذاتيًا: compute, intra-comm, inter-send, inter-reduce. تقسيم SM قابل للضبط لكل شكل.

📡

الشبكات المعتمدة على GPU عبر libibverbs. يستخدم عمليات كتابة RDMA التي تبدأ بواسطة GPU. لا توجد تبعية NCCL أو NVSHMEM. تتم كتابة الواجهة الخلفية للاتصال من الصفر.

04 / 07 – حبات

الخمسة النواة المنصهرة

AllGather + GEMM

AllGather —> GEMM

كل رتبة تحمل قطعة من A. يستهلك GEMM المحلي البلاط عبر NVLink/RDMA عند وصوله – يبدأ matmul قبل الانتهاء الجماعي.

جيمم + AllReduce

جيمم —> AllReduce

يحسب C = A @ B ويقلل النواتج الجزئية عبر جميع الرتب في عملية إطلاق واحدة. تدخل مربعات الإخراج إلى شجرة الاختزال لحظة إنتاجها.

إيفاد وزارة التعليم + GEMM

إرسال الكل إلى الكل -> GEMM المجمعة

يقوم بتوجيه رموز MoE إلى صفوف الخبراء عبر NVLink + internode الكل إلى الكل، ثم تشغيل GEMM المجمعة لكل خبير في نفس النواة. لا يوجد مخزن مؤقت للتدريج ذهابًا وإيابًا.

انتباه الدائري

تبادل حلقة KV —> FlashAttention

الاهتمام التسلسلي الموازي عبر الرتب. تقوم كل خطوة بتدوير قطعة KV حول الحلقة بينما يستهلك FlashAttention المحلي القطعة التي تم استلامها مسبقًا.

جيمم + تقليل التشتت

جيمم -> تقليل التشتت

يحسب C = A @ B وتقليل تشتت الإخراج. يتم تقليل كل بلاطة وإرسالها إلى رتبتها الخاصة بمجرد إنتاجها.

05 / 07 – التقييم

تقييم يثبت

تم اختباره على مجموعتين مكونتين من عقدتين × 8-H200 تختلفان فقط في النسيج بين العقد.

اختبار العقد × وحدات معالجة الرسومات بين العقدة نيك
AWS التعليم للجميع 2×8 ح200 AWS EFA / SRD 16 × 200 جيجابايت/ثانية EFA لكل عقدة
كونيكت اكس-7 2×8 ح200 إنفينيباند 8 × 400 جيجابت/ثانية CX7 لكل عقدة

يستخدم كلا الاختبارين العقدة الداخلية NVLink. تمت المقارنة مع: NCCL، وTriton-distributed، وFlux، وMercury، وMagiAttention، وTransformer-Engine، وRing-flash-attention. ولا تزال عملية القياس على نطاق أوسع قيد التقدم.

06 / 07 – الواجهات الخلفية والمتطلبات

الواجهات الخلفية & متطلبات

الخلفية ينقل حيث يتم تشغيله
CX7 libibverbs RC ConnectX-7 / InfiniBand / RoCE
التعليم للجميع أفعال libibverbs + efadv (SRD) AWS p5/p5e (H200، EFA)

📋

متطلبات: وحدات معالجة الرسوميات NVIDIA Hopper (الافتراضي sm_90a)، CUDA 12.9، بايثون مع PyTorch. يحتاج CX7 إلى رؤوس libibverbs. التعليم للجميع يحتاج إلى libfabric، libibverbs، efadv تحت EFA_HOME=/opt/amazon/efa.

📝

الترخيص والإسناد: معهد ماساتشوستس للتكنولوجيا مرخص. MMA/رمز الحساب مقتبس من ThunderKittens (HazyResearch).

07 / 07 – خارطة الطريق والوجبات الرئيسية

خارطة الطريق & الوجبات السريعة الرئيسية

نواة متعددة العقد مدمجة تعتمد على وحدة معالجة الرسومات (AG+GEMM، GEMM+AR، MoE Dispatch+GEMM، Ring Attention، GEMM+RS)

الواجهات الخلفية لـ ConnectX-7 وAWS EFA

🚧

دعم كامل للمسرّع غير المتجانس/بطاقة واجهة الشبكة (NIC) مع الاكتشاف والتنسيب والتوجيه حسب الهيكل

🚧

النوى الضخمة بين العقد: طي عدة خطوات مدمجة في نواة واحدة تمتد على طبقة محولات

🚧

دعم بلاكويل GPU

يدمج NVLink وRDMA بين العقد والحساب في نواة CUDA ثابتة واحدة

خمس حبات: AllGather+GEMM، GEMM+AllReduce، MoE Dispatch+GEMM، Ring Attention، GEMM+ReduceScatter

GPU التي بدأتها RDMA عبر libibverbs – لا توجد تبعية NCCL أو NVSHMEM

يتطلب وحدات معالجة الرسومات هوبر (sm_90a) وشبكات ConnectX-7 أو AWS EFA

الوجبات السريعة الرئيسية

  • يقوم mKernel بدمج NVLink داخل العقدة وRDMA بين العقد والحوسبة في نواة CUDA ثابتة واحدة.
  • تمثل تكاليف الاتصالات العامة ما يصل إلى 47% من وقت التنفيذ في نماذج وزارة التربية والتعليم وفقًا لبيانات الإنتاج المذكورة.
  • تم تضمين خمس حبات: AllGather+GEMM، وGEMM+AllReduce، وMoE Dispatch+GEMM، وRing Attention، وGEMM+ReduceScatter.
  • يتم تنفيذ RDMA الذي يتم تشغيله بواسطة GPU مباشرة عبر libibverbs – لا توجد تبعية NCCL أو NVSHMEM.
  • يتطلب حاليًا وحدات معالجة الرسومات Hopper (sm_90a) وشبكات ConnectX-7 أو AWS EFA؛ دعم بلاكويل موجود على خريطة الطريق.

تحقق من الريبو و التفاصيل الفنية. أيضا، لا تتردد في متابعتنا على تغريد ولا تنسى الانضمام إلينا 150 ألف+ مل من SubReddit والاشتراك في النشرة الإخبارية لدينا. انتظر! هل أنت على برقية؟ الآن يمكنك الانضمام إلينا على التليجرام أيضًا.

هل تحتاج إلى الشراكة معنا للترويج لصفحة GitHub Repo أو صفحة الوجه المعانقة أو إصدار المنتج أو الندوة عبر الويب وما إلى ذلك؟ تواصل معنا



اكتشاف المزيد من كحيل للتقنية | أخبار التقنية والذكاء الاصطناعي وشروحات الويب

اشترك للحصول على أحدث التدوينات المرسلة إلى بريدك الإلكتروني.

شاركها.
اترك تعليقاً

اكتشاف المزيد من كحيل للتقنية | أخبار التقنية والذكاء الاصطناعي وشروحات الويب

اشترك الآن للاستمرار في القراءة والحصول على حق الوصول إلى الأرشيف الكامل.

Continue reading