
دوستان و علاقمندان به سخت افزار،همانطور که می دانید در این روزها مدام شاهد اخبار پردازنده های گرافیکی جدید از هر دو برند Nvidia و ADM هستیم.به همین علت تصمیم گرفتیم تا بازار این مبحث داغ است، شما را با پردازنده گرافیکی (GPU) آشنا سازیم.با ما همراه باشید.
واحد پردازش گرافیکی (Graphics Processing Unit) یا به اختصار GPU ابزاری اختصاصی برای رندر کردن گرافیکی در کامپیوترهای شخصی، ایستگاههای کاری،تلویزیون،لپ تاپ،گوشی های موبایل و تبلت، و یا در کنسولهای بازی است.
اولین GPU ها…
تراشههای ANTIC و CTIA امکان کنترل سختافزاری حالات گرافیکی و متنی و سایر تاثیرات را بر روی آتاری 8-بیتی را فراهم میکردند. تراشه ANTIC پردازشگری مخصوص برای نگاشت (در حالت برنامه نویسی) متن و دادهٔ گرافیکی به خروجی تصویری بود. طراح تراشه ANTIC جی مینر، طراحی تراشهٔ گرافیکی را برای کمودور آمیگا نیز بر عهده داشت.
دهه 1990
در دهه ۹۰ روند رشد کارتهای گرافیکی و پردازندههای دارای قابلیتهای گرافیکی به شکل روزافزونی پیش رفت و برای اولین بار پردازندهها و کارتهای گرافیکی با قابلیت رندر تصاویر و ویدیوهای سهبعدی ارائه شدند. ولی نقطه آغاز آنچه که امروز آن را GPU مینامیم به سال ۱۹۹۹ و محصول متفاوت کمپانی انویدیا باز میگردد. Nvidia GeForce 256 (که به آن NV10 نیز میگویند) اولین کارت گرافیک تجاری بود که توانست قابلیتهای سهبعدی و انتقال و نوردهی را در یک سختافزار تجاری برای مصرفکننده ارائه دهد و از آنجا که بعدها قابلیت سایهزنی پیکسلی و برداری به آن اضافه شد، بسیار انعطافپذیرتر و قابلبرنامهریزیتر از کارتهای گرافیکی سهبعدی همدوره خود بود.
2000 تا 2005
پس از ارائه NV10 و با وجود رابط برنامهای چون OpenGL و قابلیتهای مشابه آن در دیرکتاکس، مسیر رشد پردازندههای گرافیکی به سمت قابلیتهای بیشتر برنامهپذیری پیش میرفت. پردازش هر پیکسل توسط یک برنامه کوتاه که ورودیهای آن بافت تصویر را مشخص میکرد، امکانپذیر بود و هر شکل هندسی پیش از آنکه بر روی نمایشگر پدیدار شود، میتوانست توسط یک برنامه کوتاه به شکل دلخواه پردازش گردد. انویدیا نسخه جدیدتر GPU خود را با نام Geforce 3 یا NV20 وارد بازار کرد که اولین پردازنده گرافیکی مجهز به قابلیت سایهزنی برنامهپذیر بود. اما در اکتبر ۲۰۰۲ کمپانی رقیب انویدیا یعنی ATI محصول جدیدی به نام Radeon 9700 یا R300 را معرفی کرد که اولین پردازنده گرافیکی مبتنی بر Direct3D 9.0 در دنیا بود. سایهزنهای پیکسل و شکل این پردازنده گرافیکی قادر بودند محاسبات ممیز شناور طولانی و حلقوی را پیادهسازی نمایند و به سرعت انعطافپذیری در حد یک CPU را پیدا کردند. سایهزنی پیکسل معمولاً در مواردی چون ایجاد پستیوبلندی بر روی سطح اجسام (Bump Mapping) کاربرد دارد که منجر به ایجاد یک بافت بر روی یک شکل میگردد تا آن جسم براق، کدر، زبر، صاف یا حتی کندهکاری شده به نظر برسد.
2006 به بعد…
با معرفی سری 8 GeForce، پردازندههای گرافیکی به دستگاههای محاسباتی عمومیتری تبدیل شدند. امروزه GPUهای موازی در مقابل CPUها قد علم کردهاند و به همین دلیل یکی از زمینههای پژوهشی مهم کنونی، یعنی GPUهای همهمنظوره یا en:GPGPU (رایانش و محاسبات عمومی بر روی GPU) توانسته در بسیاری از حوزهها مثل فراگیری ماشین، هوش مصنوعی، اکتشاف نفت، پردازش تصویر، جبر خطی، آمار، بازسازی سهبعدی و حتی تعیین قیمت در بازار سهام به یکی از پرکاربردترین زمینههای تحقیقاتی و صنعتی تبدیل گردد. پلتفرم کودا (زبان برنامهنویسی) که شرکت انویدیا آن را توسعه داده است، یکی از قدیمیترین مدلهای برنامهنویسی موازی برای GPU است که از OpenCL نیز پشتیبانی میکند. OpenCL یک استاندارد آزاد است که توسط گروه Khronos تعیین گردیده. OpenCL توسط اینتل، AMD، انویدیا و ARM پشتیبانی میشود و پرطرفدارترین پلتفرمهای توسعه GPGPU در ایالات متحده و منطقه آسیا-اقیانوسیه است.
با ورود دستورات کتابخانه جدید،روند تولید و حرکت GPU های نیز جان تازه ای گرفت.برای مدت های طولانی،یکی از بزرگترین مشکلات تولید کنندگان سخت افزار،نبود دستورالعمل های نرم افزاری (دوستانی که در رشته نرم افزار تحصیل کرده باشند،به طور حتم از این موضوع با خبر هستند).API و دستورالعمل هایی پدیدار گشت که فقط برای پردازش های گرافیکی،بلکه بر روی پردازش های صوتی نیز واقف بود.DirectX،Mantle و Vulkan از جمله مواردی نرم افزاری بوده اند که در موجبات رشد و نمو GPU را فراهم ساختند.در سالهای 2003 تا 2009 شاهد یک رشد نسبتا پایین در زمینه توسعه بودیم.دلیل آن هم به وضوح مشخص بود؛عدم وجود بسترهای نرم افزاری برای استفاده و مدیریت آن.تشکلات کنسول های بازی نیز توسعه دهندگان را وادار به فعالیت بیشتر کرد.به طوری که به طور عمومی هر نسل از کنسول های بازی بین 10 الی 8 سال یکبار معرفی می شدند اما امروزه شاهد ارتقاء نرم افزاری در فواصل زمانی کوتاه،ارتقاء سخت افزارهای غیر پردازشی و اینک می توان به کنسول های در راه مانند PS 4.5 اشاره کرد.
اما NVIDIA پا را از آن هم فراتر گذاشته است و به رویای GPU های جامه عمل پوشانده است.کامپیوترهایی مانند P100،PX2 و DXG-1 از جمله سخت افزارهایی هستند که ماهیت و توانایی های GPU را به طور واقعی برای جهانیان به نمایش خواهند گذاشت.
سیستم توابع محاسبه
پردازندههای گرافیکی مدرن از بیشتر قدرت خود برای محاسبات مربوط به گرافیک سهبعدی در کامپیوتر بهره میبرند. پیشرفتهای اخیر در GPUها باعث شده تا بتوانند از سایهزنهای قابلبرنامهریزی بهره گیرند. بدین ترتیب با استفاده از این ویژگی میتوان تصاویر را در سطح هندسی و بافت دستکاری نمود. از آنجا که بیشتر این محاسبات نیاز به محاسبات ماتریسی و برداری دارند، مهندسین و دانشمندان مطالعات خود بر روی کاربردهای غیرگرافیکی GPU را افزایش دادهاند. یک نمونه از کاربردهای غیرگرافیکی پردازنده گرافیکی، تولید بیتکوین است، که برای حل معماها از یک واحد پردازش گرافیکی استفاده میگردد.
پردازنده گرافیکی مجتمع
پردازندههای گرافیکی مجتمع یا مشترک (IGP) از بخشی از حافظه RAM کامپیوتر برای محاسبات خود استفاده میکند و دیگر مثل پردازندههای گرافیکی اختصاصی به یک حافظه RAM جداگانه مجهز نیست. امروزه بسیاری از کامپیوترها مجهز به پردازنده گرافیکی مجتمع هستند. این نوع پردازندههای گرافیکی نسبت به نوع اختصاصی باعث کاهش هزینه سیستم میشوند ولی از سویی قابلیتهای آنها نیز کمتر است. سابقاً این نوع GPUها در اجرای بازیهای سهبعدی و ویدئوهای HD با مشکل مواجه میشدند ولی با رشد تکنولوژی و معرفی نسلهای جدیدتر، این پردازندههای گرافیکی نیز بهیود یافته و قدرتمندتر شدند. با این حال هنوز هم کاربران حرفهای گرافیک و علاقهمندان به بازیهای سنگین کامپیوتری باید یک پردازنده گرافیکی اختصاصی برای کامپیوتر خود تهیه کنند.از آنجا که GPUها میزان ارجاع به حافظه بالایی دارند، ممکن است نوع مجتمع آنها در مواقعی که فضای خالی حافظه رم کاهش مییابد، برای استفاده از آن با CPU وارد رقابت شود.میزان بهره گیری از پهنای باند در GPU های مشترک بسیار کمتر از کارت گرافیک های مستقل امروزی است.در مدلهای قدیمی پردازندههای گرافیکی مجتمع امکان انتقال و نوردهی تصویر به صورت سختافزاری وجود نداشت، اما کمی بعد این توانایی نیز به آنها اضافه گشت.هم اکنون آخرین نسل از APU های AMD به طور معمول از پردازشگرهای R7 بهره برده و پردازنده های اسکای لیک از اینتل نیز به خوبی از گرافیک های مجتمع مانند خانواده اینتل HD5xx بهره می برند.رندر تصاویر 4K از جمله جدید ترین امکانات این پردازنده های گرافیکی است.
پردازش جریانی و GPUهای همه منظوره (GPGPU)
استفاده از پردازندههای گرافیکی همهمنظوره (GPGPU) به عنوان پردازنده جریانی رشد روزافزونی دارد و هر روز فراگیرتر میشود. این نوع واحدهای پردازش گرافیکی، به جای آن که صرفاً برای عملیات گرافیکی طراحی شده باشند، قدرت محاسباتی یک سایهزن گرافیکی مدرن را برای محاسبات و رایانشهای عمومی به کار میگیرند. در برخی کاربردهای خاص که نیاز به عملیات برداری پیچیده دارند، این نوع پردازنده گرافیکی میتواند عملکرد بسیار بهتری نسبت به یک CPU داشته باشد.
GPGPU میتواند در بسیاری از وظایف موازی مثل ردیابی اشعه، دینامیک سیال محاسباتی و مدلسازی آبوهوا مورد استفاده قرار گیرد. عموماً این ابزار برای رایانشهای نیازمند به قدرت محاسباتی بالا استفاده میشود، چرا که GPUها به خاطر معماری ویژهای که دارند، قابلیتهای موازیسازی بالایی دارند. به علاوه امروزه کامپیوترهای قدرتمند مبتنی بر GPU نقش مهمی در مدلسازیهای بزرگ دارند. از سال ۲۰۰۵ علاقه به استفاده از GPU برای محاسبات عمومی به وجود آمد. در اکثر موارد، برنامههای خطی یا درختی بر روی رایانه میزبان کامپایل میشوند و فایل اجرایی برای اجرا در GPU ارسال میشود.امروزه و از سال 2015 به بعد،الگوریتم های جدید برای این نوع از پردازش به خدمت گرفته شد که نتیجه سعی و تلاش هر دو کمپانی AMD و انویدیا بود.