جلسه ۷: انواع حافظه در GPU و CUDA، مساله دسترسی به حافظه Global، ضرب ماتریس

مطلع الانوار
مطلع الانوار
572 بار بازدید - 3 سال پیش - در این جلسه مدل حافظه
در این جلسه مدل حافظه (Memory Model) و محلی بودن داده‌ها (Data Locality) در GPUها و CUDA مطرح شدند. مساله‌ی دسترسی به حافظه‌ی عمومی GPUها (Global Memory Access) در برنامه‌های Memory Bound می‌تواند منجر به افت کارآیی شدید اجرای برنامه شود. تاثیر این مساله به کمک پارامتر نسبت محاسبه به دسترسی حافظه (Compute To Global Memory Access Ratio) مدل می‌شود که به کمک چند برنامه این معیار کمی برای بررسی مساله‌ی ازدحام دسترسی به حافظه (Memory Access Congestion) تبیین شد. پس از بیان مساله به عنوان راه حل این مشکل توضیح دادیم که انواع مختلفی از حافظه در GPUها و CUDA وجود دارند. به طور خاص حافظه ی عمومی (Global Memory)، حافظه‌ی محلی (Local Memory)، حافظه‌ی اشتراکی (Shared Memory)، رجیسترها (Register)، و حافظه‌ی مقادیر ثابت (Constant Memory) بحث شدند و راه اعلان متغیر در هریک به تفصیل گفته شد. با استفاده از این قابلیت‌هایی که در سخت‌افزار موجود هستند می‌توان سرعت اجرای برنامه‌ها را بالا برد. در ادامه یک برنامه‌ی ضرب ماتریس (Matrix Multiplication) به صورت ابتدایی مطرح شد و افت کارآیی به دلیل استفاده‌ی مبتدیانه از حافظه نشان داده شد. در جلسه‌ی بعدی روش حل این مشکل به کمک انواع دیگر حافظه در CUDA گفته خواهد شد.
3 سال پیش در تاریخ 1400/01/22 منتشر شده است.
572 بـار بازدید شده
... بیشتر