پرش به محتوای اصلی
پرش به محتوای مقاله

چگونه Tile C++ در CUDA 13.3 مدیریت دستی رشته‌ها را در GPU حذف کرد؟

·۶ خرداد ۱۴۰۵۲ دقیقه مطالعه
اشتراک‌گذاری

اگر برنامه‌نویس C++ هستید و برای رسیدن به حداکثر سرعت GPU، ساعت‌ها وقت صرف مدیریت دستی رشته‌ها (Threads) می‌کنید، خبر خوب این است که این دوران به پایان رسیده است. حالا دیگر نیازی نیست برای رسیدن به پیکِ عملکرد، تک‌تک وظایف هر رشته را به صورت دستی کدنویسی کنید.

تا پیش از این، توسعه‌دهندگان از مدل SIMT (Single Instruction, Multiple Threads) استفاده می‌کردند؛ یعنی هر رشته باید دقیقاً می‌دانست چه کاری انجام دهد. این کار شبیه مدیریت ارتشی از هزاران کارگر است که هر کدام باید دقیقاً بدانند چه پیچ را بچرخانند. همان‌طور که در تحلیل‌های پیشین ما درباره‌ی بهینه‌سازی سخت‌افزاری مدل‌های زبانی اشاره کردیم، پیچیدگی این مدیریت همیشه مانع سرعت پیشرفت بوده است.

طبق اعلام انویدیا (NVIDIA) در ۲۶ مه ۲۰۲۶، ابزار CUDA Tile C++ وارد میدان شده است. این سیستم داده‌ها را به جای تک‌تک عناصر، به صورت آرایه‌های چندبعدی یا «کاشی» (Tiles) می‌بیند. این رویکرد — مثل این است که به جای دستور دادن به تک‌تک کارگران، کل پروژه را به بلوک‌های آماده تقسیم کنید و به هر تیم بسپارید. بر اساس مستندات developer.nvidia.com، این لایه جدید به طور خودکار هسته‌های تنسور و شتاب‌دهنده‌های حافظه مشترک را هدف قرار می‌دهد.

اجزای فنی کلیدی این به‌روزرسانی عبارت‌اند از:

  • tensor_span: اشاره‌گری به آرایه‌های چندبعدی، شبیه به std::mdspan در C++23.
  • partition_view: پوششی که آرایه‌ها را به تکه‌های با اندازه ثابت و بدون هم‌پوشانی تقسیم می‌کند.
  • ct::mma: تابعی تخصصی برای انجام ضرب ماتریسی و تجمع (Matrix Multiplication and Accumulation).

برای اجرای این هسته‌ها، شما به یک GPU با قابلیت محاسباتی ۸.۰ (معماری Ampere) یا جدیدتر و درایور NVIDIA R580 به بعد نیاز دارید.

A two-dimensional partition view of 8 x 24 partitioned into views of 4 x 8, and indexed by two-dimensional coordinates x and y. The first partition is (0,0), and the last partition is (1,2).

این تغییر یعنی توسعه‌دهندگان دیگر درگیر لوله‌کشی سخت‌افزاری نمی‌شوند. انویدیا با انتزاع جزئیات سخت‌افزاری، بدهی فنی (Technical Debt) مربوط به انتقال کدها به معماری‌های جدید را کاهش می‌دهد. شما می‌توانید یک بار کد را بنویسید و اجازه دهید کامپایلر آن را برای جدیدترین سخت‌افزارها بهینه کند.

گام بعدی شما

  • هنگام کامپایل با nvcc، از پرچم‌های -std=c++20 و --enable-tile استفاده کنید.
  • برای بررسی آمار کاشی‌ها و اندازه بلوک‌های انتخاب‌شده توسط کامپایلر، از NVIDIA Nsight Compute استفاده کنید.
  • کدهای قدیمی SIMT خود را با ساختار جدید Tile-based بازنویسی کنید تا بهره‌وری حافظه را افزایش دهید.

اما این تغییر در نرم‌افزار، تنها بخشی از استراتژی انویدیا برای تسلط بر بازار است؛ برای درک سخت‌افزاری این تحول، تحلیل ما درباره‌ی تراشه‌های Blackwell را بخوانید.

چرا این موضوع مهم است؟

این تحول با تکیه بر اعتبار مهندسی انویدیا، چرخه توسعه هسته‌های GPU را کوتاه‌تر می‌کند. نتیجه این است که مدل‌های هوش مصنوعی سریع‌تر بهینه شده و روی سخت‌افزارهای جدید اجرا می‌شوند.

این گزارش با خط‌لولهٔ خودکار دات‌هوش از منابع معتبر جهانی تدوین و زیر نظر تحریریه منتشر شده است. روش کار ما

گفتگو

پنج‌شنبه‌های هوش‌محور

بسته‌ی هفتگی دات‌هوش

۵ خبر، ۲ ابزار، ۱ پرامپت در هر شماره. به‌زودی راه‌اندازی می‌شود — هر پنج‌شنبه صبح.

خبر کلیدی
ابزار کاربردی
پرامپت حرفه‌ای
تحلیل پژوهش
به‌زودی
زاویه‌ی ایرانی
به‌زودی
تمرین این هفته
به‌زودی

راهنماهای دات‌هوش

راهنماهای کاربردیِ دات‌هوش برای کار با هوش مصنوعی — از همین‌جا شروع کنید:

دات‌هوش

راهنمای فارسی هوش مصنوعی — با نگاه به ایران

اخبار روزانه، معرفی ابزارها و مدل‌ها، و آموزشِ کار با هوش مصنوعی؛ همیشه با این پرسش که از ایران چه چیزی کار می‌کند و چه چیزی نه.