این مقاله مجموعهای از حقایق مربوط به GPUها را گردآوری کرده است که از منابع مختلف استخراج شدهاند. هدف اصلی، درک بهتر نحوه عملکرد GPUها است. این اطلاعات برای توسعهدهندگانی که با یادگیری عمیق و محاسبات موازی کار میکنند، مفید خواهد بود.
GPUها به دلیل توانایی محاسباتی بسیار بالا، در مقایسه با سرعت دسترسی به حافظه اصلی، با عدم تعادل مواجه هستند. به عنوان مثال، یک GPU NVIDIA A100 میتواند 19.5 تریلیون عملیات ممیز شناور 32 بیتی در ثانیه (TFLOPS) را انجام دهد، در حالی که پهنای باند حافظه آن تنها حدود 1.5 ترابایت در ثانیه (TB/s) است. این بدان معناست که در زمانی که برای خواندن یک عدد 4 بایتی صرف میشود، GPU میتواند بیش از 50 محاسبه انجام دهد.
ساختار سلسله مراتبی حافظه و محاسبات در GPUها نقش مهمی در عملکرد آنها دارد. در GPU NVIDIA A100، حافظه سراسری (VRAM) با ظرفیت حدود 40 گیگابایت و پهنای باند 1.5 ترابایت در ثانیه وجود دارد. سپس، واحد پردازش چندگانه (SM) با 108 واحد در A100، هر کدام با توان محاسباتی حدود 19.5 تقسیم شده TFLOPS، قرار دارد. در هر SM، حافظه اشتراکی (SRAM) یا حافظه نهان سطح 1 (L1) با ظرفیت 192 کیلوبایت و پهنای باند 19.5 ترابایت در ثانیه وجود دارد.
برای افزایش عملکرد GPUها، دو استراتژی اصلی وجود دارد: ادغام (Fusion) و کاشیکاری (Tiling). ادغام، به معنای ترکیب چندین عملیات در یک عملیات واحد است. کاشیکاری، یک استراتژی برای هستههای محدود به محاسبات است که در آن دادهها به بلوکهای کوچکتر تقسیم شده و در حافظه اشتراکی ذخیره میشوند تا دسترسی به آنها سریعتر شود. همچنین، بهینهسازیهایی مانند جلوگیری از واگرایی رشتهها و کوانتیزاسیون میتوانند به بهبود عملکرد کمک کنند.
مشاهده مطلب اصلی