آموزش پیشرفته برنامه‌نویسی موازی GPU با CUDA: (سخت‌افزار و نرم‌افزار) - آخرین آپدیت

دانلود Mastering GPU Parallel Programming with CUDA: ( HW & SW )

نکته: ممکن هست محتوای این صفحه بروز نباشد ولی دانلود دوره آخرین آپدیت می باشد.
نمونه ویدیوها:
توضیحات دوره:

بهینه‌سازی و تحلیل عملکرد در محاسبات با کارایی بالا (HPC) با GPU و CUDA

درک جامع معماری GPU در مقابل CPU

  • یادگیری تاریخچه واحدهای پردازش گرافیکی (GPU) تا جدیدترین محصولات
  • درک ساختار داخلی GPU
  • آشنایی با انواع مختلف حافظه‌ها و تأثیر آن‌ها بر عملکرد
  • درک جدیدترین فناوری‌ها در اجزای داخلی GPU
  • آشنایی با اصول برنامه‌نویسی CUDA بر روی GPU
  • شروع برنامه‌نویسی GPU با استفاده از CUDA در هر دو محیط ویندوز و لینوکس
  • درک کارآمدترین روش‌ها برای موازی‌سازی

پروفایلینگ و تنظیم عملکرد

بهره‌گیری از حافظه اشتراکی (Shared Memory)

این دوره عملی به شما می‌آموزد چگونه از قدرت پردازش موازی عظیم GPU‌های مدرن با CUDA بهره‌مند شوید. با اصول سخت‌افزار GPU شروع می‌کنید، تکامل معماری‌های کلیدی (فرمی → پاسکال → ولتا → آمپر → هاپر) را دنبال می‌کنید و از طریق لابراتوارهای کدنویسی همراه، نحوه نوشتن، پروفایل کردن و بهینه‌سازی کرنل‌های با کارایی بالا را فرا می‌گیرید.

این یک منبع آموزشی مستقل است. این دوره توسط شرکت NVIDIA حمایت، تأیید یا وابسته نیست. "CUDA"، "Nsight" و نام‌های رمز معماری، علائم تجاری NVIDIA هستند و در اینجا تنها به عنوان ارجاعات واقعی استفاده می‌شوند.

آنچه خواهید آموخت:

  • مبانی GPU در مقابل CPU – چرایی برتری GPU در بارهای کاری پردازش موازی داده.
  • پیشرفت‌های طراحی نسل به نسل – ویژگی‌های سخت‌افزاری که بیشترین تأثیر را بر عملکرد دارند.
  • نصب مجموعه ابزار CUDA – ویندوز، لینوکس و WSL، به علاوه بررسی‌های اولیه برای اطمینان از صحت عملکرد.
  • مفاهیم اصلی CUDA – رشته‌ها (Threads)، بلوک‌ها (Blocks)، شبکه‌ها (Grids) و سلسله مراتب حافظه، با لابراتوارهای عملی مانند جمع برداری.
  • پروفایلینگ و تنظیم با Nsight Compute / nvprof – اندازه‌گیری اشغال (Occupancy)، پنهان‌سازی تأخیر (Latency Hiding) و رفع تنگناها (Bottlenecks).
  • اندیس‌گذاری دوبعدی برای ماتریس‌ها – نوشتن کرنل‌های کارآمد برای وظایف جبر خطی دنیای واقعی.
  • دفترچه راهنمای بهینه‌سازی – مدیریت داده‌های غیر توان دویی، بهره‌گیری از حافظه اشتراکی، حداکثر کردن پهنای باند و به حداقل رساندن واگرایی warp.
  • اشکال‌زدایی قوی و مدیریت خطا – استفاده از بررسی‌های API زمان اجرا برای ارائه کد آماده تولید.

در پایان، قادر خواهید بود کرنل‌های CUDA را طراحی، تحلیل و بهینه کنید که به طور کارآمد بر روی GPU‌های امروزی اجرا می‌شوند – و شما را برای مقابله با بارهای کاری سنگین علمی، مهندسی و هوش مصنوعی مجهز می‌سازد.

پیش‌نیازها:

  • مبانی زبان C و C++
  • مبانی لینوکس و ویندوز
  • مبانی معماری کامپیوتر

سرفصل ها و درس ها

مقدمه‌ای بر سخت‌افزار GPUهای انویدیا Introduction to the Nvidia GPUs hardware

  • GPU در مقابل CPU (بسیار مهم) GPU vs CPU (very important)

  • تاریخچه انویدیا (چگونه انویدیا سلطه بر بخش GPU را آغاز کرد) NVidia's history (How Nvidia started dominating the GPU sector)

  • ارتباط معماری‌ها و نسل‌ها [Hopper, Ampere, GeForce و Tesla] Architectures and Generations relationship [Hopper, Ampere, GeForce and Tesla]

  • چگونه معماری و نسل را بشناسیم How to know the Architecture and Generation

  • تفاوت بین GPU و چیپ GPU The difference between the GPU and the GPU Chip

  • معماری‌ها و چیپ‌های مربوطه The architectures and the corresponding chips

  • معماری‌های GPU انویدیا از Fermi تا Hopper Nvidia GPU architectures From Fermi to hopper

  • پارامترهای مورد نیاز برای مقایسه بین معماری‌های مختلف Parameters required to compare between different Architectures

  • عملیات دقت نیمه، تکی و دوگانه Half, single and double precision operations

  • قابلیت محاسباتی و استفاده از GPUها Compute capability and utilizations of the GPUs

  • قبل از خواندن هر وایت پیپر!! این را ببینید Before reading any whitepapers !! look at this

  • Volta+Ampere+Pascal+SIMD (رد نکنید) Volta+Ampere+Pascal+SIMD (Don't skip)

نصب CUDA و برنامه‌های دیگر Installing Cuda and other programs

  • چه ویژگی‌هایی با کیت ابزار CUDA نصب می‌شوند؟ What features installed with the CUDA toolkit?

  • نصب CUDA بر روی ویندوز Installing CUDA on Windows

  • نصب WSL برای استفاده از لینوکس بر روی سیستم عامل ویندوز Installing WSL to use Linux on windows OS.

  • نصب کیت ابزارهای CUDA بر روی لینوکس Installing Cuda toolkits on Linux

مقدمه‌ای بر برنامه‌نویسی CUDA Introduction to CUDA programming

  • مخزن گیت‌هاب دوره The course github repo

  • نگاشت نرم‌افزار از CUDA به سخت‌افزار + معرفی CUDA Mapping SW from CUDA to HW + introducing CUDA.

  • 001 برنامه Hello World (تردها - بلاک‌ها) 001 Hello World program (threads - Blocks)

  • کامپایل CUDA در لینوکس Compiling Cuda on Linux

  • 002 برنامه Hello World (شناسه Warp) 002 Hello World program ( Warp_IDs)

  • 003: جمع برداری + مراحل هر پروژه CUDA 003 : Vector addition + the Steps for any CUDA project

  • 004: جمع برداری + ایندکس‌گذاری بلاک‌ها و تردها + عملکرد GPU 004 : Vector addition + blocks and thread indexing + GPU performance

  • 005 سطوح موازی‌سازی - جمع برداری با بردارهای بسیار بزرگ 005 levels of parallelization - Vector addition with Extra-large vectors

پروفایلینگ Profiling

  • استعلام خصوصیات دستگاه با استفاده از APIهای زمان اجرا Query the device properties using the Runtime APIs

  • Nvidia-smi و تنظیمات آن (کاربر لینوکس) Nvidia-smi and its configurations (Linux User)

  • اشغال (Occupancy) و پنهان‌سازی تأخیر (Latency hiding) GPU The GPU's Occupancy and Latency hiding

  • بلاک‌های فعال تخصیص یافته به ازای هر SM (مهم) Allocated active blocks per SM (important)

  • چند بلاک را می‌توانیم به طور همزمان به ازای هر SM اجرا کنیم؟ how many blocks can we run concurrently per SM?

  • شروع با nsight compute (مسئله اول) Starting with the nsight compute (first issue)

  • تمام ابزارهای پروفایلینگ از انویدیا (Nsight systems - compute - nvprof ...) All profiling tools from NVidia (Nsight systems - compute - nvprof ...)

  • APIهای بررسی خطا Error checking APIs

  • تحلیل عملکرد Nsight Compute با استفاده از خط فرمان Nsight Compute performance using command line analysis

  • Nsight Compute گرافیکی (ویندوز و لینوکس) Graphical Nsight Compute (windows and linux)

تحلیل عملکرد برای برنامه‌های قبلی Performance analysis for the previous applications

  • تحلیل عملکرد Performance analysis

  • جمع برداری با اندازه‌ای که توان 2 نیست!!! مهم Vector addition with a size not power of 2 !!! important

ایندکس‌گذاری دوبعدی 2D Indexing

  • جمع ماتریس‌ها با استفاده از 2 بعدی بلاک‌ها و تردها Matrices addition using 2D of blocks and threads

  • چرا نرخ برخورد L1 صفر است؟ Why L1 Hit-rate is zero ?

حافظه اشتراکی + واگرایی Warp Shared Memory + Warp Divergence

  • حافظه اشتراکی The shared memory

  • مسابقه 1 Quiz 1

  • واگرایی Warp Warp Divergence

ابزارهای اشکال‌زدایی Debugging tools

  • اشکال‌زدایی با استفاده از ویژوال استودیو (مهم) 1 Debugging using visual studio (important) 1

کاهش برداری (Vector Reduction) Vector Reduction

  • کاهش برداری فقط با استفاده از حافظه سراسری (baseline) Vector Reduction using global memory only (baseline)

  • درک کد و پروفایلینگ کاهش برداری Understanding the code and the profiling of the vector reduction

  • بهینه‌سازی کاهش برداری (حذف فیلتر) Optimizing the vector reduction (removing the filter)

  • شرایط رقابت (Race Condition) و گزینه اشکال‌زدایی The Race Condition and the debugging option

  • بهینه‌سازی استفاده از تردها در کاهش برداری Optimizing the thread utilizations on vector reduction

  • بهینه‌سازی با استفاده از حافظه اشتراکی و unrolling Optimization using shared memory and unrolling

  • بهینه‌سازی عملیات Shuffle Shuffle operations optimizations

مدل Roofline Roofline model

  • تحلیل Roofline: (برنامه‌های با محدودیت محاسباتی و حافظه) Roofline Analysis :(Compute and Memory bounds apps)

ضرب ماتریس‌ها (امتیاز اضافی) Matrix Multiplication (Bonus)

  • پیاده‌سازی ساده ضرب ماتریس‌ها Naive implementation of the matrix multiplication

  • بهینه‌سازی ضرب ماتریس‌ها با استفاده از حافظه اشتراکی Optimize the Matrix Multiplication using the shared memory

  • بهینه‌سازی MM با استفاده از float4 (مهم) Optimization of the MM using float4 (important)

  • کاشی‌کاری (Tiling) در ضرب ماتریس‌ها Tiling in matrix multiplication

  • هسته‌های تنسور (معرفی) The Tensor cores (introduction)

  • ارزیابی عملی هسته‌های تنسور Practical evaluation of the tensor cores

  • برنامه‌نویسی هسته‌های تنسور با استفاده از APIهای WMMA Programming the Tensor cores using WMMA APIs

  • مثال عملی روی APIهای WMMA Practical example on the WMMA APIs

  • برنامه‌نویسی هسته‌های تنسور با استفاده از کتابخانه CUBlas Programming the Tensor cores using CUBlas library

نمایش نظرات

آموزش پیشرفته برنامه‌نویسی موازی GPU با CUDA: (سخت‌افزار و نرم‌افزار)
جزییات دوره
23 hours
57
Udemy (یودمی) Udemy (یودمی)
(آخرین آپدیت)
1,984
- از 5
دارد
دارد
دارد
Hamdy egy
جهت دریافت آخرین اخبار و آپدیت ها در کانال تلگرام عضو شوید.

Google Chrome Browser

Internet Download Manager

Pot Player

Winrar

Hamdy egy Hamdy egy

دستیار پژوهشی