
هندسة عكسية لقاموس تعليمات NVIDIA SASS وتدقيق النواة (kernel) والتعرف على الأنماط عبر معماريات GPU.
هندسة عكسية لـ NVIDIA SASS من النوى المتحكم بها إلى تدقيقات الإنتاج.
المقال 1 · المقال 2 · قاعدة المعرفة · مكتبة الأنماط · قاموس تعليمات SM120 · ملاحظات الترميز · ابدأ من هنا · هيكل المشروع · فصول نوى التنسور · المساهمة
SASS King هو مشروع منهجي للهندسة العكسية لـ NVIDIA SASS، وهي مجموعة التعليمات الأصلية لوحدة معالجة الرسوميات (GPU) المنبعثة داخل ملفات CUDA الثنائية المترجمة. يبدأ المشروع بأجهزة Blackwell الاستهلاكية SM120 / SM120a ويتوسع نحو مكتبة ISA شاملة عبر البنى ومكتبة أنماط بمرور الوقت.
الهدف عملي: مساعدة مهندس النوى على فتح تفريغ SASS، والتعرف على أنماط المترجم، وتحديد الهياكل ذات الصلة بالأداء، وربط الثنائي بقرارات التحسين على مستوى المصدر.
أكمل المشروع مكتبة الأنماط الأولية للمرحلة الثالثة: 29 توقيع SASS قابل لإعادة الاستخدام موثّقة الآن تحت patterns/، مع الاحتفاظ بـ knowledge/FINDINGS.md كمسار أدلة كامل. الخطوة الرئيسية التالية هي المرحلة الرابعة: تطبيق تلك الأنماط على نوى الإنتاج الحقيقية.
| إذا كنت تريد... | ابدأ من هنا | ثم اقرأ |
|---|---|---|
| فهم المشروع في 10 دقائق | docs/README.md | docs/START_HERE.md، ثم docs/PROJECT_STRUCTURE.md |
| إعادة إنتاج الأدلة | corpus/README.md | فصل واحد conclusion*.md، ثم تفريغ .sass الخاص به |
| العثور على مصدر الحقيقة | knowledge/FINDINGS.md | knowledge/SASS_INSTRUCTIONS_SM120.md، knowledge/encoding/README.md |
| التعرف على نمط في تفريغ جديد | patterns/README.md | صفحة patterns/NN-*.md المطابقة |
| بدء تدقيق إنتاج | production/README.md | صفحات PATTERN-NN المطابقة وأدلة المصدر |
| المساهمة بتصحيح أو تفريغ | CONTRIBUTING.md | docs/START_HERE.md |
المستودع منظم كخط أنابيب للأدلة:
corpus/ نوى محكومة وأدلة SASS خام
knowledge/ نتائج على مستوى المشروع، ملاحظات التعليمات، وملاحظات الترميز
patterns/ توقيعات تدقيق قابلة لإعادة الاستخدام من المرحلة الثالثة
production/ تدقيقات نوى حقيقية من المرحلة الرابعة
آخر عمل واسع النطاق للهندسة العكسية لـ SASS العامة المشابه في الروح كان لـ Jia et al. على Volta و Turing في 2018. لقد غيرت Ampere و Hopper و Blackwell مزيج التعليمات بشكل جوهري: مسارات النسخ غير المتزامن، عائلات نوى التنسور، تعليمات تحميل/تخزين المصفوفات، أشكال MMA المتناثرة والموزونة، وتدفقات السجلات الموحدة الجديدة.
يسد SASS King هذه الفجوة من خلال الجمع بين النوى الدقيقة المتحكم بها، وقراءة SASS الخام، والمسابير الزمنية، وتدقيقات نوى الإنتاج.
| المجال | الحالة | المكان |
|---|---|---|
| نوى تعليم SM120 | مكتمل من خلال النوى 01-12 | corpus/basics/01_vector_add/ إلى corpus/math_and_spills/12_register_spill/ |
| دراسات نوى التنسور | مكتمل حتى النواة 25 | corpus/tensor_cores/ |
| النتائج العامة | مصدر حقيقة نشط | knowledge/FINDINGS.md |
| قاموس تعليمات SM120 | نشط، مدعوم بالأدلة | knowledge/SASS_INSTRUCTIONS_SM120.md |
| نماذج الترميز | بدأت مع LDSM، STSM، QMMA | knowledge/encoding/ |
| التحقق المتبادل مع denvdis | تم المسح الأولي؛ فجوات في رموز التحكم الأعمق باقية | knowledge/DENVDIS_INTEGRATION.md |
| مكتبة الأنماط | نموذج أولي للمرحلة الثالثة مكتمل | patterns/ |
| تدقيقات الإنتاج | المرحلة التالية | production/ |
مكتبة الأنماط الرسمية هي الناتج الرئيسي للمرحلة الثالثة. تحوّل الأدلة المحلية لكل فصل إلى توقيعات تدقيق قابلة لإعادة الاستخدام، بحيث يمكن للتدقيق أن يستشهد بنمط مسمى بدلاً من إعادة كتابة مسار البحث الكامل في كل مرة.
تعتبر المرحلة الثالثة مكتملة لأن:
knowledge/FINDINGS.md؛patterns/README.md؛| عائلة الأنماط | أمثلة | المكان |
|---|---|---|
| حسابات نوى التنسور | سلاسل تراكم HMMA، QMMA، OMMA؛ بيانات وصفية متناثرة؛ أجزاء ضيقة | patterns/02-* إلى patterns/04-*، patterns/10-*، patterns/21-* |
| ذاكرة المصفوفات والنهايات | LDSM، STSM، خطوط أنابيب النسخ غير المتزامن، نهايات اختزال REDG | patterns/05-*، patterns/06-*، patterns/07-*، patterns/28-* |
| تدفق التحكم | التفرع/إعادة التقارب، حواف الحلقة الخلفية، مخارج مشروطة، مصائد باردة، استدعاءات محلية | patterns/08-*، patterns/14-*، patterns/16-*، patterns/26-*، patterns/29-* |
| الذاكرة والسجلات | ذاكرة عامة متجهة، انسكابات، تخزين مؤقت للذاكرة المشتركة، واصفات، تدفق سجلات موحدة | patterns/09-*، patterns/11-*، patterns/17-*، patterns/19-*، patterns/20-* |
| الحساب والجدولة | دمج FFMA، ثوابت، مسارات بطيئة MUFU، لوحات النتائج، إعادة تدوير العمر | patterns/12-*، patterns/18-*، patterns/22-*، patterns/23-*، patterns/24-* |
| جماعات الالتفاف | اختزالات الالتفاف، أساسيات الخلط/التصويت/المطابقة/المزامنة | patterns/01-*، patterns/25-* |
تشمل كل صفحة نمط:
استخدم patterns/README.md كفهرس مخصص للتدقيق. استخدم knowledge/FINDINGS.md عندما تحتاج إلى سياق البحث الأطول وراء نمط ما.
لا تدّعي المرحلة الثالثة أن كل سلوك NVIDIA SASS قد تم فك شفرته. إنها تؤسس طبقة أنماط SM120 / SM120a قابلة لإعادة الاستخدام كافية لبدء تدقيقات الإنتاج اليدوية. فك ترميز التخطيط الزمني، وتحديد مواضع بتات رموز التحكم الكاملة، وإعداد تقارير cubin الآلية، وإعادة التشغيل عبر البنى تظل أعمالاً مستقبلية.