تسلط به برنامهنویسی موازی GPU با CUDA: (سختافزار و نرمافزار)
✅ سرفصل و جزئیات آموزش
آنچه یاد خواهید گرفت:
- درک جامع از معماری GPU در مقابل CPU
- یادگیری تاریخچه واحد پردازش گرافیکی (GPU) تا جدیدترین محصولات
- درک ساختار داخلی GPU
- درک انواع مختلف حافظهها و چگونگی تأثیر آنها بر عملکرد
- درک جدیدترین فناوریها در اجزای داخلی GPU
- درک مبانی برنامهنویسی CUDA روی GPU
- شروع برنامهنویسی GPU با استفاده از CUDA روی هر دو سیستمعامل ویندوز و لینوکس
- درک کارآمدترین روشهای موازیسازی
- پروفایلینگ و تنظیم عملکرد
- استفاده از حافظه اشتراکی
پیشنیازهای دوره
- مبانی C و ++C
- مبانی لینوکس و ویندوز
- مبانی معماری کامپیوتر
توضیحات دوره
این دوره عملی به شما آموزش میدهد که چگونه قدرت عظیم پردازش موازی GPUهای مدرن را با CUDA آزاد کنید. شما با مبانی سختافزار GPU شروع میکنید، تحول معماریهای پرچمدار (Fermi → Pascal → Volta → Ampere → Hopper) را ردیابی میکنید و از طریق آزمایشگاههای همراه با کدنویسی یاد میگیرید که چگونه هستههای پردازشی با کارایی بالا را بنویسید، پروفایل کنید و بهینهسازی نمایید.
آنچه به آن مسلط خواهید شد:
- اصول GPU در مقابل CPU – دلایل سلطه GPUها بر بارهای کاری موازی دادهمحور
- پیشرفتهای طراحی نسلی – ویژگیهای سختافزاری که بیشترین اهمیت را برای عملکرد دارند.
- نصب CUDA Toolkit – ویندوز، لینوکس و WSL، به همراه بررسیهای سلامت اجرای اولیه
- مفاهیم اصلی CUDA – آموزش threads ، بلوکها، گریدها و سلسلهمراتب حافظه که با آزمایشگاههایی مانند جمعبرداری بردار ساخته میشود.
- پروفایلینگ و تنظیم با Nsight Compute / nvprof – اندازهگیری اشغال، پنهانسازی تأخیر و رفع گلوگاهها
- نمایهسازی دو بعدی برای ماتریسها – نوشتن هستههای کارآمد برای کارهای جبر خطی دنیای واقعی
- راهنمای بهینهسازی – مدیریت دادههای غیر توانی از دو، استفاده از حافظه اشتراکی، حداکثرسازی پهنای باند و به حداقل رساندن واگرایی وارپ
- عیبیابی و مدیریت خطای قوی – استفاده از بررسیهای Runtime-API برای ارائه کد آماده تولید
در پایان، شما قادر خواهید بود هستههای CUDA را طراحی، تحلیل و ریزتنظیم کنید که به طور کارآمد روی GPUهای امروزی اجرا میشوند – این مهارت شما را برای مقابله با بارهای کاری سنگین علمی، مهندسی و هوش مصنوعی تجهیز میکند.
این دوره برای چه کسانی مناسب است؟
- برای هر فرد علاقهمند به GPU و CUDA مانند دانشجویان مهندسی، پژوهشگران و هر فرد دیگر
تسلط به برنامهنویسی موازی GPU با CUDA: (سختافزار و نرمافزار)
-
GPU در مقابل CPU (بسیار مهم) 20:49
-
تاریخچه انویدیا (چگونگی شروع سلطه انویدیا بر بخش GPU) 05:18
-
رابطه معماریها و نسلها [هاپر، آمپر، جیفورس و تسلا] 16:07
-
چگونه معماری و نسل را تشخیص دهیم؟ 06:56
-
تفاوت بین GPU و چیپ GPU 04:50
-
معماریها و چیپهای متناظر 05:25
-
معماریهای GPU انویدیا از فرمی تا هاپر 12:24
-
پارامترهای لازم برای مقایسه بین معماریهای مختلف 24:05
-
عملیات با دقت نیمه، تکی و دوگانه 06:26
-
قابلیت محاسباتی و میزان استفاده از GPUها 08:30
-
قبل از خواندن هر وایتپیپر (مقاله فنی)!! به این نگاه کنید 08:42
-
ولتا + آمپر + پاسکال + SIMD (رد نکنید) 52:08
-
چه قابلیتهایی همراه با CUDA Toolkit نصب میشود؟ 06:38
-
نصب CUDA روی ویندوز 04:48
-
نصب WSL برای استفاده از لینوکس روی سیستمعامل ویندوز 06:26
-
نصب CUDA Toolkit روی لینوکس 03:46
-
نگاشت نرمافزار از CUDA به سختافزار + معرفی CUDA. 12:49
-
برنامه Hello World (threads - بلوکها) 20:39
-
کامپایل CUDA روی لینوکس 09:54
-
برنامه Hello World (شناسههای وارپ) 09:03
-
جمعبرداری بردار + مراحل هر پروژه CUDA 22:30
-
جمعبرداری بردار + نمایهسازی بلوک و thread + عملکرد GPU 18:21
-
سطوح موازیسازی - جمعبرداری بردار با بردارهای بسیار بزرگ 18:31
-
استعلام خصوصیات دستگاه با استفاده از APIهای زمان اجرا 18:46
-
Nvidia-smi و پیکربندیهای آن (کاربر لینوکس) 27:30
-
نرخ اشغال و پنهانسازی تأخیر در GPU 52:31
-
بلوکهای فعال تخصیصیافته به ازای هر SM (مهم) 16:54
-
چند بلوک میتوانیم به صورت همزمان در هر SM اجرا کنیم؟ None
-
شروع کار با Nsight Compute (مسئله اول) 09:01
-
تمام ابزارهای پروفایلینگ از انویدیا (Nsight Systems - Compute - nvprof ...) 04:35
-
APIهای بررسی خطا 30:16
-
عملکرد Nsight Compute با استفاده از تحلیل خط فرمان 39:21
-
Nsight Compute گرافیکی (ویندوز و لینوکس) 59:00
-
تحلیل عملکرد 32:41
-
جمعبرداری بردار با اندازه غیر توانی از دو !!! مهم 11:58
-
جمع ماتریسها با استفاده از آرایش دو بعدی بلوکها و threads 51:02
-
چرا نرخ برخورد L1 صفر است؟ 24:38
-
حافظه اشتراکی 34:49
-
کوئیز 1 None
-
واگرایی وارپ 15:17
-
عیبیابی با استفاده از ویژوال استودیو (مهم) 1 40:12
-
کاهش بردار با استفاده فقط از حافظه سراسری (خط پایه) 01:03:06
-
درک کد و پروفایلینگ کاهش بردار 40:02
-
بهینهسازی کاهش بردار (حذف فیلتر) 22:45
-
شرایط مسابقه و گزینه عیبیابی 24:38
-
بهینهسازی میزان استفاده از thread در کاهش بردار 37:34
-
بهینهسازی با استفاده از حافظه اشتراکی و بازکردن حلقه 32:20
-
بهینهسازیهای عملیات درهمسازی 49:09
-
تحلیل سقف عملکرد: (اپلیکیشن های محدود به محاسبه و حافظه) 43:14
-
پیادهسازی ساده ضرب ماتریس 01:01:11
-
بهینهسازی ضرب ماتریس با استفاده از حافظه اشتراکی 59:37
-
بهینهسازی ضرب ماتریس با استفاده از float4 (مهم) 53:12
-
تایلبندی در ضرب ماتریس 21:09
-
هستههای تنسور (معرفی) 20:04
-
ارزیابی عملی هستههای تنسور 09:11
-
برنامهنویسی هستههای تنسور با استفاده از APIهای WMMA 43:07
-
مثال عملی از APIهای WMMA 11:06
-
برنامهنویسی هستههای تنسور با استفاده از کتابخانه cuBLAS 17:57
مشخصات آموزش
تسلط به برنامهنویسی موازی GPU با CUDA: (سختافزار و نرمافزار)
- تاریخ به روز رسانی: 1404/12/10
- سطح دوره:متوسط
- تعداد درس:58
- مدت زمان :23:03:01
- حجم :16.64GB
- زبان:دوبله زبان فارسی
- دوره آموزشی:AI Academy