طرحت Nvidia هذا الشهر ما قد يكون أحد أهم التحديثات لمجموعة برامج CUDA GPU الخاصة بها منذ سنوات. يقدم الإصدار الجديد من CUDA 13.1 مسار برمجة CUDA Tile، الذي يرفع مستوى تطوير النواة فوق نموذج تنفيذ التعليمات الفردية ومتعدد الخيوط (SIMT)، ومواءمته مع نموذج التنفيذ الثقيل الموتر لمعالجات فئة Blackwell وخلفائها.
من خلال التحول إلى كتل البيانات المنظمة، أو المربعات، تعمل Nvidia على تغيير كيفية تصميم المطورين لأحمال عمل وحدة معالجة الرسومات، مما يمهد الطريق لبنيات الجيل التالي التي ستدمج مسرعات حسابية أكثر تخصصًا وبالتالي تعتمد بشكل أقل على التوازي على مستوى الخيط.
خرائط طريق Tom's Hardware Premium
SIMT مقابل البلاط
قبل المتابعة، تجدر الإشارة إلى أن الاختلاف الأساسي بين نموذج برمجة CUDA التقليدي و CUDA Tile الجديد ليس في القدرات، ولكن في ما يتحكم فيه المبرمجون. في نموذج CUDA الأصلي، تعتمد البرمجة على تنفيذ SIMT (تعليمات فردية ومتعددة الخيوط). يقوم المطور بتحليل المشكلة بشكل صريح إلى سلاسل وكتل سلاسل، ويختار أبعاد الشبكة والكتلة، ويدير المزامنة، ويصمم أنماط الوصول إلى الذاكرة بعناية لتتناسب مع بنية وحدة معالجة الرسومات. يعتمد الأداء بشكل كبير على القرارات ذات المستوى المنخفض مثل استخدام الالتواء، وتبليط الذاكرة المشتركة، واستخدام التسجيل، والاستخدام الصريح لتعليمات أو مكتبات الموتر الأساسية. باختصار، يتحكم المبرمج في كيفية تنفيذ الحساب على الأجهزة.
يقوم CUDA Tile بتحويل البرمجة إلى تجريد يتمحور حول البلاط. يصف المطور العمليات الحسابية من حيث العمليات على البلاط – كتل البيانات المنظمة مثل المصفوفات الفرعية – دون تحديد الخيوط أو الإعوجاج أو ترتيب التنفيذ. ثم يقوم المترجم ووقت التشغيل تلقائيًا بتعيين عمليات التجانب هذه على الخيوط، ونوى الموتر، ومسرعات الذاكرة الموترية (TMA)، والتسلسل الهرمي لذاكرة وحدة معالجة الرسومات. وهذا يعني أن المبرمج يركز على العمليات الحسابية التي يجب أن تحدث للبيانات، بينما يحدد CUDA كيفية تشغيلها بكفاءة على الأجهزة، مما يضمن قابلية تطوير الأداء عبر أجيال وحدة معالجة الرسومات، بدءًا من Blackwell وتمتد إلى البنى المستقبلية.
محور استراتيجي في نموذج CUDA
ولكن لماذا يتم إدخال مثل هذه التغييرات المهمة على مستوى CUDA؟ هناك عدة دوافع وراء هذه الخطوة: التغييرات الهيكلية الجذرية في وحدات معالجة الرسومات، والطريقة التي تعمل بها أحمال عمل وحدات معالجة الرسومات الحديثة. أولاً، لم يعد الذكاء الاصطناعي والمحاكاة والحوسبة التقنية يدور حول العمليات العددية: بل يعتمدون على الرياضيات المكثفة الكثيفة. ثانيًا، اتبعت أجهزة Nvidia الحديثة أيضًا نفس المسار، حيث قامت بدمج النوى الموترية وTMAs كتحسينات معمارية أساسية. ثالثًا، تختلف نوى الموتر وTMAs بشكل كبير بين البنيتين.
من Turing (أول بنية GPU تتضمن وحدات موتر كوحدات مساعدة) إلى Blackwell (حيث أصبحت الموترات هي محركات الحوسبة الأساسية)، أعادت Nvidia بشكل متكرر صياغة كيفية جدولة محركات Tensor، وكيفية تنظيم البيانات ونقلها، ومقدار إدارة خط أنابيب التنفيذ عن طريق الإعوجاج والخيوط مقابل الأجهزة المخصصة. مع تورينج، تم استخدام الموترات لتنفيذ تعليمات المصفوفة الصادرة عن طريق الالتواء، ولكن مع بلاكويل، تحولت الأمور إلى خطوط أنابيب التنفيذ الأصلية مع محركات الذاكرة المستقلة، مما أدى بشكل أساسي إلى تقليل دور عناصر التحكم التقليدية في SIMT.
ونتيجة لذلك، نظرًا لتزايد أجهزة الشد بقوة، فإن الافتقار إلى التوحيد عبر الأجيال جعل الضبط منخفض المستوى على مستويات الالتواء والخيط غير عملي، لذلك اضطرت Nvidia إلى رفع CUDA نحو تجريدات ذات مستوى أعلى تصف النية على مستوى التجانب، بدلاً من مستوى الخيط، تاركة جميع التحسينات للمترجمين وأوقات التشغيل. تتمثل إحدى مزايا هذا النهج في أنه يمكنه استخلاص مكاسب الأداء عبر جميع أعباء العمل تقريبًا طوال دورة الحياة النشطة لبنيات وحدة معالجة الرسومات الخاصة به.
لاحظ أنه لا يتخلى عن مسارات SIMT مع NVVM/LLVM وPTX تمامًا؛ عندما يحتاجها المطورون، يمكنهم كتابة النوى المناسبة. ومع ذلك، عندما يحتاجون إلى استخدام النوى الموترة، يجب عليهم كتابة نواة البلاط.
بلاط CUDA: كيف يعمل؟
في وسط مكدس CUDA Tile الجديد يوجد CUDA Tile IR، وهي مجموعة تعليمات افتراضية تلعب نفس الدور لأحمال عمل التجانب التي يلعبها تنفيذ الخيط المتوازي (PTX) لنواة SIMT. في مكدس CUDA التقليدي، يعمل PTX بمثابة تجريد محمول للبرامج الموجهة نحو الخيوط والتي تضمن استمرار نواة SIMT عبر أجيال GPU. تم تصميم CUDA Tile IR لتوفير نفس الاستقرار طويل المدى للحسابات القائمة على التجانب: فهو يحدد كتل التجانب وعلاقاتها والعمليات التي تحولها، ولكنه يخفي تفاصيل التنفيذ التي يمكن أن تتغير من عائلة GPU إلى أخرى.
يصبح ISA الافتراضي هذا أيضًا هدفًا للمترجمين وأطر العمل واللغات الخاصة بالمجال التي ترغب في استغلال دلالات مستوى التجانب. يمكن الآن لمنشئي الأدوات الذين قاموا سابقًا بإنشاء PTX لـ SIMT إنشاء واجهات خلفية متوازية تنبعث منها Tile IR لأحمال العمل الموجهة نحو الموتر. يأخذ وقت التشغيل Tile IR كمدخل ويعين العمل لخطوط أنابيب الأجهزة، ومحركات التوتر، وأنظمة الذاكرة بطريقة تعمل على زيادة الأداء إلى الحد الأقصى دون تعريض التباين على مستوى الجهاز للمبرمج.
بالإضافة إلى Tile IR نفسه، يقدم CUDA 13.1 مكونًا رئيسيًا آخر لإضفاء الحيوية على CUDA Tile: cuTile Python، وهي لغة خاصة بالمجال تسمح للمطورين بتأليف نواة موجهة للمصفوفة والبلاط مباشرةً في Python.
في الوقت الحالي، تركز جهود التطوير بشكل أساسي على الخوارزميات المرتكزة على الذكاء الاصطناعي، لكن Nvidia تخطط لتوسيع الوظائف والميزات والأداء بمرور الوقت، بالإضافة إلى تقديم تطبيق C++ في الإصدارات القادمة. من المؤكد أن برمجة البلاط نفسها لا تقتصر على الذكاء الاصطناعي، بل إنها مصممة كتجريد للأغراض العامة. مع تطور CUDA Tile من Nvidia، يمكن تطبيقه على مجموعة واسعة من التطبيقات، بما في ذلك عمليات المحاكاة العلمية (على البنيات التي تدعم الدقة المطلوبة)، ومعالجة الإشارات والصور/الفيديو، والعديد من أعباء عمل HPC التي تحلل المشكلات إلى حسابات قائمة على الكتلة.
في إصداره الأولي، يقتصر دعم CUDA Tile على وحدات معالجة الرسومات من فئة Blackwell ذات الإمكانات الحسابية 10.x و12.x، لكن الإصدارات المستقبلية ستجلب الدعم “لمزيد من البنى” على الرغم من أنه من غير الواضح ما إذا كنا نتحدث عن الجيل السابق من Hopper أو الجيل التالي من Rubin.
تمهيد الطريق لروبن، فاينمان، وما بعده
مع CUDA Tile، تقوم Nvidia بإعادة تنظيم نموذج برنامج CUDA حول أنماط التنفيذ القائمة على الموتر والتي تهيمن على أعباء العمل الحديثة. سوف يتعايش بلاط CUDA التقليدي مع نموذج SIMT المثبت، حيث لا تستخدم جميع أحمال العمل الرياضيات الموترية على نطاق واسع، على الرغم من أن اتجاه تطوير الصناعة أكثر أو أقل وضوحًا، لذا فإن تركيز Nvidia سيتبعه.
يوفر CUDA Tile IR من Nvidia التجريد الذي يمكّن الاستقرار المعماري اللازم للأجيال القادمة من الأجهزة التي تركز على الموتر، في حين توفر cuTile Python (واللغات المماثلة)، بالإضافة إلى الأدوات المحسنة، مسارات عملية للمطورين للانتقال من سير العمل الثقيل لـ SIMT.
إلى جانب ميزات التقسيم الموسعة، وتحسينات مكتبة الرياضيات، وأدوات تصحيح الأخطاء المحسنة، يمثل CUDA 13.1 علامة بارزة في استراتيجية Nvidia طويلة المدى: التخلص من تعقيد الأجهزة وتمكين قابلية التوسع السلس للأداء عبر كل جيل من وحدات معالجة الرسومات.

التعليقات