تصور کنید یک اشتباه کوچک در شمارهگذاری (Indexing)، کل مجموعه دادههای شما را بدون هیچ هشدار کامپایلی نابود کند. اگر هنوز برای پورت کردن کدهای GPU به بازنویسی دستی تکیه میکنید، باید بدانید که دوران ریسکهای مرگبار در کدنویسی سطح پایین در حال پایان است.
انویدیا (NVIDIA) در ۳۰ آوریل ۲۰۲۶ سیستمی را معرفی کرد که با استفاده از عاملهای هوش مصنوعی (AI Agents)، فرآیند انتقال کرنلها از cuTile Python به cuTile.jl را کاملاً خودکار میکند. به نقل از وبسایت developer.nvidia.com، چالش اصلی در این مسیر، شکاف معنایی بین این دو زبان تخصصی است. در حالی که هر دو از انتزاع کاشیبندی شده استفاده میکنند، اما در نقاط حیاتی متفاوتاند: پایتون از شمارهگذاری صفر-پایه و چیدمان سطر-محور استفاده میکند، در حالی که جولیا (Julia) بر پایه شمارهگذاری یک-پایه و چیدمان ستون-محور است.
یک مدل زبانی بزرگ (Large Language Model) معمولی معمولاً این تفاوتهای ظریف را نادیده میگیرد و منجر به نتایجی میشود که کامپایلر قادر به تشخیص آنها نیست. برای حل این مشکل، تیم انویدیا یک مخزن دانش ساختاریافته در TileGym ایجاد کرد. این «مهارت» صرفاً یک پرامپت ساده نیست، بلکه مجموعهای از داراییهای تخصصی است:
- قوانین حیاتی: فهرستی از ۱۷ تله رایج و روشهای اصلاح آنها در مورد پخش (Broadcasting) و فرمهای حلقه.
- نگاشتهای API: جداول دوطرفهای برای تبدیل توابع پایتون به معادلهای جولیا (مثلاً تبدیل
ct.mmaبهmuladd). - اعتبارسنج Static: یک اسکریپت پایتون که الگوهای ضدبنیاد (Anti-patterns) را پیش از اجرای کد روی GPU شناسایی میکند.

بر اساس مستندات این پروژه، این رویکرد سیستماتیک، تلاشهای دستی را به یک جریان کاری تکرارپذیر تبدیل کرده است. برای مثال، در تبدیل یک عملیات ضرب ماتریسهای عمومی (GEMM)، این عامل تنها در ۴ دقیقه و با مصرف ۷۸ هزار توکن، کار را بدون هیچ دخالت انسانی به پایان رساند. در پوشش پیشین ما از معماریهای محاسباتی، دیدیم که چگونه مدیریت حافظه در سطح پایین، گلوگاه اصلی عملکرد است و حالا انویدیا با این ابزار، این گلوگاه را با هوش مصنوعی زاینده (Generative AI) میشکند.
این پروژه با موفقیت سه کرنل اصلی شامل جمع برداری، ضرب ماتریسی و Softmax را پورت کرد و نتایج آنها با دقت کامل در برابر مراجع CPU تایید شد. انویدیا با کدگذاری تخصص دامنه در سیستم کنترل نسخه (Version Control) به جای تکیه بر مهندسی پرامپت (Prompt Engineering)، نشان داد که چگونه میتوان کدهای سیستمی دقیق را در محیطهایی تولید کرد که کامپایلرهای سنتی در تشخیص خطاهای معنایی ناتواناند.
اما این تنها بخشی از پازل است؛ تأثیر این رویکرد بر آینده تراشههای Blackwell را در گزارش بعدی بررسی میکنیم.
گام بعدی شما
- بررسی مستندات TileGym برای درک نحوه تعریف «مهارتها» در جریانهای کاری عاملمحور.
- آزمایش تبدیل کرنلهای ساده پایتون به جولیا برای ارزیابی تفاوتهای چیدمان حافظه.
- دنبال کردن بهروزرسانیهای انویدیا در مورد ادغام این ابزار با کتابخانههای استاندارد CUDA.




گفتگو