MarkTechPost آموزش عملی پروفایلینگ کرنل‌های GPU با Nsight Python منتشر کرده است — رابط پایتون متن‌باز انویدیا برای profilerهای کرنل. نسخه ۱.۱ این کتابخانه که هنوز روی PyPI قرار نگرفته، سه قابلیت جدید اضافه می‌کند: بک‌اند آزمایشی CUPTI، مدیریت صریح ابزارها و جمع‌کننده‌های اطلاعات سفارشی.

چه چیزی عوض می‌شود#

در نسخه ۱.۰، Nsight Python ابزار Nsight Compute را به فرآیند Python در حال اجرا متصل می‌کند و در Jupyter و Colab قابل استفاده است. نسخه ۱.۱ علاوه بر بک‌اند CUPTI، امکان مدیریت صریح ابزارها و تعریف جمع‌کننده‌های سفارشی را اضافه می‌کند. این نسخه هنوز به‌صورت commit در GitHub موجود است و روی PyPI منتشر نشده.

رویکرد اصلی کتابخانه این است: به‌جای اجرای اسکریپت زیر command line و گشتن در گزارش خروجی، کد مورد نظر را با nsight.annotate علامت‌گذاری می‌کنید، تابع benchmark را با nsight.analyze.kernel تزئین می‌کنید و خروجی را به‌صورت DataFrame پایتون دریافت می‌کنید — به‌ازای هر ناحیه علامت‌گذاری‌شده، هر پیکربندی و هر اجرا.

الزامات و نکات عملی#

  • Nsight Python به Nsight Compute نسخه 2026.2.1 یا جدیدتر نیاز دارد و آن را از طریق PATH پیدا می‌کند.
  • Colab نسخه قدیمی‌تری از ncu را از پیش نصب دارد، اما مخزن apt انویدیا در ایمیج آن موجود است؛ می‌توان نسخه 2026.3.1 را با apt-get نصب کرد.
  • بک‌اند CUPTI به cupti-python 13.4 نیاز دارد که کتابخانه libcuptI جدیدتری از آنچه torch در Colab پین کرده می‌خواهد.
  • ترتیب import مهم است: import nsight باید قبل از هرگونه مقداردهی اولیه CUDA انجام شود.

سناریوی آموزشی#

آموزش روی GPU رایگان T4 در Colab اجرا شده و مراحل زیر را پوشش می‌دهد: پروفایلینگ اولین کرنل، تعیین تعداد اجرای لازم برای یک اندازه‌گیری معتبر، سنجش اثر cache و clock control روی همان کرنل، جاروب اندازه‌های ماتریس در fp32 و fp16 با متریک TFLOP/s مشتق‌شده، استفاده از شمارنده‌های سخت‌افزاری برای تمایز کارهای compute-bound از memory-bound، اندازه‌گیری kernel fusion بر حسب بایت جابه‌جاشده، ثبت کلاک و دما در هر اجرا، و مقایسه بک‌اند CUPTI با Nsight Compute.

این خبر برای کسی که ایجنت می‌سازد یعنی چه#

Nsight Python یک ابزار profiling است، نه یک قابلیت جدید در مدل‌ها یا APIها. برای کسی که ایجنت و اتوماسیون می‌سازد، تغییر عملی چندانی ایجاد نمی‌کند — مگر اینکه مستقیماً روی بهینه‌سازی کرنل‌های CUDA کار کند. آنچه ممکن است مفید باشد، خروجی DataFrame است: اگر بخواهید نتایج profiling را در یک pipeline خودکار مصرف کنید (مثلاً برای انتخاب خودکار پیکربندی)، این قالب ساختارمند از یک گزارش متنی خام قابل‌استفاده‌تر است. اما نسخه ۱.۱ هنوز روی PyPI نیست، بک‌اند CUPTI آزمایشی است، و محدودیت‌های محیط Colab (نسخه torch پین‌شده، نیاز به نصب دستی ncu) یعنی برای استفاده در محیط‌های تولیدی هنوز کار زیادی لازم است.

منبع: MarkTechPost