لطفا جهت اطلاع از آخرین دوره ها و اخبار سایت در
کانال تلگرام
عضو شوید.
آموزش برنامهنویسی چند هستهای و GPGPU
- آخرین آپدیت
دانلود Multicore and GPGPU Programming
نکته:
ممکن هست محتوای این صفحه بروز نباشد ولی دانلود دوره آخرین آپدیت می باشد.
نمونه ویدیوها:
توضیحات دوره:
دوره «برنامهنویسی چند هستهای و GPGPU» درک بنیادی از برنامهنویسی موازی را با تمرکز بر توسعه برنامههای چندرشتهای با کارایی بالا در محیطهای CPU و GPU فراهم میکند. این دوره با مرور معماری پردازندههای چند هستهای، مکانیزمهای حافظه نهان (Caching) و سیستمهای دسترسی غیریکسان به حافظه (NUMA) آغاز شده و دانشجویان مفاهیم ضروری برنامهنویسی حافظه مشترک، تکنیکهای همگامسازی و استفاده از قفلها (Locks) برای تضمین یکپارچگی دادهها در رشتهها را فرا میگیرند.
در ادامه، این دوره به طراحی ساختارهای داده حافظه مشترک و معرفی مفاهیم پیشرفته همگامسازی، از جمله همگامسازی تنبل (Lazy Synchronization) میپردازد که برای برنامههای همزمان مقیاسپذیر و کارآمد حیاتی است. علاوه بر این، دانشجویان معماری و مدل برنامهنویسی واحدهای پردازش گرافیکی برای کاربردهای عمومی (GPGPUs) را بررسی کرده و برنامهنویسی CUDA را برای بهرهگیری از موازیسازی GPU در وظایف محاسباتی سنگین میآموزند. در پایان دوره، دانشجویان در بهینهسازی برنامههای چندرشتهای و چند هستهای، توازن بار کاری بین CPU و GPU برای دستیابی به توان عملیاتی بالا و بهرهوری بهینه از منابع مهارت مییابند. این دوره برای کسانی که هدفشان کسب تخصص در محاسبات با کارایی بالا (HPC) و برنامهنویسی موازی برای سیستمهای مدرن مبتنی بر GPU و چند هستهای است، ضروری است.
سرفصل ها و درس ها
معرفی دوره
Course Introduction
ویدیو معرفی دوره
Course Introductory Video
آشنایی با مدرس: دکتر گارگی پرابهو
Meet Your Instructor - Dr. Gargi Prabhu
آشنایی با مدرس: دکتر کونال کورگاونکار
Meet Your Instructor - Dr. Kunal Korgaonkar
ضبط جلسه زنده هفته اول برنامهنویسی چند هستهای و GPGPU
Recording of Multicore and GPGPU Programming: Week 1 - Live Session on 25-05-23 18:32:50 [47:25]
آشنایی با برنامهنویسی موازی و چند هستهای
Introduction to Parallel and Multicore Programming
ضرورت افزایش مداوم کارایی
Need for Ever-Increasing Performance
سیستمهای موازی و برنامههای موازی
Parallel Systems and Parallel Programs
سیستمهای همزمان، موازی و توزیعشده
Concurrent, Parallel, Distributed Systems
انواع موازیسازی: موازیسازی دادهها، وظایف و خط لوله (Pipeline)
Types of Parallelism: Data, Task and Pipeline Parallelism
شتاب (Speedup) و کارایی
Speedup and Efficiency
قانون آمدال
Amdahl’s Law
قانون گوستافسون
Gustafson’s Law
مقیاسپذیری در سیستمهای موازی
Scalability in Parallel Systems
هزینه موازیسازی
Cost of Parallelisation
منابع سربار در برنامههای موازی
Sources of Overhead in Parallel Programs
زمانبندی برنامههای موازی: روشها و بهترین تجربیات
Timing Parallel Programs: Methods and Best Practices
کارایی GPU
GPU Performance
معماری پردازندههای چند هستهای و مکانیزمهای حافظه نهان
Multicore Processor Architectures and Caching Mechanisms
معماری فون نویمان
The Von Neumann Architecture
پروسهها، چندوظیفگی و رشتهها
Processes, Multitasking, and Threads
مبانی حافظه نهان (Caching)
The Basics of Caching
حافظه مجازی
Virtual Memory
موازیسازی در سطح دستورالعمل
Instruction-Level Parallelism
چند رشتهای سختافزاری
Hardware Multithreading
دستهبندی کامپیوترهای موازی
Classifications of Parallel Computers
سیستمهای SIMD و MIMD
SIMD and MIMD Systems
شبکههای اتصال: سیستمهای حافظه مشترک
Interconnection Networks: Shared Memory Systems
شبکههای اتصال: سیستمهای حافظه توزیعشده
Interconnection Networks: Distributed Memory Systems
ضبط جلسه زنده هفته دوم برنامهنویسی چند هستهای و GPGPU
Recording of Multicore and GPGPU Programming: Week 2 - Live Session on 25-05-30 18:35:08 [02:05]
مرور معماری GPGPU و مدل برنامهنویسی
GPGPU Architecture and Programming Model Overview
ضبط جلسه زنده هفته سوم برنامهنویسی چند هستهای و GPGPU
Recording of Multicore and GPGPU Programming: Week 3 - Live Session on 25-06-06 18:31:21 [44:50]
مدل اجرای Cuda
Cuda Execution Model
آشنایی با مدل اجرای CUDA
Introduction to CUDA Execution Model
وارپها (Warps) و بلوکهای رشته
Warps and Thread Blocks
واگرایی وارپ (Warp Divergence)
Warp Divergence
افراز منابع
Resource Partitioning
پنهانسازی تاخیر (Latency Hiding)
Latency Hiding
میزان اشغال (Occupancy)
Occupancy
همگامسازی
Synchronization
مقیاسپذیری
Scalability
نمایان کردن موازیسازی
Exposing Parallelism
بررسی وارپهای فعال با Nvprof
Checking Active Warps with Nvprof
بررسی عملیات حافظه با Nvprof
Checking Memory Operations with Nvprof
جلوگیری از واگرایی شاخه
Avoiding Branch Divergence
مسئله کاهش موازی (Parallel Reduction) و واگرایی رشته
The Parallel Reduction Problem and Thread Divergence
بهبود واگرایی در کاهش موازی
Improving Divergence in Parallel Reduction
ضبط جلسه زنده هفته چهارم برنامهنویسی چند هستهای و GPGPU
Recording of Multicore and GPGPU Programming: Week 4 - Live Session on 25-06-13 18:32:39 [49:37]
مدل حافظه CUDA، استریمها و همزمانی
CUDA Memory Model and Streams and Concurrency
آشنایی با مدل حافظه CUDA
Introduction to CUDA Memory Model
تخصیص و آزادسازی حافظه
Memory Allocation and Deallocation
حافظه Zero Copy
Zero Copy Memory
آدرسدهی مجازی یکپارچه و حافظه یکپارچه
Unified Virtual Addressing and Unified Memory
دسترسی تراز شده و ادغام شده (Coalesced Access)
Aligned and Coalesced Access
حافظه مشترک CUDA
CUDA Shared Memory
بانکهای حافظه مشترک و حالت دسترسی
Shared Memory Banks and Access Mode
پیکربندی مقدار حافظه مشترک
Configuring the Amount of Shared Memory
همگامسازی
Synchronisation
استریمهای CUDA
CUDA Streams
زمانبندی استریم و اولویتها
Stream Scheduling and Priorities
ضبط جلسه زنده هفته پنجم برنامهنویسی چند هستهای و GPGPU
Recording of Multicore and GPGPU Programming: Week 5 - Live Session on 25-06-20 18:31:59 [47:36]
برنامهنویسی حافظه مشترک با Pthreads
Shared-Memory Programming with Pthreads
پروسهها، رشتهها و Pthreads
Processes, Threads and Pthreads
سدهای synchronisation و متغیرهای شرطی
Barriers and Condition Variables
حافظههای نهان، پایداری نهان و اشتراک کاذب (False Sharing)
Caches, Cache-Coherence and False Sharing
ضبط جلسه زنده هفته ششم برنامهنویسی چند هستهای و GPGPU
Recording of Multicore and GPGPU Programming: Week 6 - Live Session on 25-06-27 18:38:36 [43:53]
برنامهنویسی حافظه توزیعشده با MPI
Distributed Memory Programming with MPI
آشنایی با MPI
Introduction to MPI
راهاندازی MPI و توابع ارتباطدهنده
MPI Setup and Communicator Functions
مدل SPMD و ارتباطات
SPMD and Communication
اشتباهات رایج و خطرات احتمالی
Potential Pitfalls
الگوریتم ساده مرتبسازی سریال
Simple Serial Sorting Algorithm
نمایش نظرات