GPU

GPU

    • راه‌کارها
    • gpu, Graphics processing unit

Graphics processing unit (GPU) یک واحد پردازش گرافیک است ، یک تراشه منطقی است که به عنوان پردازنده شناخته می شود. این امر عمدتا به کامپیوتر یا لپ تاپ کمک می کند تا گرافیک و تصاویر ایده آل را به کاربر ارائه دهد. این مورد برای رمزگذاران ، طراحان ، ویرایشگران فیلم و تقریباً در مورد هر کسی که می خواهد تصاویر درجه یک باشد ، مناسب است.

شما می توانید بهترین GPU را برای یادگیری عمیق در کارت پلاگین پیدا کنید. این دستگاه در چیپ ست مادربرد رایانه واقع شده است. پردازنده یا واحد پردازش مرکزی به عنوان واحد اصلی عملکرد رایانه یا لپ تاپ در نظر گرفته می شود اما عملکرد آن به GPU بستگی دارد .

 

مهمترین مشخصات GPU برای سرعت پردازش یادگیری عمیق

با کمک این بخش می توانید درک بصری بیشتری از نحوه تفکر درباره عملکرد یادگیری عمیق ایجاد کنید. این درک به شما کمک می کند تا GPU های آینده را خود ارزیابی کنید.

 

gpu-tesla

هسته های تنسور

  • هسته های تنسور چرخه های مورد استفاده برای محاسبه عملیات ضرب و جمع را 16 برابر می کنند در مثال من برای یک ماتریس 32 × 32 ، از 128 چرخه به 8 چرخه.
  • هسته های تنسور اعتماد به دسترسی تکراری حافظه مشترک را کاهش می دهند ، بنابراین چرخه های اضافی برای دسترسی به حافظه ذخیره می شود.
  • هسته های تنسور آنقدر سریع هستند که دیگر محاسبه گلوگاه نیست. تنها گلوگاه انتقال داده ها به هسته های تنسور  است.

 

در حال حاضر GPU های ارزان قیمت به اندازه کافی وجود دارد که تقریباً همه می توانند GPU با هسته های Tensor را تهیه کنند. به همین دلیل است که من فقط GPU های دارای هسته Tensor را توصیه می کنم. درک نحوه کار آنها برای درک اهمیت این واحدهای محاسباتی ویژه ضرب ماتریس مفید است. در اینجا من یک مثال ساده از ضرب ماتریس A * B = C را به شما نشان می دهم ، جایی که تمام ماتریس ها اندازه 32 × 32 دارند ، یک الگوی محاسباتی با هسته های Tensor و بدون آن به نظر می رسد.

این یک مثال ساده است ، و نه روش دقیق نحوه نوشتن هسته ضرب ماتریس با عملکرد بالا ، اما تمام اصول را دارد. یک برنامه نویس CUDA این را به عنوان اولین “پیش نویس” در نظر می گیرد و سپس آن را گام به گام با مفاهیمی مانند بافر کردن دوگانه ، بهینه سازی ثبت نام ، بهینه سازی اِشغال ، موازی سازی سطح دستورالعمل و بسیاری دیگر بهینه می کند ، که من در این مرحله بحث نمی کنم .

برای درک کامل این مثال ، باید مفاهیم چرخه ها را درک کنید. اگر پردازنده با سرعت 1GHz کار کند ، می تواند 10 ^ 9 سیکل در ثانیه انجام دهد. هر چرخه فرصتی برای محاسبه است. با این حال ، بیشتر اوقات ، عملیات بیش از یک چرخه طول می کشد. بنابراین خط لوله ای ایجاد می کند که برای شروع یک عملیات باید منتظر بماند تعداد چرخه های زمان لازم برای پایان عملیات قبلی . به این عمل تأخیر عمل نیز می گویند.

در اینجا چند دوره مهم زمان یا تاخیر برای انجام عملیات وجود دارد:

  • دسترسی حافظه جهانی (حداکثر 48 گیگابایت): 200 ~ چرخه
  • دسترسی به حافظه مشترک (حداکثر 164 کیلوبایت در هر پردازنده جریانی): 20 ~ چرخه
  • ضرب و جمع ذوب شده (FFMA): 4 دوره
  • ضرب ماتریس هسته تنسور: 1 چرخه