پردازنده گرافيكي چيست؛ هر آنچه بايد درباره GPU بدانيد
واحد پردازش گرافيكي (GPU)، مدار الكترونيكي تخصصي براي مديريت و تغيير حافظه براي تسريع در ايجاد و نمايش تصاوير خروجي در مانيتور محسوب ميشود. پردازندهي گرافيكي از تعدادي عملگر ابتدايي گرافيكي تشكيل شده كه در ابتداييترين حالت خود براي كشيدن مستطيل، مثلث، دايره و قوس بهكار ميروند و در خلق تصاوير، بسيار سريعتر از پردازندهها عمل ميكنند.
- پردازنده گرافيكي (GPU) چيست؟
- تصوير سهبعدي
- گرافيك بيتمپ شده (BMP.)
- گرافيك برداري
- رندرينگ
- API گرافيكي
- GDDR چيست
- تاريخچه گرافيك سه بعدي
- نحوه توليد گرافيك سهبعدي
- مدلسازي سه بعدي
- چيدمان و انيميشن
- رندرينگ
- تكنيك سايهزني
- سايهزنهاي پيكسل
- سايهزنهاي رأس
- تفاوت GPU و CPU
- آشنايي با معماري پردازنده گرافيكي
- هستههاي تنسور
- موتور رهگيري پرتو
- GPGPU چيست
- CUDA چيست؟
- مزاياي هستههاي CUDA
- معايب هستههاي CUDA
- OpenCL؛ جايگزين CUDA
- CUDA و OpenCL درمقابل OpenGL
- OpenCL يا CUDA
- مطرحترين برندها
- اينتل
- انويديا
- AMD
- فرق پردازندهي گرافيكي و كارت گرافيك
- اجزاي كارت گرافيك
- حافظهي ويدئويي
- برد مدار چاپي
- كانكتورهاي نمايشگر
- پل
- رابط گرافيك
- مدار تنظيمكننده ولتاژ
- سيستم خنككننده
- انواع پردازندهي گرافيكي
- iGPU
- dGPU
- Cloud GPU
- eGPU
- پردازنده گرافيكي موبايل
- انواع پردازنده گرافيكي موبايل
- كاربردهاي ديگر پردازندههاي گرافيكي
- ويرايش ويدئو
- رندر گرافيك سهبعدي
- فراگيري ماشين
- بلاك چين و استخراج ارزهاي ديجيتال
درواقع آنچه كه به صورت ظاهري در نمايشگرها مشاهده ميكنيم، خروجي حاصل از عملكرد پردازندههاي گرافيكي است كه در سيستمهاي زيادي مانند موبايل، كامپيوتر، وركاستيشن و كنسول بازي استفاده ميشوند.
پردازنده گرافيكي (GPU) چيست؟
اگر واحد پردازش مركزي يا پردازنده (CPU) را بهعنوان مغز كامپيوتر در انديشه متخصصين بگيريم كه تمامي محاسبات و دستورها منطقي را مديريت ميكند، واحد پردازش گرافيكي يا پردازندهي گرافيكي (GPU) را ميتوان بهعنوان واحدي براي مديريت خروجي بصري و گرافيكي محاسبات و دستورها و اطلاعات مرتبط با تصاوير دانست كه ساختار موازي آنها براي پردازش الگوريتم بلوكهاي بزرگ داده، بهينهتر از واحدهاي پردازش مركزي يا همان پردازندهها عمل ميكند؛ در واقع GPU، رابطي گرافيكي براي تبديل محاسبات صورتگرفته توسط پردازنده به شكلي قابل فهم براي متخصص به حساب ميآيد و ميتوان با اطمينان گفت هر دستگاهي كه به نحوي خروجي گرافيكي را نمايش ميدهد، به نوعي از پردازندهي گرافيكي مجهز است.
واحد پردازش گرافيكي در يك كامپيوتر، ميتواند روي كارت گرافيك يا روي مادربرد تعبيه شده باشد يا همراه با پردازنده در تراشهي مجتمع (براي مثال APUهاي AMD) عرضه شود. تشخيص مدل كارت گرافيك در ويندوز با سريعترين روش نيز امكان پذير است كافي است به مقاله لينك شده مراجعه كرده و آن را مطالعه كنيد.
تراشههاي مجتمع نميتوانند خروجي گرافيكي آنچنان چشمگيري توليد كنند و قطعاً خروجي آنها هيچ گيمري را راضي نميكند؛ براي بهرهمندي از جلوههاي بصري با كيفيتتر بايد كارت گرافيكي (در ادامه با تفاوتهاي پردازندهي گرافيكي و كارت گرافيك بيشتر آشنا خواهيم شد) مجزا با قابليتهايي فراتر از يك پردازندهي گرافيكيِ ساده تهيه كرد. در ادامه با چند مفهوم اوليهي پركاربرد در مباحثه گرافيكها، بهطور خلاصه آشنا ميشويم.
تصوير سهبعدي
به تصويري كه علاوه بر طول و عرض، عمق هم داشته باشد، تصويري سهبعدي گفته ميشود كه در مقايسه با تصاوير دوبعدي مفاهيم بيشتري را به مخاطب منتقل ميكند و اطلاعات بيشتري دارد. براي مثال اگر به مثلثي نگاه كنيد، تنها سه خط و سه زاويه مشاهده ميكنيد، اما اگر جسمي هرميشكل داشته باشيد، ساختاري سهبعدي خواهيد ديد كه از چهار مثلث، پنج خط و شش زاويه تشكيل شده است.
گرافيك بيتمپ شده (BMP.)
گرافيك بيتمپشده يا همان گرافيك شطرنجيشده (Rasterized)، تصويري ديجيتالي است كه در آن هر پيكسل با تعدادي بيت نمايش داده ميشود؛ اين گرافيك با تقسيم تصوير به چهارخانههاي كوچك يا پيكسل ساخته ميشود كه هركدام حاوي اطلاعاتي مانند كنترل شفافيت و رنگ هستند؛ بنابراين در گرافيك شطرنجي هر پيكسل مربوط به يك ارزش محاسبهشده و از پيش تعيينشده است كه ميتواند با دقت زياد مشخص شود.
وضوح تصوير گرافيك شطرنجي به وضوح تصوير وابستگي دارد، بدين معني كه مقياس تصاوير توليدشده با اين گرافيك را نميتوان بدون از دست دادن كيفيت ظاهري، افزايش داد.
گرافيك برداري
گرافيك برداري (فرمتهاي ai. يا eps. يا pdf. يا svg.) نيز تصويري است كه مسيرهايي با نقطهي شروع و پايان را ايجاد ميكند. اين مسيرها همگي براساس عبارات رياضي بوده و از اشكال هندسي پايهاي مانند خطوط، چندضلعيها و منحنيها تشكيل شدهاند. مزيت اصلي استفاده از گرافيك برداري به جاي گرافيك بيتمپ شده (شطرنجي)، توانايي آنها در مقياسبندي بدون از دست دادن كيفيت است. مقياس تصاوير توليدشده با گرافيك برداري را ميتوان بهراحتي، بدون افت كيفيت و به اندازهي توانايي دستگاهي كه آنها را رندر ميكند، افزايش داد.
همانطوركه گفته شد برخلاف گرافيكهاي برداري كه به كمك فرمولهاي رياضي به هر اندازه مقياس ميشوند، گرافيك بيتمپشده با مقياسبندي كيفيت خود را از دست ميدهد. پيكسلهاي يك گرافيك بيتمپشده هنگام افزايش ابعاد، بايد درونيابي شوند كه اين امر تصوير را تار ميكند و هنگام كاهش ابعاد نيز بايد دوباره نمونهبرداري شوند، كه اين كار باعث از دست دادن دادههاي تصوير ميشود.
بهطور كلي، گرافيكهاي برداري براي خلق آثار هنري تشكيلشده از اشكال هندسي، مانند لوگو يا نقشههاي ديجيتال، حروفچيني يا طراحيهاي گرافيكي بهترين گزينه هستند و گرافيكهاي شطرنجي نيز بيشتر با عكسها و تصاوير واقعي سروكار دارند و براي تصاوير عكاسي مناسب هستند.
از گرافيك برداري ميتوان براي ساخت بنر يا لوگو استفاده كرد؛ چراكه تصاوير با اين روش هم در ابعاد كوچك هم در ابعاد بزرگ با كيفيتي يكسان نمايش داده ميشوند. يكي از محبوبترين برنامههايي كه براي مشاهده و ايجاد تصاوير برداري استفاده ميشود Adobe Illustrator است.
رندرينگ
به فرايند توليد تصاوير سهبعدي از نرمافزاري بر پايهي مدلهاي محاسباتي و نمايش آن بهعنوان خروجي روي نمايشگر دو بعدي، رندرينگ (Rendering) گفته ميشود.
API گرافيكي
رابط برنامهنويسي نرمافزاري (Application Programming Interface) يا API، پروتكلي براي ارتباط ميان بخشهاي مختلف برنامههاي كامپيوتري و ابزاري مهم براي تعامل نرمافزار با سختافزار گرافيكي بهجساب ميآيد؛ اين پروتكل ممكن است مبتني بر وب، سيستمعامل، مركز داده، سختافزار يا جزوه رايگانخانههاي نرمافزاري باشد. امروزه براي تصويرسازي و رندرينگ مدلهاي سهبعدي، ابزارها و نرمافزارهاي فراواني توسعه داده شدهاند و يكي از كابردهاي مهم API-هاي گرافيكي نيز آسانكردن فرايند تصويرسازي و رندرينگ براي توسعهدهنگان بهشمار ميرود. درواقع API-هاي گرافيكي دسترسي مجازي به برخي پلتفرمها را براي توسعهدهندگان برنامههاي گرافيكي خود و تست آنها فراهم ميكنند. در ادامه برخي از شناختهشدهترين APIهاي گرافيكي را معرفي ميكنيم:
OpenGL (مخفف Open Graphics Library) جزوه رايگانخانهاي از توابع مختلف براي ترسيم تصاوير سهبعدي است كه استاندارد بين پلتفرمي و واسط برنامهنويسي متخصصدي (API) براي گرافيكها و رندرهاي دو بعدي و سه بعدي و شتابدهندهي گرافيكي در بازيهاي ويدئويي، طراحي، واقعيت مجازي و ساير برنامهها به حساب ميآيد. اين جزوه رايگانخانه بيش از ۲۵۰ تابع فراخواني مختلف براي ترسيم تصاوير سهبعدي دارد و در دو نوع Microsoft (اغلب در ويندوز يا نرمافزار نصب كارت گرافيك) و Cosmo (براي سيستمهايي كه شتابدهندهي گرافيكي ندارند) طراحي شده است.
رابط گرافيكي OpenGL براي اولين بار توسط Silicon Graphics در سال ۱۹۹۱ طراحي شد و در سال ۱۹۹۲ بهبازار آمد؛ جديدترين سري اين API، يعني 4.6 OpenGL نيز در جولاي ۲۰۱۷ معرفي شد.
مجموعهاي از رابطهاي برنامهنويسي متخصصدي (API) كه توسط مايكروسافت براي فراهمسازي امكان ارتباط دستورالعملها با سختافزارهاي صوتي و تصويري توسعه داده شده است. بازيهايي كه به DirectX مجهز هستند، اين قابليت را دارند كه از ويژگيهاي چندرسانهاي و شتابدهندههاي گرافيكي بهطور كارآمدتري استفاده كنند و عملكرد كلي بهبوديافتهتري داشته باشند.
زماني كه مايكروسافت در اواخر سال ۱۹۹۴، خود را براي انتشار ويندوز 95 آماده ميكرد، الكس سنت جان، يكي از متخصص مايكروسافت، دربارهي توسعهي بازيهاي سازگار با MS-DOS تحقيق كرد. برنامهنويسان اين بازيها اغلب امكان انتقال آنها را به ويندوز 95 رد كردند و توسعهي بازيها را براي محيط ويندوز دشوار خواندند. به همين منظور تيم سهنفرهاي تشكيل شد و اين تيم در عرض چهار ماه توانست اولين مجموعه از رابطهاي برنامهنويسي متخصصدي (API) را به نام DirectX براي حل اين اشكال توسعه دهد.
اولين نسخهي DirectX سپتامبر ۱۹۹۵ با عنوان Windows Games SDK منتشر شد و جايگزين Win32 براي DCI و API-هاي WinG براي ويندوز 3.1 بود. DirectX براي ويندوز 95 و همه نسخههاي ويندوز مايكروسافت بعد از آن، امكان داد كه محتواي چند رسانهاي با كارايي بالا را در خود جاي دهند.
مايكروسافت براي پذيرش هرچه بيشتر DirectX از سوي توسعهدهندگان، به جان كارمَك (John Carmack)، توسعهدهندهي بازيهاي Doom و Doom 2 پيشنهاد داد كه اين دو بازي را از MS-DOS به صورت رايگان و با DirectX به ويندوز 95 منتقل و شناسه تمامي حقوق انتشار بازي را نيز حفظ كند. كارمك موافقت كرد و اولين نسخه از بازيها به نام Doom 95 در آگوست ۱۹۹۶ بهعنوان اولين بازي توسعه داده شده روي DirectX منتشر شد. DirectX 2.0 با انتشار نسخهي بعدي Windows 95 و Windows NT 4.0 در اواسط سال ۱۹۹۶ به يكي از اجزاي خود ويندوز تبديل شد.
ازآنجاكه در آن زمان ويندوز 95 هنوز در ابتداي راه خود بود و بازيهاي منتشرشدهي كمي براي آن وجود داشت، مايكروسافت براي اين رابط برنامهنويسي دست به تبليغات گسترده زد و در طي رويدادي براي اولين بار Direct3D و DirectPlay را در دموي الكترونيك بازي چندنفرهي MechWarrior 2 معرفي كرد. تيم توسعهدهندهي DirectX با چالش آزمايش هر نسخه از اين رابط برنامهنويسي براي هر مجموعه سختافزار و نرمافزار كامپيوتر روبهرو شد و در همين راستا نيز انواع كارتهاي گرافيك مختلف، كارتهاي صوتي، مادربردها، پردازندهها، وروديها، بازيها و ساير برنامههاي چندرسانهاي با هر نسخهي بتا و نهايي آزمايش شدند و حتي آزمايشهايي توليد و توزيع شد تا صنعت سختافزار، سازگاري طراحيهاي جديد و نسخههاي درايور خود با DirectX را مطالعه كند.
جديدترين نسخهي DirectX، يعني DirectX 12 در سال ۲۰۱۴ رونمايي شد و يك سال بعد از آن نيز همراه با نسخهي ۱۰ ويندوز بهطور رسمي به بازار آمد. اين API گرافيكي از آداپتور چندگانهي خاصي همراهي كرده و امكان استفادهي همزمان از چند گرافيك را روي يك سيستم فراهم ميكند.
قبل از DirectX، مايكروسافت OpenGL را در پلتفرم ويندوز NT خود گنجانده بود و حالا Direct3D قرار بود جايگزيني براي OpenGL تحت كنترل مايكروسافت باشد كه در ابتدا روي گيمينگ متمركز بود. در اين مدت OpenGL هم توسعه داده شده بود و تكنيكهاي برنامهنويسي براي برنامههاي چندرسانهاي تعاملي مانند بازيها را بهتر همراهي ميكرد، اما ازآنجاكه OpenGL در مايكروسافت توسط تيم DirectX همراهي ميشد، كمكم از ميدان رقابت كناره گرفت.
Vulkan
Vulkan يك API گرافيكي كمهزينه و چندپلتفرمي است كه براي متخصصدهاي گرافيكي مانند گيمينگ و توليد محتوا به كار ميرود. وجه تمايز اين API گرافيكي با DirectX و OpenGL، توانايي آن در رندرينگ گرافيكهاي دوبعدي و مصرف برق كمتر است.
در ابتدا بسياري تصور ميكردند كه Vulkan ميتواند OpenGL بهبوديافتهي آينده و ادامهدهندهي مسير آن باشد، اما گذشت زمان نشان داد كه اين پيشبيني درست نبود. جدول زير تفاوتهاي عملكرد اين دو API گرافيكي را نشان ميدهد.
OpenGL | Vulkan |
---|---|
تنها يك ماشين global state دارد | مبتني بر شيء است و فاقد global state |
state تنها به يك محتوا منحصر ميشود | مفهوم تمامي stateها در بافر دستورها قرار گرفته است |
عملكردها فقط بهصورت ترتيبي انجام ميشوند | قابليت برنامهنويسي چندرشتهاي دارد |
حافظه و همگامسازي GPU معمولاً مخفي است | كنترل و مديريت همگامسازي و حافظه مقدور است |
مطالعه خطا بهصورت مداوم انجام ميشود | درايورها حين اجرا، مطالعه خطا انجام نميدهند. در عوض براي سازندگان، يك لايه اعتبارسنجي در انديشه متخصصين گرفته شده است. |
Mantle
API گرافيكي Mantle، رابطي ارزانارزش براي رندر بازيهاي ويديويي سهبعدي است كه اولين بار توسط AMD و شركت توليدكنندهي بازيهاي ويديويي DICE در سال ۲۰۱۳ طراحي شد. هدف از اين مشاركت رقابت با Direct3D و OpenGL در كامپيوترهاي خانگي بود، بااينحال Mantle در سال ۲۰۱۹ رسما متوقف شد و API گرافيكي Vulkan جاي آن را گرفت. Mantle ميتوانست بهصورت بهينه بار كاري پردازنده را كاهش داده و گرههاي ايجاد شده در فرايند پردازش را از بين ببرد.
Metal
Metal رابط گرافيكي اختصاصي اپل است كه مبتني بر زبان ++C نوشته شده و اولينبار در iOS 8 بهكار گرفته شد. Metal را ميتوان تركيب رابط گرافيكي OpenGL و فريمورك OpenCL دانست كه هدف از طراحي آن شبيهسازي APIهاي گرافيكي ديگر پلتفرمها مانند Vulkan و DirectX 12 براي سيستمعامل iOS، Mac و tvOS بود. در سال ۲۰۱۷ دومين نسخهي API گرافيكي Metal با همراهي از سيستمهاي عامل macOS High Sierra، iOS 11 و tvOS 11 منتشر شد. اين نسخه در مقايسه با نسخهي قبلي كارايي بالاتر و بهينهتري داشت.
GDDR چيست
به حافظهي DDR كه در واحد پردازش گرافيكي قرار دارد، GDDR يا رم پردازندهي گرافيكي گفته ميشود. DDR (مخفف Double Data Rate) يا نرخ انتقال دوگانه، نسخهي پيشرفتهي رم دايناميك همزمان (SDRAM) است و از فركانسهاي مشابه با آن استفاده ميكند. تفاوت DDR با SDRAM در تعداد دفعات ارسال داده در هر چرخه است؛ DDR دادهها را دو بار در هر چرخه انتقال ميدهد و سرعت حافظه را دو برابر ميكند، درحاليكه SDRAM سيگنالها را تنها يك بار در هر چرخه ارسال ميكند. DDRها خيلي سريع محبوبيت پيدا كردند، چراكه علاوه بر سرعت انتقال دوبرابري، از SDRAM ارزانتر بوده و همچنين انرژي كمتري نسبت به ماژولهاي SDRAM قديمي مصرف ميكنند.
GDDR در سال ۲۰۰۶ براي رندر سريع روي پردازندهي گرافيكي معرفي شد، اين حافظه درمقايسهبا DDR معمولي، فركانس بيشتر و گرماي كمتري دارد و جايگزيني براي VRAM و WRAM محسوب ميشود كه تا امروز ۶ نسل از آن عرضه شده و هر نسل سريعتر و پيشرفتهتر از نسل قبلي است.
GDDR5 بهعنوان رم ويدئويي نسل قبلي شناخته ميشود و ده سال از معرفي آخرين استاندارد فعلي GDDR (يعني GDDR6) ميگذرد؛ GDDR6 با سرعت انتقال ۱۶ گيگابايتبرثانيه (دو برابر GDDR5) و دسترسي خواندن/نوشتن ۳۲ بايتي (برابر با GDDR5) در سري RTX30 انويديا و جديدترين كارتهاي گرافيك سري 6000 ايامدي به كار ميرود؛ نسخههاي GDDR از انديشه متخصصين عددي با DDR مطابقت ندارند و GDDR5 مانند GDDR3 و GDDR4 براساس فناوري DDR3 و GDDR6 نيز براساس فناوري DDR4 توليد شدهاند؛ درواقع ميتوان گفت GDDR از لحاظ تفاوت در عملكرد، مسيري نسبتاً مستقلتر از DDR طي ميكند.
وظيفهي اصلي پردازندهي گرافيكي رندر كردن تصاوير است، بااينحال، براي انجام اين كار، به فضايي براي نگهداري اطلاعات مورد نياز براي ايجاد تصوير كاملشده نياز دارد، اين واحد گرافيكي براي ذخيرهي دادهها از رم (يا همان حافظهي دسترسي تصادفي) استفاده ميكند؛ دادههايي كه شامل اطلاعات هر پيكسل مرتبط با تصوير و همچنين رنگ و مكان آن روي نمايشگر است. يك پيكسل را ميتوان بهعنوان يك نقطهي فيزيكي در يك تصوير شطرنجي تعريف كرد كه ساختار دادهي ماتريس نقطهاي از شبكهي مستطيلي از پيكسلها را نشان ميدهد. رم همچنين ميتواند تصاوير تكميلشده را تا رسيدن زمان نمايش آنها نگه دارد كه به آن بافر فريم گفته ميشود.
قبل از توسعهي پردازندههاي گرافيكي، مسئوليت پردازش تصاوير براي ايجاد خروجي و رندرينگ آنها را پردازنده يا همان CPU بر عهده داشت؛ اين كار فشار زيادي به پردازندهها وارد ميكرد و باعث كندي سيستم ميشد. در واقع جرقههاي پيدايش گرافيكهاي سهبعدي امروزي با توسعهي بيشتر بازيهاي آركيد (Arcade)، كنسولهاي گيمينگ، شبيهسازهاي نظامي، رباتيك و فضايي و همچنين تصويربرداري پزشكي روشن شد، البته در ابتداي اين راه، چالشهاي زيادي هم مانند نحوهي پيادهسازي سختافزار، استفاده از تكنيكهاي مختلف رندر و متخصصدهاي آنها و همچنين نحوهي نامگذاريها مطرح بود.
در ادامه و قبل از مطالعه تاريخچهي پيدايش واحد پردازش گرافيكي، به معرفي مفاهيمي كه در اين صنعت مطرح هستند ميپردازيم:
تاريخچه گرافيك سه بعدي
اصطلاح GPU براي اولين بار در دههي ۱۹۷۰، بهعنوان مخففي براي واحد پردازش گرافيكي (Graphic Processor Unit) معرفي شد و يك واحد پردازش قابلبرنامهريزي را توصيف ميكرد كه عملكردي مستقل از واحد پردازندهي مركزي يا همان پردازنده داشت و مسئوليت تنظيم و خروجي گرافيكي را عهدهدار بود؛ البته در آن زمان اين اصطلاح آنگونه كه امروزه تعبير ميشود، تعريف نشده بود.
IBM در سال ۱۹۸۱ براي اولين بار دو كارت گرافيك خود از نوع MDA (آداپتور نمايشگر تكرنگ) و CGA (آداپتور گرافيك رنگي) را توسعه داد. MDA از چهار كيلوبايت حافظهي ويدئويي بهرهمند بود و تنها از نمايش متني همراهي ميكرد؛ اين گرافيك امروزه ديگر متخصصدي ندارد، اما ممكن است در برخي از سيستمهاي قديمي يافت شود.
CGA نيز اولين گرافيك براي كامپيوترها محسوب ميشد كه تنها به شانزده كيلوبايت حافظه ويدئويي مجهز بود و قابليت توليد ۱۶ رنگ با وضوح ۱۶۰ در ۲۰۰ پيكسل را داشت. يك سال پس از اين اتفاق شركت فناوري كامپيوتري هركول (Hercules Graphics) براي پاسخ به كارتهاي گرافيكي IBM، گرافيك HGC (كارت گرافيكي هركول) را با ۶۴ كيلوبايت حافظهي ويدئويي توسعه داد كه تركيبي از MDA با گرافيك بيتمپ شده بود.
در سال ۱۹۸۳ اينتل با معرفي گرافيك iSBX 275 Video Graphics Multimodule وارد بازار كارت گرافيك شد. اين كارت ميتوانست هشت رنگ را با وضوح ۲۵۶ در ۲۵۶ نمايش دهد. IBM يك سال پس از اين اتفاق گرافيكهاي PGC يا كنترلكنندهي گرافيك حرفهاي (Professional Graphic Controller) و EGA يا آداپتور گرافيكي پيشرفته (Enhanced Graphic Adapter) را معرفي كرد كه ۱۶ رنگ را با وضوح ۶۴۰ در ۳۵۰ پيكسل نمايش ميدادند.
استاندارد VGA يا آرايهي گرافيكي ويدئويي (Video Graphics Array) در سال ۱۹۸۷ معرفي شد، اين استاندارد وضوح تصوير ۶۴۰ در ۴۸۰ را با ۱۶ رنگ و حداكثر ۲۵۶ كيلوبايت حافظهي ويدئويي ارائه ميداد. ATI همان سال اولين كارت گرافيك VGA خود را با نام ATI VGA Wonder معرفي كرد؛ برخي از مدلهاي اين كارت گرافيك حتي به پورتي براي اتصال ماوس مجهز بودند. تا اينجا كارتهاي ويدئويي حافظههاي كمي داشتند و پردازندهها، پردازشهاي گرافيكي را به اين حافظههاي ويدئويي انتقال ميدادند و پس از انجام محاسبات و تبديل سيگنال، آنها را روي دستگاه خروجي نمايش ميدادند.
پس از اينكه اولين بازيهاي ويدئويي سهبعدي منتشر شدند، ديگر امكان پردازش سريع وروديهاي گرافيكي روي پردازندهها وجود نداشت؛ در چنين شرايطي مفهوم ابتدايي واحد پردازش گرافيكي شكل گرفت. اين مفهوم در ابتدا با معرفي شتابدهندهي گرافيكي توسعه پيدا كرد؛ شتابدهندهي گرافيكي براي تقويت عملكرد سيستم، انجام محاسبات و پردازشهاي گرافيكي و سبكتر كردن حجم كاري پردازنده استفاده ميشد و تأثير قابلتوجهي بر عملكرد كامپيوتر و بهويژه پردازشهاي گرافيكي فشرده داشت. Silicon Graphics در سال ۱۹۹۲ OpenGL را منتشر كرد كه اولين جزوه رايگانخانهي توابع مختلف براي ترسيم تصاوير سهبعدي است.
پردازندهي گرافيكي از ابتدا بهعنوان مكملي براي پردازنده و سبكتر كردن بار كاري اين واحد، تكامل پيدا كرد
۴ سال بعد Voodoo اولين كارت گرافيك خود را توسط شركتي به نام 3dfx معرفي كرد. اين گرافيك Voodoo1 نام داشت و براي رندر گرافيك سهبعدي به نصب كارت گرافيك دوبعدي نياز داشت و خيلي سريع در ميان گيمرها محبوب شد.
انويديا در سال ۱۹۹۷ در پاسخ به Voodoo شتابدهندهي گرافيكي RIVA 128 را عرضه كرد. RIVA 128 مانند Voodoo1 امكان استفاده از شتابدهندههاي گرافيكي را همراه با گرافيكهاي دو بعدي براي سازندگان كارتهاي ويدئويي فراهم ميكرد، اما در مقايسه با Voodoo1 رندر گرافيكي ضعيفتري داشت.
پس از RIVA 128 شركت 3dfx گرافيك Voodoo2 را بهعنوان جايگزيني براي Voodoo1 عرضه كرد. اين اولين كارت گرافيكي بود كه از SLI همراهي ميكرد و امكان اتصال دو يا چند گرافيك را براي توليد يك خروجي فراهم ميكرد. SLI يا رابط پيوند مقياسپذير (Scalable Link Interface) نام تجاري فناوري منسوخشدهاي است كه توسط انويديا براي پردازش موازي و به منظور افزايش قدرت پردازش گرافيكي توسعه داده شد.
اصطلاح GPU در سال ۱۹۹۹ همزمان با عرضهي جهاني GeForce 256 بهعنوان اولين پردازندهي گرافيكي جهان توسط انويديا رواج داده شد. انويديا اين GPU را بهعنوان پردازندهاي تك تراشه با تبديل يكپارچهي نماي دو بعدي از صحنهاي سهبعدي، نورپردازي و تغيير رنگ سطوح و قابليت ترسيم بخشهايي از تصوير پس از رندر معرفي كرد. ATI Technologies نيز براي رقابت با انويديا در سال ۲۰۰۲ گرافيك Radeon 9700 را با اصطلاح واحد پردازش بصري يا VPU منتشر كرد.
با گذشت زمان و پيشرفت تكنولوژي، GPUها به قابليت برنامهريزي مجهز شدند و همين امر باعث شد انويديا و ATI نيز به صحنهي رقابت وارد شوند و اولين پردازندههاي گرافيكي خود را (GeForce براي انويديا و Radeon براي ATI) معرفي كنند.
انويديا در سال ۱۹۹۹ با عرضهي گرافيك GeForce 256 رسماً به بازار كارت گرافيك وارد شد. اين گرافيك اولين پردازندهي گرافيكي واقعي در جهان شناخته ميشود كه ۳۲ مگابايت حافظهي DDR (همان GDDR) داشت و بهطور كامل از DirectX 7 همراهي ميكرد.
همزمان با تلاشها براي سرعت بخشيدن به انجام محاسبات و پردازشهاي گرافيكي كامپيوترها و بهبود كيفيت آنها، شركتهاي توليدكنندهي بازيهاي ويدئويي و كنسولهاي گيمينگ نيز هركدام به نحوي (سِگا با Dreamcast، سوني با PS1 و نينتندو با Nintendo 64) سعي كردند تا در اين حوزه به رقابت بپردازند.
نحوه توليد گرافيك سهبعدي
فرايند توليد گرافيك سه بعدي به سه مرحلهي اصلي تقسيم ميشود:
مدلسازي سه بعدي
فرايند توسعهي آرايهاي مبتني بر مختصات رياضي از رويه يا سطح جسمي (بيجان يا جاندار) به صورت سهبعدي است كه ازطريق نرمافزارهاي تخصصي با دستكاري اضلاع، رئوس و چندضلعيهايي كه در فضاي سهبعدي شبيهسازي شدهاند، انجام ميگيرد.
اجسام فيزيكي با استفاده از مجموعهاي نقاط در فضاي سهبعدي نشان داده ميشوند كه توسط عناصر هندسي مختلف مانند مثلثها، خطوط، سطوح منحني و غيره به هم متصل ميشوند. اساساً مدلهاي سهبعدي در ابتدا با اتصال نقاط و تشكيل چندضلعي ايجاد ميشوند. چندضلعي، ناحيهاي است كه از حداقل سه رأس (مثلث) تشكيل شده باشد و يكپارچگي كلي مدل و مناسب بودن آن براي استفاده در انيميشن به ساختار اين چند ضلعيها بستگي دارد.
مدلهاي سهبعدي (3D) از دو روش مدلسازي چندضلعي (Vertex) و با اتصال خطوط شبكهاي از بردارها يا مدلسازي منحني (Pixel) با وزندهي به هر نقطه ساخته ميشوند؛ امروزه به دليل انعطافپذيري بيشتر و امكان رندر سريعتر فرايند مدلسازي سهبعدي در روش اول، اكثريت قريب به اتفاق مدلهاي سهبعدي، به روش چندضلعي و بافتدار توليد ميشوند. يكي از اصليترين وظايف كارتهاي گرافيكي نگاشت بافت (Texture Mapping) است كه به يك تصوير يا مدل سهبعدي، بافت اضافه ميكند. براي مثال، با اضافه كردن بافت سنگي به يك مدل آن را به تصوير سنگي واقعي شبيه ميكند يا با اضافه كردن بافتي شبيه به صورت انسان، براي مدل سهبعدي اسكنشدهاي، چهره طراحي ميكند.
در روش دوم نيز مدلسازي با كنترل وزني نقاط منحني به دست ميآيند، البته نقاط درونيابي نميشوند، بلكه تنها ميتوان سطوح منحني را با استفاده از ازدياد نسبي چندضلعيها ايجاد كرد. در اين روش افزايش وزن براي يك نقطه، منحني را به آن نقطه نزديك ميكند.
چيدمان و انيميشن
پس از مدلسازي بايد نحوهي قرار دادن و تعيين حركت اشيا (مدلها، نورها و غيره) در يك صحنه پيش از پرداخت اجسام و ايجاد تصوير مشخص شود؛ بدين معني كه قبل از رندر شدن تصاوير، اجسام بايد طرحبندي و درون صحنه چيده شوند. در واقع با تعريف مكان و اندازهي هر جسم، رابطهي فضايي بين اجسام شكل ميگيرد. حركت يا انيميشن نيز به توصيف زماني يك جسم اشاره دارد (نحوهي حركت و تغيير شكل در طول زمان). روشهاي رايج طرحبندي و انيميشن عبارتاند از: فريمبندي (قاببندي) كليدي، حركتشناسي معكوس و ضبط حركت. البته اين تكنيكها اغلب به صورت تركيبي استفاده ميشوند.
رندرينگ
در مرحلهي آخر براساس نحوهي قرارگيري نور، انواع سطوح و ساير عوامل مشخصشده، محاسبات كامپيوتري براي توليد و پرداخت تصوير در اين قسمت متريالها و بافتها دادههايي هستند كه براي رندر كردن استفاده ميشوند.
ميزان انتقال نور از سطحي به سطح ديگر و ميزان پخش و تعامل آن روي سطوح، دو عمل اساسي در رندرينگ هستند كه اغلب با استفاده از نرمافزارهاي گرافيكي سهبعدي اجرا ميشوند. در واقع رندرينگ فرايند نهايي ايجاد تصوير يا انيميشن دوبعدي از مدلي سهبعدي و صحنهاي آماده به كمك چندين روش مختلف و اغلب تخصصي است كه شايد تنها كسري از ثانيه يا گاهي تا چند روز براي يك تصوير/فريم منفرد طول بكشد.
تكنيك سايهزني
پس از توسعهي پردازندههاي گرافيكي براي كم كردن حجم كاري پردازندهها و فراهم كردن بستري براي توليد تصاوير با كيفيتي بسيار چشمگيرتر از قبل، انويديا و ATI كمكم به بازيگرهاي اصلي دنياي گرافيكهاي كامپيوتري تبديل شدند. اين دو رقيب براي پيشي گرفتن از يكديگر سخت تلاش ميكردند و هر كدام سعي داشتند تا با افزايش تعداد سطوح در مدلسازي و رندرينگ و بهبود تكنيكها با هم رقابت كنند. تكنيك سايهزني را ميتوان زادهي رقابت آنها دانست.
در صنعت گرافيك كامپيوتري، سايهزني به فرايند تغيير رنگ جسم/سطح/چندضلعي در صحنهاي سهبعدي، براساس مواردي مانند فاصلهي آن از نور، زاويهي آن نسبت به نور يا زاويه سطح نسبت به نور اشاره دارد.
سايهزنها سطوح مناسب نور، تاريكي و رنگ را در حين رندر صحنهاي سهبعدي محاسبه ميكنند
سايهزني در طول فرايند رندر توسط برنامهاي به نام سايهزن (Shader) انجام ميشود كه سطوح مناسب نور، تاريكي و رنگ را حين رندر صحنهاي سه بعدي محاسبه ميكند. در واقع شيدرها براي انجام انواع عملكردهاي تخصصي در جلوههاي ويژهي گرافيكي، پسپردازش ويدئو و همچنين محاسبات همهمنظوره روي واحدهاي پردازش گرافيكي تكامل يافتهاند.
سايهزني رنگ سطوح را در مدلي سهبعدي براساس زاويهي سطح نسبت به منبع نور يا منابع نور تغيير ميدهد.
- در تصوير اولي كه در زير مشاهده ميكنيد تمام سطوح جعبه با يك رنگ رندر شدهاند و تنها خطوط لبهها براي بهتر ديده شدن تصوير، مشخص شدهاند.
- تصوير دوم همان مدل را بدون خطوط لبهها نشان ميدهد؛ در اين حالت تشخيص اينكه يك وجه جعبه به كجا ختم ميشود و بعد دوباره از كجا شروع ميشود، كمي دشوار است.
- در تصوير سوم، تكنيك سايهزني اعمال شده است؛ تصوير نهايي واقعيتر ديده ميشود و سطوح نيز آسانتر تشخيص داده ميشوند.
سايهزنها بهطور گسترده در پردازش سينما، تصاوير كامپيوتري و بازيهاي ويدئويي براي توليد طيف وسيعي از افكتها استفاده ميشوند. سايهزنها يا شيدرها برنامههاي سادهاي هستند كه يك رأس (Vertex) يا پيكسل (Pixel) را توصيف ميكنند. سايهزنهاي رأس مشخصاتي مانند موقعيت، مختصات بافت، رنگها و… مربوط به هر رأس را توصيف ميكنند، درحاليكه سايهزنهاي پيكسل ويژگيهاي رنگ، عمق z و مقدار آلفاي هر پيكسل را توصيف ميكنند.
در كل سه نوع سايهزن در استفادهي متداول وجود دارد (شيدرهاي پيكسلي، رأسي و هندسي). كارتهاي گرافيك قديميتر از واحدهاي پردازش جداگانهاي براي هر سايهزني استفاده ميكنند، اما كارتهاي جديدتر به سايهزنهاي يكپارچهاي مجهز هستند كه هر نوع تكنيكي را ميتوانند اجرا كنند و پردازشي بهينهتر ارائه دهند.
سايهزنهاي پيكسل
سايهزنهاي پيكسل، رنگ و ساير ويژگيهاي هر منطقهي پيكسل را محاسبه و رندر ميكنند. سادهترين انواع سايهزنهاي پيكسل، تنها يك پيكسل صفحهنمايش را بهعنوان رنگ خروجي توليد ميكنند. سايهزنهاي پيكسل علاوه بر مدلهاي سادهي نورپردازي، خروجيهاي پيچيدهتري مانند تغيير فضاي رنگي، اشباع رنگي، روشنايي (HSL/HSV) يا كنتراست تصوير، توليد تاري، شكوفايي نور، نورپردازي حجمي، نگاشت معمولي (براي جلوهي عمق)، بوكه، سايهزني سلولي، پوسترسازي، نگاشت برآمدگيها، اعوجاج، افكتهاي صفحهي آبي يا صفحهي سبز، مشخص كردن لبهها و حركات و شبيهسازي افكتهاي سايكدليك نيز ممكن است داشته باشند.
البته در گرافيك سهبعدي، سايهزن پيكسل به تنهايي نميتواند جلوههاي پيچيده ايجاد كند، چراكه تنها روي يك منطقه كار ميكند و به اطلاعات مربوط به رأسها دسترسي ندارند، اما اگر محتويات كل صفحه بهعنوان بافت به سايهزن منتقل شود، اين شيدرها ميتوانند از صفحه و پيكسلهاي اطراف نمونهبرداري كنند و طيف گستردهاي از افكتهاي پسپردازش دو بعدي مانند محو كردن يا تشخيص/افزايش لبهها را براي سايهزنها فعال كنند.
سايهزنهاي رأس
سايهزنهاي رأس (Vertex) رايجترين نوع سايهزنهاي سهبعدي هستند و روي هر رأس دادهشده به پردازندهي گرافيكي يك بار اجرا ميشوند. هدف استفاده از اين شيدرها، تبديل موقعيت سهبعدي هر رأس در فضاي مجازي به مختصات دو بعدي براي نمايش در مانيتور است. سايهزنهاي رأس ميتوانند ويژگيهايي مانند مختصات موقعيت، رنگ و بافت را دستكاري كنند، اما نميتوانند رأسهاي جديدي ايجاد كنند.
سايهزنها براي انجام سريع محاسبات و رندرها به موازيسازي نياز داشتند؛ مفهوم ترد يا رشته از اينجا متولد شد
ATI در سال ۲۰۰۰ كارتهاي گرافيكي سري Radeon R100 را معرفي و با اين كار ميراثي ماندگار از سري كارتهاي گرافيك Radeon را به بازار عرضه كرد. اولين كارتهاي گرافيك Radeon با DirectX 7 بهطور كامل سازگار بودند و از فناوري HyperZ ATI بهره ميبردند كه در واقع از سه تكنولوژي فشردهسازي Z، پاكسازي سريع Z و بافر سلسله مراتبي Z براي حفظ بيشتر پهناي باند و بهبود بهرهوري رندرينگ استفاده ميكرد.
انويديا نيز در سال ۲۰۰۱ سري كارتهاي گرافيكي GeForce 3 را عرضه كرد؛ اين سري اولين كارتهاي گرافيكي در جهان بودند كه سايهزنهاي پيكسلي قابل برنامهريزي داشتند. پنج سال پس از اين اتفاق ATI توسط AMD خريداري شد و از آن پس سري كارتهاي گرافيك Radeon با برند ايامدي به فروش ميرسيدند. برنامههاي سايهزني براي انجام سريع محاسبات و رندرها به موازيسازي احتياج داشتند، براي حل اين اشكال انويديا مفهوم ترد يا همان رشته را براي پردازندههاي گرافيكي مطرح كرد كه در ادامه بيشتر در مورد آن توضيح ميدهيم.
تفاوت GPU و CPU
پردازندهي گرافيكي از ابتدا بهعنوان مكملي براي پردازنده و سبكتر كردن بار كاري اين واحد، تكامل پيدا كرد. امروزه عملكرد پردازندهها با دستاوردهاي جديد در معماري ساخت آنها، افزايش فركانس و تعداد هستهها، روزبهروز قدرتمندتر ميشود، درمقابل پردازندههاي گرافيكي بهطور خاص براي سرعت بخشيدن به پردازشهاي گرافيكي توسعه داده شدهاند.
پردازندهها به صورتي برنامهريزي شدهاند كه بتوانند علاوه بر اينكه يك كار را با كمترين تأخير و بالاترين سرعت انجام ميدهند، خيلي سريع هم بين عمليات جابهجا شوند. در واقع نحوهي پردازش در CPUها، سريالي است.
درمقابل، پردازندهي گرافيكي بهطور خاص براي بهينهسازي توان عملياتي پردازشهاي گرافيكي توسعه داده شده است و امكان انجام كارها بهطور همزمان و موازي را فراهم ميكند. در تصوير زير تعداد هستههاي يك پردازنده و تعداد هستههاي يك پردازندهي گرافيكي را مشاهده ميكنيد؛ اين تصوير نشان ميدهد كه تفاوت اصلي بين CPU و GPU در تعداد هستههاي آنها براي پردازش يك وظيفه است.
از مقايسهي معماري كلي پردازندهها و پردزاندههاي گرافيكي ميتوان شباهتهاي زيادي بين اين دو واحد نيز پيدا كرد. هر دو از ساختارهاي مشابهي در لايههاي كش بهره ميبرند و هردو از كنترلري براي حافظه و يك رم اصلي استفاده ميكنند. نماي كلي از معماري پردازندههاي مدرن حاكي از آن است كه در اين واحد با تمركز بر حافظه و لايههاي كش، دسترسي به حافظه با تأخير كم مهمترين عامل در طراحي پردازندهها است (چيدمان دقيق به فروشنده و مدل پردازنده بستگي دارد).
هر پردازنده از چندين لايه كش تشكيل شده است:
- حافظهي كش سطح يك (L1) سريعترين، كمظرفيتترين و نزديكترين حافظه به پردازنده است و مهمترين دادههاي مورد نياز براي پردازش را در خود ذخيره ميكند.
- لايهي بعدي حافظهي كش سطح دو (L2) يا حافظهي كش خارجي است كه نسبت به L1 سرعت كمتر و حجم بيشتري دارد.
- حافظهي كش L3 در پردازنده بين تمام هستهها مشترك است و از لحاظ ظرفيت نسبت به حافظهي كش L1 و L2 حجم بيشتري و سرعت پايينتري دارد؛ حافظهي كش L4 هم مانند L3، نسبت به L1 و L2 حجم بيشتر و سرعت كمتري دارد؛ اين دو معمولاً بهصورت اشتراكي استفاده ميشوند. اگر دادهها در لايههاي كش قرار نگرفته باشند از رم اصلي (DDR) فراخواني ميشوند.
با نگاه به نماي كلي معماري پردازندهي گرافيكي (چيدمان دقيق به توليدكننده و مدل بستگي دارد) متوجه ميشويم كه ماهيت اين واحد به جاي دسترسي سريع به حافظه كش يا كاهش تأخير، روي به كار انداختن هستههاي موجود تمركز دارد. در واقع پردازندهي گرافيكي از چندين گروه هسته تشكيل شده است كه در حافظهي كش سطح يك قرار دارند.
پردازندهي گرافيكي در مقايسه با پردازنده، لايههاي حافظهي كش كمتر و كمظرفيتتري دارد، اين واحد به ترانزيستورهاي بيشتر مختصِ محاسبات مجهز است و كمتر به بازيابي دادهها از حافظه اهميت ميدهد؛ پردازندهي گرافيكي با رويكرد انجام محاسبات موازي توسعه داده شده است.
محاسبات با كارايي بالا (High Performance Computing) يكي از موارد استفادهي مؤثر و قابلاعتماد پردازشهاي موازي براي اجراي برنامههاي متخصصدي پيشرفته است؛ دقيقاً به همين دليل پردازندههاي گرافيكي براي اين دست از محاسبات مناسب هستند.
به زبان ساده، فرض كنيد براي انجام نوعي از محاسبات سنگين، دو راه پيش رو داشته باشيد:
- استفاده از تعداد كمي هستهي قدرتمند كه پردازشها را به صورت سريالي انجام ميدهند.
- استفاده از تعداد بالاي هستههايي نهچندان قدرتمند كه ميتوانند چندين پردازش را به صورت همزمان انجام دهند.
در سناريوي اول اگر يكي از هستهها را از دست بدهيم با اشكالي جدي روبهرو خواهيم شد؛ عملكرد دو هستهي ديگر تحت تأثير قرار خواهد گرفت و قدرت پردازشي بهشدت كاهش خواهد يافت، درمقابل اگر در سناريوي دوم هستهاي را از دست بدهيم، تغيير محسوسي در روند پردازش به وجود نميآيد و باقي هستهها به كار خود ادامه ميدهند.
پردازنده گرافيكي چندين كار را به صورت همزمان و پردازنده يك كار را با سرعت بسيار بالا انجام ميدهد
پهناي باند پردازندهي گرافيكي از پهناي باند پردازنده بسيار بالاتر است و به همين دليل پردازشهاي موازي با حجم بالا را خيلي بهتر انجام ميدهد. مهمترين مسئله دربارهي پردازندههاي گرافيكي اين است كه اين واحد پردازشي، براي پردازش موازي توسعه داده شده و در صورتي كه الگوريتم يا محاسبات، سرّي باشند و قابليت موازيسازي نداشته باشند، اصلاً اجرا نشده و باعث كندي سيستم ميشوند. هستههاي پردازنده از هستههاي پردازندههاي گرافيكي قدرتمندتر هستند و پهناي باند اين واحد نيز از پهناي باند GPU بسيار كمتر است.
آشنايي با معماري پردازنده گرافيكي
در نگاه اول، پردازندهي مركزي نسبت به پردازندهي گرافيكي، واحدهاي محاسباتي بزرگتر اما كمتري دارد. البته در انديشه متخصصين داشته باشيد كه يك هسته در پردازنده، سريعتر و هوشمندتر از يك هسته در پردازندهي گرافيكي عمل ميكند.
در طول زمان، فركانس هستههاي پردازنده براي بهبود عملكرد به تدريج افزايش پيدا كرد و برخلاف آن، فركانس هستههاي پردازندهي گرافيكي براي بهينه كردن مصرف و تطبيق نصب در موبايلها يا دستگاههاي ديگر، كاهش داده شد.
قابليت انجام غيرمنظم پردازشها را ميتوان گواهي بر هوشمند بودن هستههاي پردازنده دانست. همانطوركه گفته شد، واحد پردازش مركزي ميتواند دستورالعملها را با ترتيبي متفاوت از آنچه برايش تعريف شده، اجرا كند يا دستورالعملهاي مورد نياز در آيندهاي نزديك را پيشبيني كرده و عملوندها را براي بهينهسازي هرچه بيشتر سيستم و صرفهجويي در زمان، قبل از اجرا، آماده كند.
درمقابل، هستهي يك پردازندهي گرافيكي مسئوليت پيچيدهاي بر عهده ندارد و براي پردازشي خارج از دستور و برنامه، آنچنان كار زيادي انجام نميدهد. بهطور كلي، تخصص اصلي هستههاي پردازندههاي گرافيكي انجام عمليات مميز شناور مانند ضرب دو عدد و جمع كردن عددي سوم (A x B + C = Result) با گرد كردن نتيجه به عددي صحيح بود كه به اختصار آن را multiply-add يا MAD مينامند يا همان نتيجه را با دقت كامل (بدون كوتاهسازي) در مرحلهي ضرب استفاده ميكند كه به آن Fused Multiplay-Add يا FMA ميگويند.
جديدترين ريزمعماريهاي پردازندههاي گرافيكي ديگر امروزه به FMA هم محدود نيستند و عمليات پيچيدهتري مانند رهگيري پرتو يا پردازشهاي هستههاي تنسور را انجام ميدهند. هستههاي تنسور (Tensore Cores) و هستههاي رهگيري پرتو نيز براي ارائهي رندرهايي بيش از حد واقعگرايانه طراحي شدهاند.
هستههاي تنسور
انويديا در سال ۲۰۲۰، پردازندههاي گرافيكي مجهز به هستههاي افزودهاي را توليد كرد كه علاوه بر قابليت سايهزني (Shader)، براي پردازشهاي هوش مصنوعي، يادگيري عميق و شبكهي عصبي نيز متخصصد داشتند. اين هستهها، تنسور (Tensor) نام دارند. تنسور مفهومي رياضياتي است كه كوچكترين واحد تصورپذير آن، صفر بُعد (ساختار صفر در صفر) دارد و تنها يك مقدار را شامل ميشود. با افزايش تعداد بُعدها، ساختارهاي ديگر تنسور عبارتاند از:
- تنسور يكبُعدي: برداري (Vector با ساختار صفر در يك)
- تنسور دوبُعدي: ماتريسي (Matrix با ساختار يك در يك)
هستههاي تنسور در دستهي SIMD يا «دستورالعمل تكي براي چندين داده» قرار ميگيرند و استفاده از آنها در پردازندههاي گرافيكي با فراهم كردن تمامي نيازهاي محاسباتي و پردازشي موازي، تراشهاي بسيار باهوشتر از ماشينحساب براي جلوههاي گرافيكي به وجود آورد. انويديا در سال ۲۰۱۷ گرافيكي را با معماري كاملاً جديد بهنام ولتا (Volta) معرفي كرد كه با هدفگيري بازارهاي حرفهاي طراحي و ساخته شده بود؛ اين گرافيك به هستههايي مخصوص محاسبههاي تنسور مجهز بود، اما پردازندههاي گرافيكي GeForce از آن بيبهره بودند.
در آن زمان هستههاي تنسور قابليت انجام ضرب اعداد اعشاري تا ابعاد ۱۶ بيتي (FP16) و جمع با ابعاد ۳۲ بيتي (FP32) را داشتند. كمتر از يك سال بعد، انويديا معماري تورينگ را معرفي كرد؛ كه تنها تفاوتش با معماري قبلي فراهم كردن همراهي از هستههاي تنسور براي پردازندههاي گرافيكي GeForce و فرمتهاي دادهاي مانند اعداد صحيح هشت بيتي بود.
در سال ۲۰۲۰ معماري امپر در پردازندههاي گرافيكي A100 براي ديتاسنترها معرفي شد؛ در اين معماري بهرهوري و قدرت هستهها افزايش پيدا كرده، تعداد عمليات در هر چرخه چهار برابر شد و فرمتهاي دادهاي جديدي هم به مجموعهي همراهيشده، اضافه شده بود. امروزه هستههاي تنسور قطعات سختافزاري خاص و محدودي هستند كه در تعداد كمي از گرافيكهاي مختص مصرفكننده استفاده ميشوند. اينتل و AMD (دو بازيگر ديگر در دنياي گرافيكهاي كامپيوتري) در پردازندههاي گرافيكي خود هستههاي تنسور ندارند؛ اما شايد در آينده فناوري مشابهي عرضه كنند.
- هستههاي تنسور در فيزيك و مهندسي و در رياضيات متخصصد فراواني دارند: ميتوانند محاسبات پيچيده الكترومغناطيس و نجوم و مكانيك سيالات را انجام دهند.
- هستههاي تنسور ميتوانند وضوح تصاوير را افزايش دهند: اين هستهها تصاوير را در سطح گرافيك پايينتري (يا رزولوشن پايينتر) استخراج كرده و بعد از اتمام رندرگيري كيفيت تصاوير را بالا ميبرند.
- هستههاي تنسور نرخ فريم را بالا ميبرند: هستههاي تنسور ميتوانند بعد از فعال كردن قابليت رهگيري پرتو در بازيها، نرخفريم را در بازي افزايش دهند.
موتور رهگيري پرتو
پردازندههاي گرافيكي علاوه بر هستهها و لايههاي حافظهي كش ممكن است شامل سختافزاري براي تسريع رهگيري پرتو (Ray Tracing) نيز باشند، كه تابيدن منبع نور روي اجسام را شبيهسازي كرده و منطقهبنديهاي مختلفي را از لحاظ تابش نور ايجاد ميكند. رهگيري پرتوهاي سريع در بازيهاي ويدئويي ميتواند تصاوير واقعيتر و باكيفيتتري را به نمايش بگذارد.
قابليت رهگيري پرتو يكي از بزرگترين پيشرفتهاي سالهاي اخير در گرافيك كامپيوترها و صنعت گيمينگ است. اين قابليت در ابتدا تنها در صنعت فيلمسازي، توليد تصاوير كامپيوتري و در انيميشن و افكتهاي بصري بهكار گرفته ميشد، اما امروزه كنسولهاي گيمينگ PS5 و XBOX سري X نيز از قابليت رهگيري پرتو همراهي ميكنند.
در دنياي واقعي هر آنچه ميبينيم نتيجه برخورد نور به اجسام و بازتاب آن به چشم ما است؛ رهگيري پرتو همين كار را به صورت برعكس و با شناسايي منابع نور، مسير پرتوهاي نور، متريال، نوع سايه و ميزان انعكاس هنگام برخورد با اجسام انجام ميدهد. الگوريتم رهگيري پرتو بازتاب نور از اجسام با جنسهاي متفاوت را به شكلهاي متفاوت و واقعيتري نمايش ميدهد، سايهي اجسامي را كه در مسير پرتو نوري قرار دارند بسته به شفاف يا نيمهشفاف بودن آنها ترسيم ميكند و از قوانين فيزيك پيروي ميكند. به همين دليل تصاوير توليدشده با اين قابليت تا حد زيادي به واقعيت نزديك هستند.
موتور رهگيري پرتو خاموش (سمت راست) درمقابل موتور رهگيري پرتو روشن (سمت چپ)
انويديا براي اولين بار قابليت رهگيري پرتو را در سال ۲۰۱۸ و در گرافيكهاي سري RTX تحت معماري Turing منتشر كرد و پس از آن هم درايور جديدي معرفي كرد كه همراهي از رهگيري پرتو را براي برخي از گرافيكهاي سري GTX فراهم ميكرد كه عملكردي ضعيفتر نسبت به سري RTX دارند.
AMD نيز با معرفي معماري RDNA 2 رهگيري پرتو را به كنسولهاي PS5 و Xbox سري XS وارد كرد. فعال شدن اين قابليت در بازيها به دليل بار پردازشي سنگين، نرخفريم را كاهش ميدهد؛ براي مثال اگر يك بازي در حالت عادي با نرخ ۶۰ فريمبرثانيه روي سيستمي اجرا شود ممكن است با قابليت رهگيري پرتو تنها ۳۰ فريمبرثانيه ارائه دهد.
نرخ فريم كه بر حسب فريمبرثانيه (FPS) اندازهگيري ميشود، معياري مناسب براي نشان دادن عملكرد پردازندهي گرافيكي به حساب ميآيد كه نشاندهندهي تعداد تصاوير تكميلشدهاي است كه در هر ثانيه ميتوان نمايش داد؛ براي مقايسه، چشم انسان ميتواند حدود ۲۵ فريمبرثانيه را پردازش كند، بااينحال بازيهاي اكشن سريع بايد حداقل ۶۰ فريمبرثانيه پردازش كنند تا يك جريان بازي به شكل روان نمايش داده شود.
GPGPU چيست
كاربران زيادي از قابليت پردازش موازي و سريع پردازندههاي گرافيكي به نحوي سوءاستفاده كردند و پردازشهايي با امكان محاسبات موازي را بدون در انديشه متخصصين گرفتن وظيفهي سنتي پردازندهي گرافيكي به اين واحد منتقل ميكردند. GPGPU يا پردازندهي گرافيكي همهمنظوره راهكاري بود كه انويديا براي رفع اين اشكال معرفي كرد.
GPGPU (مخفف General Purpose Graphics Processing Unit) همان واحد پردازش گرافيكي است كه محاسبات غيرتخصصي (يا همان وظايف CPU) را نيز انجام ميدهد.
در واقع GPGPUها براي انجام كارهايي كه قبلاً توسط پردازندههاي پرقدرت صورت ميگرفتند، مانند محاسبات فيزيك، رمزگذاري/رمزگشايي، محاسبات علمي و توليد ارزهاي ديجيتال مانند بيت كوين استفاده ميشوند. ازآنجاكه پردازندهها گرافيكي براي موازيسازيهاي عظيم ساخته شدهاند، ميتوانند از بار محاسبهاي كه بر دوش قدرتمندترين پردازندهها است، بكاهند. يعني همان هستههايي كه براي سايهزدن چندين پيكسل بهطور همزمان به كار ميروند، ميتوانند بهطور مشابه چندين جريان داده را نيز به صورت همزمان پردازش كنند. البته اين هستهها به اندازهي هستههاي پردازنده پيچيده نيستند.
GeForce 3 اولين پردازندهي گرافيكي انويديا بود كه سايهزنهاي قابل برنامهريزي داشت. در آن زمان، هدف برنامهنويسان واقعيتر كردن گرافيكهاي سهبعدي شطرنجيشده يا بيتمپشده بود و اين پردازنده گرافيكي انويديا، قابليتهايي مانند تبديل سهبعدي، نقشهبرداري ناهمواريها و محاسبات نورپردازي را فراهم ميكرد.
پس از GeForce 3، پردازنده گرافيكي 9700 ATI، مجهز به DirectX 9، با تواناييهاي بيشتري براي برنامهنويسي مشابه پردازندهها معرفي شد. با معرفي ويندوز ويستا، همراه با DirectX 10، هستههاي سايهزن يكپارچه ديگر بهعنوان استاندارد شناخته شدند. اين قابليت كشفشدهي جديد پردازندههاي گرافيكي، محاسبات بيشتر مبتني بر پردازندهها را امكانپذير ميكرد.
از زمان انتشار DirectX 10 كه به سايهزنهاي يكپارچه براي ويندوز ويستا مجهز بود، تمركز بيشتري روي GPGPUها صورت گرفت و زبانهاي سطح بالاتري براي تسهيل برنامهنويسي براي محاسبات روي پردازندههاي گرافيكي توسعه داده شدند. ايامدي و انويديا، هر دو با رابطهاي برنامهنويسي (OpenCL متنباز و CUDA مخصوص انويديا) رويكردهايي براي توسعهي GPGPU داشتند.
CUDA چيست؟
به زبان ساده CUDA به برنامهها اجازه ميدهد از مغز كارت گرافيك يا همان پردازندهي گرافيكي بهعنوان پردازندهاي فرعي استفاده كنند. پردازنده وظايف خاصي را به گرافيكِ مجهز به هستهي CUDA منتقل ميكند، اين گرافيك براي پردازش و محاسبهي مواردي مانند نور، حركت و تعامل در سريعترين زمان ممكن بهينهسازي شده است و حتي در مواقع لازم پردازشها را از چندين مسير بهطور همزمان انجام ميدهد. دادههاي پردازششده سپس به پردازنده بازگردانده ميشوند و پردازنده از آنها براي محاسبات بزرگتر و مهمتري استفاده ميكند.
مزاياي هستههاي CUDA
سيستمهاي كامپيوتري مبتني بر نرمافزارها هستند، بنابراين بخش اعظمي از پردازشها بايد در كد برنامهها، برنامهريزي شود و ازآنجاكه عملكرد اصلي CUDA در محاسبه، توليد داده و دستكاري تصوير نهفته است، استفاده از هستههاي CUDA به برنامهنويسان كمك ميكند تا زمان پردازش افكتها، رندر و خروجيها را بهويژه در تغييرات مقياسها و همچنين شبيهسازيهايي مانند ديناميك سيالات و فرايندهاي پيشبيني به ميزان بالايي كاهش دهند. CUDA همچنين در منابع نور و رديابي اشعه عالي عمل ميكند و عملكردهايي شبيه به افكتهاي رندر، رمزگذاري، تبديل ويدئو و… به كمك آن بسيار سريعتر پردازش ميشوند.
CUDA براي كار با زبانهاي برنامهنويسي مانند C، C++ و Fortran طراحي شده است و همين امر استفاده از پردازندهي گرافيكي را براي متخصصان در برنامهنويسي موازي آسانتر ميكند. درمقابل، APIهاي قبلي مانند Direct3D و OpenGL به مهارتهاي پيشرفته در برنامهنويسي گرافيكي نياز داشتند.
اين طراحي براي پردازش موازي بلوكهاي بزرگ داده، مانند مثالهاي زير، نسبت به پردازندههاي مركزي مؤثرتر عمل ميكند:
- توابع هش رمزنگاري
- يادگيري ماشيني
- شبيهسازي ديناميك مولكولي
- موتورهاي فيزيك
- الگوريتمهاي مرتبسازي
- تواناييهاي برنامهنويسي
معايب هستههاي CUDA
CUDA رويكرد اختصاصي انويديا براي معرفي پردازندهاي گرافيكي شبيه به پردازندهي مركزي (GPGPU) است، به همين دليل براي بهرهمندي از مزاياي آن بايد فقط از محصولات اين شركت استفاده كنيد. براي مثال، اگر مك پرو داشته باشيد، امكان استفاده از قابليتهاي هستههاي CUDA را نداريد، چراكه اين دستگاه از گرافيك AMD براي پردازشهاي گرافيكي استفاده ميكند؛ علاوه بر اين، برنامههاي كمتري از CUDA نسبت به جايگزين آن همراهي ميكنند.
OpenCL؛ جايگزين CUDA
OpenCL سيستم نسبتاً جديد و متنبازي است كه جايگزيني براي CUDA در انديشه متخصصين گرفته ميشود. هر كسي ميتواند بدون پرداخت هزينهاي براي فناوري يا مجوز اختصاصي از عملكرد اين استاندارد در سختافزار يا نرمافزار خود بهره ببرد. CUDA از گرافيك بهعنوان پردازندهاي مشترك استفاده ميكند، درحاليكه OpenCL اطلاعات را بهطور كامل منتقل ميكند و از گرافيك بيشتر بهعنوان پردازندهاي مجزا استفاده ميكند. اين تفاوت در نحوهي بهكارگيري گرافيك را شايد نتوان بهطور دقيق اندازهگيري كرد، اما تفاوت قابل سنجش ديگري را كه بين اين دو استاندارد وجود دارد، ميتوان دشواري كدنويسي براي OpenCL نسبت به CUDA دانست؛ بهعنوان يك متخصص، شما به هيچ فروشندهاي وابسته نيستيد و همراهي آنقدر گسترده است كه اكثر برنامهها حتي به پذيرش آن اشاره نميكنند.
CUDA و OpenCL درمقابل OpenGL
همانطوركه قبلاً اشاره شد، OpenGL را ميتوان شروع داستان اين رقابت دانست؛ البته هدف از توسعهي اين واسط برنامهنويسي استفاده از گرافيك بهعنوان پردازندهاي همهمنظوره نيست و در عوض بهسادگي براي ترسيم پيكسلها يا رئوس روي صفحه به كار ميرود. OpenGL سيستمي است كه به گرافيك اجازه ميدهد تصاوير دو بعدي و سهبعدي را بسيار سريعتر از پردازنده ايجاد كند. همانطوركه CUDA و OpenCL جايگزين يكديگر هستند، OpenGL نيز جايگزيني براي سيستمهايي مانند DirectX در ويندوز است.
به زبان ساده، OpenGL تصاوير را بسيار سريع ترسيم ميكند، OpenCL و CUDA محاسبات لازم را هنگام تعامل ويدئوها با جلوهها و رسانههاي ديگر پردازش ميكنند؛ OpenGL ممكن است محتوايي را در رابط ويرايش قرار دهد و آن را پخش كند، اما وقتي صحبت از تصحيح رنگ براي اين محتوا به ميان ميآيد، CUDA يا OpenCL محاسبات لازم را براي تغيير پيكسلها انجام ميدهند. هم OpenCL و هم CUDA ميتوانند از سيستم OpenGL استفاده كنند و سيستمي مجهز به گرافيكي با آخرين همراهي OpenGL هميشه سريعتر از كامپيوتري با پردازنده و گرافيك يكپارچه عمل خواهد كرد.
OpenCL يا CUDA
تفاوت اصلي بين CUDA و OpenCL در اختصاصي بودن چارچوب CUDA است كه توسط انويديا ايجاد شده و درمقابل OpenCL متنباز است. با فرض اينكه نرمافزار و سختافزار سيستمي از هر دو گزينه همراهي كند، توصيه ميشود در صورت وجود گرافيك انويديا از CUDA استفاده كنيد؛ اين استاندارد در بيشتر مواقع سريعتر از OpenCL عمل ميكند. علاوه بر اين گرافيكهاي انويديا از OpenCL هم همراهي ميكنند، البته بهرهوري گرافيكهاي AMD از OpenCL بيشتر است. انتخاب بين CUDA يا OpenCL به نيازهاي فرد، نوع كار، نوع سيستم و حجم كاري و عملكرد آن بستگي دارد.
براي مثال، ادوبي در وبسايت خود توضيح داده است كه با استثنائات بسيار كمي، هر كاري كه CUDA براي Premiere Pro انجام ميدهد، ميتواند توسط OpenCL نيز انجام شود. بااينحال اكثر متخصصاني كه اين دو استاندارد را مقايسه كردهاند، معتقدند كه CUDA با محصولات ادوبي سريعتر عمل ميكند.
مطرحترين برندها
در بازار پردازندههاي گرافيكي، AMD و انويديا نامهاي شناختهشده و مطرح هستند. اولي قبلاً ATI بود و در ابتدا با نام تجاري Radeon براي پردازندههاي گرافيكي خود در سال ۱۹۸۵ شروع به كار كرد؛ سپس انويديا با عرضهي اولين پردازندهي گرافيكي خود در سال ۱۹۹۹ بهعنوان رقيب ATI شناخته شد. AMD در سال ۲۰۰۶، ATI را خريداري كرد و اكنون در دو جبههي مختلف با انويديا و اينتل رقابت ميكند. در واقع، سليقهي شخصي و وفاداري به برند، مهمترين عواملي هستند كه ايامدي و انويديا را از هم متمايز ميكنند.
انويديا اخيراً گرافيك سري GTX 10 عرضه كرده است، اما گزينههاي همردهي AMD معمولاً انتخابهاي مقرونبهصرفهتري هستند. رقيبهاي ديگر مانند اينتل نيز در بازي هستند و راهحلهاي گرافيكي خود را روي تراشه پيادهسازي ميكنند، اما در حال حاضر AMD و انويديا را ميتوان بهعنوان مطرحترين برندها در اين حوزه معرفي كرد. سرعت پردازشي گرافيكهاي انويديا از گرافيكهاي AMD پايينتر است. گرافيكهاي انويديا با تعداد هستههاي بيشتر و فركانسهاي بالاتر براي گيمينگ مناسب هستند، اما ازآنجاكه كش پايينتري دارند، براي انجام برخي پردازشهاي موازي مانند ماينينگ و استخراج ارزهاي ديجيتال به پاي پردازندههاي AMD نميرسند. در ادامه سه برند مطرح در دنياي گرافيك و معماري گرافيكهاي آنها را بهطور خلاصه معرفي ميكنيم و در آيندهاي نزديك در مقالهاي جداگانه اين رقيبها، معماريها و محصولاتشان را به تفصيل مطالعه خواهيم كرد.
اينتل
اينتل (Intel) يكي از بزرگترين توليدكنندههاي تجهيزات كامپيوتري در جهان است كه در زمينهي توليد سختافزار، انواع مختلف ريزپردازنده، نيمرسانا، مدار مجتمع، پردازنده و پردازندهي گرافيكي فعاليت ميكند. AMD و انويديا دو رقيب مطرح اينتل هستند و هركدام نيز طرفداران مخصوص به خود را دارند. اولين تلاش اينتل براي عرضهي كارت گرافيك اختصاصي Intel740 بود كه در سال ۱۹۹۸ منتشر شد، اما به دليل عملكردي ضعيفتر از انتظارات بازار، ناموفق جلوه كرد و اينتل را مجبور كرد تا توسعه محصولات گرافيكي گسسته را متوقف كند. بااينحال، فناوري اين گرافيك در خط توليد Intel Extreme Graphics زنده ماند. اينتل پس از اين تلاش ناموفق، با معماري Larrabee يك بار ديگر در سال ۲۰۰۹ شانس خود را در دنياي گرافيك امتحان كرد. اين بار، فناوري توسعهيافتهي قبلي در معماري Xeon Phi استفاده شد.
در آوريل ۲۰۱۸، خبري مبني بر جمعآوري تيمي براي توسعهي واحدهاي پردازش گرافيكي گسسته توسط اينتل منتشر شد كه هم ديتاسنترها و هم بازار گيمينگ را هدف قرار داده بود و در همين راستا نيز راجا كودوري، مدير سابق گروه فناوريهاي Radeon از ايامدي را جذب كرد. اينتل خيلي زود اعلام كرد كه قصد دارد در سال ۲۰۲۰ پردازندهي گرافيكي مجزايي را معرفي كند. اولين پردازندهي گرافيكي گسستهي Xe با نام رمز DG1 در اكتبر ۲۰۱۹ به صورت آزمايشي عرضه شد و انتظار ميرفت از آن بهعنوان GPGPU براي متخصصدهاي ديتاسنترها و رانندگي خودكار نيز استفاده شود. اين محصول در ابتدا با ليتوگرافي ۱۰ نانومتري و سپس در سال ۲۰۲۱ با ليتوگرافي ۷ نانومتري ساخته شد و از فناوري بستهبندي انباشت سهبعدي (قالببندي Foveros مخصوص اينتل) استفاده ميكرد.
Intel Xe يا به اختصار Xe، نام معماري گرافيك اينتل است كه از نسل ۱۲ در پردازندههاي اينتل بهكار ميرود، اين شركت توسعهي گرافيك مجزا و كارت گرافيك دسكتاپ را نيز براساس معماري Xe و نام تجاري Arc Alchemist آغاز كرده است. Xe خانوادهاي از معماريها محسوب ميشود كه هر كدام تفاوتهاي قابلتوجهي با يكديگر دارند و از ريزمعماري هاي Xe-LP، Xe-HP، Xe-HPC و Xe-HPG تشكيل شده است.
بر خلاف واحدهاي پردازش گرافيك قبلي اينتل كه از واحدهاي اجرايي (EU) بهعنوان واحد محاسباتي استفاده ميكردند، Xe-HPG و Xe-HPC از هستههاي Xe استفاده ميكنند. هستههاي Xe واحدهاي منطق محاسباتي برداري و ماتريسي دارند و به آنها موتورهاي برداري و ماتريسي گفته ميشود و علاوه بر اين واحدها، به حافظهي كش L1 و ساير سختافزارها نيز مجهز هستند.
- Xe-LP (توان كم): Xe-LP نوع كم مصرف معماري Xe است و بهعنوان گرافيك يكپارچه در پردازندههاي نسل يازدهم اينتل (Core)، پردازندههاي گرافيكي مجزاي موبايل Iris Xe MAX (با اسم رمز DG1) و پردازندههاي گرافيكي سرور H3C XG310 (با اسم رمز SG1) استفاده ميشوند. اين سري پردازندههاي گرافيكي، با ولتاژي مشابه نسل قبل، فركانس پردازشي بيشتري ارائه ميدهند. Xe-LP در بزرگترين پيكربندي خود، ۵۰ درصد واحد اجرايي (EU) بيشتري نسبت به ۶۴ واحد اجرايي نسل يازدهم معماري گرافيكي در سري آيسليك دارد و به همين دليل منابع محاسباتي آن بهطرز چشمگيري افزايش يافتهاند. در كنار افزايش ۵۰ درصدي واحدهاي اجرايي، اينتل معماري پردازندههاي گرافيكي Xe-LP را بهبود داده و به جاي دو واحد محاسبه و منطق (ALU) با چهار مسير در نسل قبلي از هشت مسير به ازاي هر واحد محاسبه و منطق بهره ميبرد. علاوه بر اين در معماري Xe LP، يك حافظهي كش سطح يك نيز اضافه شده كه تأخير در ارسال داده را كاهش ميدهد و از فشردهسازي داده بهروش end-to-end نيز همراهي ميكند كه پهناي باند را افزايش داده و و انجام كارهايي مانند استريم بازي، ضبط چت ويدئويي و... را سرعت ميبخشد.
- Xe-HP (عملكرد بالا): Xe-HP گرافيك ديتاسنترها و با كارايي بالا به حساب ميآيد كه براي عملكرد FP64 و مقياسپذيري چند كاشي بهينه شده است.
- Xe-HPC (محاسبات با عملكرد بالا): Xe-HPC نوع محاسباتي با كارايي بالا در معماري Xe است. هر هسته در Xe-HPC شامل ۸ موتور برداري و ۸ موتور ماتريسي، به همراه يك حافظهي كش L1 بزرگ ۵۱۲ كيلوبايتي است.
- Xe-HPG (گرافيك با كارايي بالا): Xe-HPG نوع گرافيكي با كارايي بالا معماري Xe است كه از ريزمعماري مبتني بر Xe-LP استفاده ميكند و با بهبودهاي Xe-HP و Xe-HPC همراه است. Xe-HPG همواره بر عملكرد گرافيكي متمركز بوده و از رديابي پرتوي شتابدهندهي سختافزاري، DisplayPort 2.0، سوپرنمونهبرداري مبتني بر شبكههاي عصبي (XeSS) مشابه DLSS انويديا و DirectX 12 Ultimate همراهي ميكند. هر هستهي Xe-HPG شامل ۱۶ موتور برداري و ۱۶ موتور ماتريسي است.
انويديا
انويديا (Nvidia) در سال ۱۹۹۳ تأسيس شد و يكي از سازندگان اصلي كارتهاي گرافيك و پردازندههاي گرافيكي (GPU) به حساب ميآيد. انويديا انواع مختلف واحدهاي گرافيكي را توليد ميكند كه هر كدام قابليتهاي منحصربهفردي ارائه ميدهند. در ادامه به صورت مختصر ريزمعماريهاي واحدهاي گرافيكي انويديا و بهبودهاي هركدام نسبت به نسل قبل را خيلي خلاصه معرفي ميكنيم:
- كلوين: ريزمعماري كلوين (Kelvin) در سال ۲۰۰۱ منتشر شد و در پردازنده گرافيكي كنسول بازي اصلي Xbox به كار رفت. واحدهاي گرافيكي سري GeForce 3 و GeForce 4 با اين ريزمعماري عرضه شدند.
- رانكين: انويديا ريزمعماري رانكين (Rankine) را در سال ۲۰۰۳ و بهعنوان نسخهي بهبوديافتهي ريزمعماري كلوين معرفي كرد. اين ريزمعماري در سري گرافيكهاي GeForce 5 استفاده شد. ظرفيت حافظهي ويدئويي در اين ريزمعماري ۲۵۶ مگابايت بود و از برنامههاي سايهزني vertex و fragment همراهي ميكرد. سايهزنهاي Vertex هندسهي صحنه را تغيير ميدهند و طرحبندي سهبعدي ايجاد ميكنند. شيدرهاي Fragment نيز در فرايند رندر، رنگ هر پيكسل را مشخص ميكنند.
- كوري: كوري (Curie) ريزمعماري بهكاررفته در گرافيكهاي سري 6 و 7 GeForce در سال ۲۰۰۴ بهعنوان جانشين Rankine منتشر شد. ظرفيت حافظهي ويدئويي در كوري ۵۱۲ مگابايت بود و اولين نسل از پردازندههاي گرافيكي انويديا محسوب ميشد كه از قابليت رمزگشايي ويدئوي PureVideo همراهي ميكرد.
- تسلا: ريزمعماري گرافيكي تسلا (Tesla) در سال ۲۰۰۶ معرفي شد و چندين تغيير مهم در خط توليد پردازندههاي گرافيكي انويديا ايجاد كرد. معماري تسلا علاوه بر اينكه در واحدهاي گرافيكي سري 8، 9، 100، 200 و 300 GeForce به كار ميرفت، در محصولات گرافيكي Quadro نيز براي مواردي غير از پردازشهاي گرافيكي نيز استفاده ميشود. انويديا در سال ۲۰۲۰ و بعد از معرفي خودروي الكتريكي تسلا توسط ايلان ماسك، براي جلوگيري از سردرگمي بيشتر، استفاده از نام تسلا را متوقف كرد.
- فِرمي: فرمي (Fermi) در سال ۲۰۱۰ منتشر شد و قابليتهايي مانند همراهي از ۵۱۲ هستهي CUDA، پارتيشنبندي حافظهي كش L1/حافظه اشتراكي، ظرفيت ۶۴ كيلوبايتي براي رم و همراهي از كد تصحيح خطا (ECC) را ارائه ميكرد. برخي گرافيكهاي سري GeForce 8، GeForce 500 و GeForce 400 مبتني بر اين ريزمعماري توليد شدند.
- كِپلر: ريزمعماري گرافيكي كپلر (Kepler) پس از فرمي در سال ۲۰۱۲ معرفي شد و با پيشرفتهايي كليدي نسبت به نسل قبل همراه بود. اين ريزمعماري به هستههاي اجرايي جديدي با قابليت پردازشهاي همزمان (SMX) مجهز بود و از TXAA (روش ضد آلياسينگ) همراهي ميكرد. در تكنيك ضد آلياسينگ در ويدئوهاي كامپيوتري، اطلاعات فريمهاي گذشته و فريم فعلي براي حذف ناهمواريها در فريم فعلي با هم تركيب ميشوند و هر پيكسل يك بار در هر فريم نمونهبرداري ميشود، اما در هر فريم، نمونه در مكان متفاوتي در پيكسل قرار دارد. پيكسلهاي نمونهگيري شده در فريمهاي گذشته با پيكسلهاي نمونهگيري شده در قاب فعلي تركيب ميشوند تا تصويري با كيفيت بهتر ايجاد كنند. ريزمعماري كپلر برق كمتري مصرف ميكند و تعداد هستههاي CUDA در آن به ۱۵۳۶ افزايش پيدا كرده است. اين ريزمعماري با تقويت پردازندهي گرافيكي قابليت اوركلاك خودكار دارد و به قابليت GPUDirect كه امكان برقراري ارتباط واحدهاي گرافيكي را بدون نياز به دسترسي به پردازنده فراهم ميكند، مجهز است. انويديا در برخي از واحدهاي گرافيكي سري GeForce 600، GeForce 700 و GeForce 800M از اين ريزمعماري بهره گرفته است.
- مكسول: ريزمعماري مكسول (Maxwell) در سال ۲۰۱۴ منتشر شد و نسل اول پردازندههاي گرافيكي مبتني بر اين ريزمعماري نسبت به فِرمي، پردازندههاي كارآمدتر درنتيجهي پيشرفتهاي مربوط به كنترل پارتيشنبندي منطقي، كاهش اتلاف توان ديناميكي با حذف فركانس زماني كه مدار در حال استفاده نيست، زمانبندي دستورالعملها و متعادلسازي حجم كاري، ۶۴ كيلوبايت حافظهي مشترك اختصاصي براي هر واحد اجرايي، بهبود عملكرد با كمك حافظهي مشترك بومي، همراهي از موازي كاري پويا را نويد ميدادند. برخي از واحدهاي گرافيكي سري GeForce 700، GeForce 800M، GeForce 900 و Quadro Mxxx با ريزمعماري مكسول به بازار عرضه شدند.
- پاسكال: پاسكال (Pascal) در سال ۲۰۱۶ جانشين ريزمعماري مكسول شد. گرافيكهاي مبتني بر اين ريزمعماري (سري GeForce 10) در مقايسه با نسل قبلي از پيشرفتهايي مانند همراهي از ارتباطات NVLink، براي سرعت بالاتري نسبت به رابط PCIe، حافظه با پهناي باند بالا 2 (HBM2) برابر با ۷۲۰ گيگابايت، قابليت پردازش پيشاجرايي (Preemption) يا بازپسگيري (كه با ايجاد وقفهي موقتي در يك پردازش درحالاجرا، پردازش ديگري با اولويت بالاتر انجام ميدهد) و متعادلسازي فعال براي بهينهسازي استفاده از منابع پردازندهي گرافيكي بهره ميبرند.
- ولتا: ولتا (Volta) تكرار ريزمعماري منحصربهفردي بود كه در سال ۲۰۱۷ منتشر شد. تا قبل از ولتا اكثر ريزمعماريهاي قبلي پردازندههاي گرافيكي انويديا براي مصارف عادي توسعه داده شده بودند، اما پردازندههاي گرافيكي ولتا كاملاً براي متخصصدهاي حرفهاي مناسب بودند؛ علاوه بر اين، هستههاي تنسور (Tensor Cores) نيز اولين بار در اين ريزمعماري به كار گرفته شدند. همانطور كه پيشتر اشاره شد، هستههاي تنسور نوع جديدي از هستههاي پردازشي هستند كه محاسبات رياضي تخصصي و عمليات ماتريسي را انجام ميدهند و بهطور خاص در هوش مصنوعي و يادگيري عميق متخصصد دارند. واحدهاي گرافيكي سري Tesla V100، Tesla V100S، Titan V و Quadro GV100 مبتني بر ريزمعماري ولتا توسعه داده شدهاند.
- تورينگ: ريزمعماري تورينگ (Turing) در سال ۲۰۱۸ معرفي شد و علاوه بر همراهي از هستههاي تنسور به تعدادي پردازندهي گرافيكي متمركز بر مصرفكننده نيز مجهز بود. انويديا از اين ريزمعماري در پردازندههاي گرافيكي سري Quadro RTX و GeForce RTX استفاده ميكند. تورينگ از رديابي پرتوهاي بلادرنگ يا همان RTX (مخفف Real-Time Ray Tracing) همراهي ميكند و براي انجام محاسبات سنگين مانند واقعيت مجازي (VR) متخصصد دارد. انويديا براي واحدهاي گرافيكي سري GeForce 16، GeForce 20، Quadro RTX و Tesla T4 از اين ريزمعماري بهره گرفته است.
- امپر: امپر (Ampere) جديدترين ريزمعماري انويديا است كه بيشتر براي محاسبات با عملكرد بالا (HPC) و متخصصدهاي هوش مصنوعي به كار ميرود. هستههاي موجود در اين ريزمعماري از نوع تنسور هستند و به رابط نسل سوم NVLink، قابليت پراكندگي ساختاري (تبديل پارامترهاي غيرضروري به صفر براي فعال كردن يادگيري مدلهاي هوش مصنوعي)، رديابي پرتوهاي نسل دوم، قابليت MIG (مخفف Multi-Instance GPU) براي فعال كردن پارتيشنبندي جداگانه و بهينهسازي عملكرد هستههاي CUDA مجهز هستند. واحدها گرافيكي سري GeForce 30، ورك استيشنها و ديتا سنترهاي انويديا مبتني بر اين ريزمعماري توسعه داده شدهاند.
بهطور كلي شايد بتوان تورينگ را محبوبترين ريزمعماري انويديا دانست، زيرا قابليتهاي رهگيري پرتو و رندرينگ تركيبي در تورينگ، انيميشنهاي سهبعدي چشمگير و تصاويري واقعگرايانه خلق ميكند كه با واقعيت شباهت بسياري دارند. به ادعاي انويديا، قابليت رديابي بيدرنگ پرتو (Real-Time Ray Tracing) در واحدهاي گرافيكي مبتني بر ريزمعماري تورينگ ميتواند يك ميليارد پرتو در هر ثانيه را براي خلق تصاوير گرافيكي محاسبه كند.
AMD
AMD (مخفف Advanced Micro Devices) در سال ۱۹۶۹ تأسيس شد و حالا بهعنوان رقيبي مطرح براي انويديا و اينتل در زمينه توليد پردازنده و پردازندههاي گرافيكي فعاليت ميكند. اين شركت بعد از خريد ATI در سال ۲۰۰۶، محصولات اين برند را تحت نام تجاري خود توسعه ميدهد. واحدهاي گرافيكي AMD در چند سري مختلف زير توليد ميشوند:
- سري Radeon: سري رايج و معمولي كه همان يادگار ATI هستند.
- سري Mobility Radeon: گرافيكهاي كممصرف AMD را شامل ميشوند كه بيشتر در لپتاپها به كار ميروند.
- سري Fire pro: گرافيكهاي قدرتمند ايامدي كه براي وركاستيشنها طراحي شدهاند.
- سري Radeon pro: بهعنوان نسل جديد گرافيكهاي Fire Pro شناخته ميشوند.
گرافيكهاي AMD قبلاً چهار رقمي شمارهگذاري ميشدند: Radeon HD 7750.
در اين گرافيكها هرچه شماره مدل بزرگتر باشد، گرافيك قويتر و جديدتر است. براي مثال گرافيك HD 8770 از HD 8750 قويتر و بهروزتر است؛ البته اين موضوع دربارهي نسلهاي مختلف صدق نميكند. به اين معني كه لاخبار تخصصياً گرافيكي از نسل ۷ را نميتوان بدون مطالعه و تنها از روي عدد نسل با گرافيكي از نسل ۸ مقايسه كرد و آن را ضعيفتر دانست. ايامدي پس از گرافيك سري Radeon RX 5700، روند نامگذاري محصولات خود را تغيير داد؛ RX 5700 XT و RX 5700 نخستين كارتهاي گرافيكي هستند كه با روش نامگذاري جديد ايامدي به بازار عرضه شدند. واحدهاي گرافيكي AMD درحالحاضر در سه دستهبندي كلي ارائه ميشوند: سري R5 و سري R7 و سري R9.
- سري R5 و R6: گرافيكهاي پايينرده و نسبتاً ضعيف ايامدي هستند.
- سري R7 و R8: گرافيكهاي متوسط AMD را تشكيل ميدهند و براي ويرايش در برنامههايي مانند فتوشاپ و افترافكت مناسب هستند.
- سري R9: قويترين گرافيكهاي ايامدي به اين خانواده تعلق دارند و براي گيمينگ عملكردي قابلقبول ارائه ميدهند؛ تا جايي كه برخي از گرافيكهاي سري R9، مخصوص دستگاههاي واقعيت مجازي يا VR طراحي شدهاند.
درحالحاضر تنها پسوند فعال براي واحدهاي گرافيكي AMD، پسوند XT است كه ردهبالا بودن، عملكرد بهتر و فركانس بالاتر آن محصول را نشان ميدهد.
فرق پردازندهي گرافيكي و كارت گرافيك
ازآنجاكه پردازندهي گرافيكي، واحدي تخصصي براي پردازش و طراحي گرافيكهاي كامپيوتري بوده و با همين هدف هم بهينهسازي شده است، اين وظيفه را بسيار كارآمدتر از يك پردازندهي مركزي انجام ميدهد. اين تراشه بيشترين محاسبات گرافيكهاي درون بازي، رندر كردن تصاوير، مديريت رنگها و… را بر عهده دارد و تكنيكهاي پيشرفتهي گرافيكي مانند رهگيري پرتو (ray tracing) يا سايهزني براي آن تعريف شده؛ درمقابل كارت گرافيك (Graphics Card) قطعهي فيزيكي و سختافزاري در سيستمهاي كامپيوتري است كه تعداد زيادي قطعهي الكترونيكي روي آن قرار دارد.
فناوري توليد كارتهاي گرافيك از گذشته تا امروز، با تغييرات بسيار زيادي همراه بوده است و دو يا سه دهه قبل اين قطعات با عنوانهايي مانند كارت نمايش (display card) يا كارت ويدئويي (video Card) شناخته ميشدند. در آن دوره كارتهاي گرافيك پيچيدگيهاي امروزي را نداشتند و تنها كاري كه انجام ميدادند نمايش تصاوير و ويدئو روي نمايشگر بود. با افزايش قابليتهاي گرافيكي و همراهي كارتها از انواع شتابدهندههاي سختافزاري براي ارائهي تكنيكهاي مختلف گرافيكي، بهتدريج نام كارت گرافيكي براي اين قطعات به كار برده شد.
اجزاي كارت گرافيك
امروزه اين قطعات قدرتمندتر از قبل هستند و ممكن است سيستم مورد نياز براي مصارف مختلف مانند گيمينگ را با فناوريهاي متفاوتي ارائه دهند. بنابراين تمام كارتهاي گرافيكها اجزاي تشكيلدهندهي كاملاً يكساني ندارند، اما قطعات كليدي در آنها يكسان است. براي استفاده از اين قطعه نياز خواهيد داشت تا درايور گرافيكي (Graphics Driver) متناسب با كارت گرافيك خود را روي سيستم نصب كنيد؛ اين درايور حاوي دستورالعملهايي در مورد نحوهي شناسايي و عملكرد كارت گرافيك است و مشخصههاي مختلفي را براي اجراي انواع بازيها و برنامهها تعيين ميكند. كارت گرافيك علاوه بر پردازندهي گرافيكي، به قطعات ديگري مانند حافظهي ويدئويي، برد مدار چاپي (PCB)، كانكتورها و خنككننده مجهز است. در تصوير بعد ميتوانيد با اين قطعات آشنا شويد.
حافظهي ويدئويي
حافظهي ويدئويي (Video Memory) به محلي براي ذخيرهي دادههاي پردازششده گفته ميشود كه با رم يا GDDR متفاوت است. اين واحد بسته به استفاده ميتواند در ظرفيتهاي مختلفي ارائه شوند.
برد مدار چاپي
برد مدار چاپي (PCB)، بردي است كه قطعات كارت گرافيك روي آن قرار داده ميشود و ممكن است از لايههاي مختلفي تشكيل شده باشد. جنس اين بردها در كيفيت كار كارت گرافيك مؤثر خواهد بود.
كانكتورهاي نمايشگر
دادهها پس از پردازش و انجام محاسبات و… براي نمايش روي نمايشگر به كابل و كانكتور نمايشگر (Display Connectors) نياز دارند. اين كابلها در انواع مختلف و بسته به نوع متخصصي محصول از كانكتورهاي مختلفي استفاده ميكنند. براي مثال براي نمايش وضوح ۴K و نرخ فريم بسيار بالا، از پورتهاي HDMI و DVI با پينهاي بيشتر، استفاده ميشود و براي نشان دادن تصاوير با رزولوشنهاي پايينتر نيز پورت VGA بهكار ميرود؛ امروزه بيشتر كارتهاي گرافيكي، حداقل از يك پورت HDMI بهرهمند هستند.
پل
براي برخي از كارتهاي گرافيكي بالارده اين قابليت وجود دارد كه با كارتهاي گرافيك بالاردهي ديگر، در كنار هم بهكار روند. چنين قابليتي (Bridge)، الگوريتم پردازش موازي براي گرافيكهاي كامپيوتري است كه به منظور افزايش قدرت پردازش استفاده ميشود و در كارتهاي گرافيكي انويديا با SLI (مخفف Scalable Link Interface) و در كارتهاي گرافيكي AMD نيز با عبارت Crossfire نشان داده ميشود.
- SLI براي اولين بار توسط 3dfx و در خط كارت گرافيك Voodoo2 استفاده شد؛ پس از خريد 3dfx، انويديا اين فناوري را به دست آورد اما از آن استفاده نكرد. انويديا در سال ۲۰۰۴ نام SLI را دوباره معرفي كرد و قصد داشت از آن در سيستمهاي كامپيوتري مدرن مبتني بر گذرگاه PCIe استفاده كند؛ اما استفاده از آن در سيستمهاي مدرن امروزي به مادربردهاي سازگاري نياز داشت.
- Crossfire نيز فناوري معرفيشده توسط ATI بود كه امكان استفادهي همزمان از چند كارت گرافيكي را براي مادربرد فراهم ميكرد. به واسطهي اين فناوري، تراشهي كنترلكنندهاي روي برد اصلي نصب ميشد كه وظيفهي كنترل كانالهاي واسطه و ادغام اطلاعات آنها براي نمايش روي نمايشگر را بر عهده داشت؛ بهطور رسمي تا ۴ كارت گرافيك را ميتوان به صورت Crossfire نصب كرد كه در اين صورت به آن Quad-Crossfire ميگويند. اين فناوري براي اولين بار به صورت رسمي در سپتامبر ۲۰۰۵ و براي رقابت با SLI، معرفي شد.
رابط گرافيك
اسلات متصلكنندهي كارت گرافيك به مادربرد يا پايهي نگهدارنده در گذشته APG نام داشت.؛ پس از APG، رابط ديگري به نام PCI معرفي شد و در نهايت امروزه آنچه بهعنوان رابط كارت گرافيك و مادربرد شناخته ميشود PCIe يا PCI Express است كه نقش متصلكننده، برقرساني به برد و انتقال اطلاعات را براي كارت گرافيك ايفا ميكند. در واقع PCI مخفف Peripheral Component Interconnet و به معني رابط اجزاي جانبي است.كنسريوم PCI-SIG در سال ۲۰۱۸ اهداف كلي نسل ششم درگاه ارتباطي PCIe را منتشر كرد؛ دو سال بعد اين درگاه در سال ۲۰۲۰ در حالي عرضه شد كه هنوز نسل چهارم آن بهطور گسترده فراگير نشده و كارتهاي گرافيك براي متخصصي عادي نيز از تمام ظرفيت PCIe 3.0 بهره نميبرند.
درگاه PCIe 6.0، بدون نياز به افزايش پهناي باند يا فركانسهاي كاري بيشتر و با استفاده از روشهاي فعلي ميتواند دو برابر داده بيشتر از PCIe 5.0، يعني ۲۵۶ گيگابايتبرثانيه داده را ازطريق ۱۶ مسير منتقل كند و با نسلهاي قبلي خود نيز سازگار است تا امكان استفاده از كارتهاي قديميتر در درگاههاي جديد دردسترس باشد.
پهناي باند PCI Express بر مبناي نرخ انتقال داده بهازاي هرجهت (GB/second/direction) | ||||||
---|---|---|---|---|---|---|
پهناي باند اسلات | PCIe 1.0 (۲۰۰۳) | PCIe 2.0 (۲۰۰۷) | PCIe 3.0 (۲۰۱۰) | PCIe 4.0 (۲۰۱۷) | PCIe 5.0 (۲۰۱۹) | PCIe 6.0 (۲۰۲۲) |
x1 | ۰٫۲۵ گيگابايت بر ثانيه | ۰٫۵ گيگابايت بر ثانيه | ۱ گيگابايت بر ثانيه | ۲ گيگابايت بر ثانيه | ۴ گيگابايت بر ثانيه | ۸ گيگابايت بر ثانيه |
x2 | ۰٫۵ گيگابايت بر ثانيه | ۱ گيگابايت بر ثانيه | ۲ گيگابايت بر ثانيه | ۴ گيگابايت بر ثانيه | ۸ گيگابايت بر ثانيه | ۱۶ گيگابايت بر ثانيه |
x4 | ۱ گيگابايت بر ثانيه | ۲ گيگابايت بر ثانيه | ۴ گيگابايت بر ثانيه | ۸ گيگابايت بر ثانيه | ۱۶ گيگابايت بر ثانيه | ۳۲ گيگابايت بر ثانيه |
x8 | ۲ گيگابيتبرثانيه | ۴ گيگابايت بر ثانيه | ۸ گيگابايت بر ثانيه | ۱۶ گيگابايت بر ثانيه | ۳۲ گيگابايت بر ثانيه | ۶۴ گيگابايت بر ثانيه |
x16 | ۴ گيگابايت بر ثانيه | ۸ گيگابايت بر ثانيه | ۱۶ گيگابايت بر ثانيه | ۳۲ گيگابايت بر ثانيه | ۶۴ گيگابايت بر ثانيه | ۱۲۸ گيگابايت بر ثانيه |
مدار تنظيمكننده ولتاژ
پس از برقرساني اوليه توسط رابط PCIe، جريان واردشده به كارت گرافيكي بايد بازنگري و تعديل شود. اين وظيفه به عهدهي مدار تنظيمكنندهي ولتاژ (VRM) بوده كه جريان الكتريكي موردنياز بخشهاي مختلف مانند حافظه و پردازندهي گرافيكي را تأمين ميكند. عملكرد صحيح و اعمال ولتاژهاي منظم، به اندازه و بهموقع اين مدار ميتواند دوام كارت گرافيك را افزايش داده و مصرف انرژي را بهينه كند. درواقع مدار تنظيمكنندهي ولتاژ تصميم ميگيرد برقرساني چگونه انجام شود. اين مدار از چهار بخش خازن ورودي، ماسفت، چوك و خازن خروجي تشكيل شده است.
- خازنهاي ورودي: جريان ازطريق خازنهاي ورودي به مدار وارد و ذخيره شده و در مواقع لاخبار تخصصي به ساير قسمتهاي مدار ارسال ميشود.
- ماسفتها: ماسفتها مانند پل عمل كرده و جريان ذخيرهشده در خازنهاي ورودي را از خود عبور ميدهند. در مدار كنترلكنندهي ولتاژ دو ماسفت Low-Side و High-Side وجود دارد؛ زماني كه گرافيك به جريان نياز دارد، اين جريان از ماسفت High عبور ميكند و زماني كه گرافيك به جريان نيازي ندارد، جريان در ماسفت Low ذخيره ميشود.
- چوكها: چوكها قطعات الكترونيكي هستند كه نويز جريان تا حد امكان كاهش ميدهند. گرافيك براي عملكرد صحيح به جريان صاف و پايداري نياز دارد و چوكها با حذف نويز اين امكان را فراهم ميكنند.
- خازنهاي خروجي: پس از تصفيهي جريان توسط چوكها و قبل از ارسال جريان مورد نياز به بخشهاي مورد انديشه متخصصين، خازنهاي خروجي جريان را از مدار خارج ميكنند.
سيستم خنككننده
هر كارت گرافيك براي اينكه به بهترين شكل ممكن خود عمل كند بايد در دمايي بهينه قرار بگيرد. سيستم خنككننده در كارت گرافيك علاوه بر اينكه دماي كاري محصول را كاهش ميدهد، باعث افزايش دوام طول عمر قطعات بهكاررفته در آن ميشود. اين سيستم از دو بخش هيتسينك و فن تشكيل شده است: هيت سينك معمولاً از مس يا آلومينيوم ساخته شده و در شرايط ايدئال غيرفعال است. هدف اصلي اين بخش، گرفتن گرما از پردازندهي گرافيكي و پخش آن در محيط اطراف است؛ درمقابل، فن بخشي فعال در سيستم خنككنندهي گرافيك است كه با دميدن هوا به هيتسينك، آن را براي خارج كردن گرما آماده نگه دارد. برخي كارتهاي گرافيك پايينرده تنها هيتسينك دارند، اما تقريباً همهي كارتهاي ميانرده و بالارده به تركيبي از هيتسينك و فن براي خنكسازي مناسب و كارآمد مجهز هستند.
انواع پردازندهي گرافيكي
پردازندههاي گرافيكي در انواع مختلفي براي سيستمها وظيفهي انجام محاسبات و پردازشهاي گرافيكي را انجام ميدهند؛ در ادامه با انواع اين واحدهاي گرافيكي، نحوهي عملكرد و مزايا و معايب هركدام آشنا ميشويم:
iGPU
iGPU (مخفف Integrated Graphics Processing Unit)، واحد پردازش گرافيكي يكپارچه است كه روي تراشهي پردازنده مركزي يا CPU قرار داده ميشود. iGPU هم ممكن است روي مادربرد نصب شود هم در كنار پردازنده قرار بگيرد (كه در اين صورت همان واحد پردازش گرافيكي در تراشهي مجتمع به حساب ميآيد). اين واحدهاي گرافيكي عموماً قدرت پردازشي زيادي نداشته و براي نمايش گرافيك بازيها و انيميشنهاي سهبعدي پيشرفته مناسب نيستند؛ درواقع براي پردازشهاي اوليه طراحي شدهاند و امكان ارتقاي آنها هم وجود ندارد. استفاده از اين گرافيكها امكان نازكتر و سبكتر شدن سيستم، كاهش مصرف برق و هزينهها را فراهم ميكند. AMD پردازندههاي گرافيكي خود را با عنوان APU معرفي ميكند.
البته امروزه پردازندههاي مدرني هم وجود دارند كه با گرافيك يكپارچه ميتوانند به طرز شگفتانگيزي قدرتمند باشند. همهي پردازندهها به پردازندهي گرافيكي يكپارچه مجهز نيستند؛ براي مثال پردازندههاي دسكتاپ اينتل كه شمارهمدل آنها به F ختم ميشود يا پردازندههاي سري X اين شركت، واحدي براي پردازش گرافيكي ندارند و به همين دليل با ارزش پايينتري به فروش ميرسند و براي پردازش گرافيكي تصاوير در سيستمهاي مجهز به اين پردازنده به گرافيك مجزايي نياز خواهيد داشت.
درحالحاضر AMD و اينتل تلاش ميكنند تا قدرت عملكرد پردازندههاي گرافيكي يكپارچهي خود را بهبود بخشند و اپل نيز بسياري از مردم را با تراشههاي سيليكوني خود شگفتزده كرده است، بهويژه در تراشهي M1 Max كه پردازندهي گرافيكي يكپارچهي بسيار قدرتمندي به شمار ميرود و ميتواند با گرافيكهاي ردهبالا رقابت كند.
dGPU
dGPU (مخفف Discrete Graphics Processing Unit)، واحد پردازش گرافيكي مجزا است كه به صورت تراشهاي اختصاصي و مجزا در سيستمها استفاده ميشود. پردازنده گرافيكي مجزا معمولاً بسيار قدرتمندتر از iGPU است و تجزيه و تحليل دادههاي گرافيكي حجيم، پيشرفته و سه بعدي را خيلي سادهتر انجام ميدهد. در واقع براي استفاده از سيستمهاي گيمينگ يا طراحي و رندرينگ سهبعدي پيشرفته، داشتن dGPU قدرتمند ضروري است. واحد پردازش گرافيكي مجزا را ميتوان بهراحتي تعويض كرد و ارتقا داد؛ اين واحدها علاوه بر قدرت بسيار بالا، به سيستم خنككنندهي اختصاصي نيز مجهز بوده و هنگام انجام پردازشهاي گرافيكي سنگين بيش از حد گرم نميشوند. ميتوان گفت كه dGPUها يكي از دلايل گرانتر و سنگينتر بودن لپتاپهاي گيمينگ، مصرف بالاي برق و طول عمر پايين باتري در اين سيستمها نسبت به لپتاپهاي معمولي هستند، به همين دليل توصيه ميشود تنها در صورتي كه از سيستم خود براي گيمينگ، توليد محتواي گرافيكي سهبعدي يا كارهاي سنگين استفاده ميكنيد، پردازندهي گرافيك مجزا بخريد.
در حال حاضر، بزرگترين نامها در صنعت پردازندههاي گرافيكي مجزا، AMD و انويديا هستند، البته اينتل نيز اخيراً پردازندههاي گرافيكي لپتاپ خود را در قالب سري Arc راهاندازي كرده است و قصد دارد عرضه كارتهاي گرافيك دسكتاپ را نيز آغاز كند.
بااينحال، پردازندههاي گرافيكي گسسته به يك سيستم خنككننده اختصاصي براي جلوگيري از گرماي بيش از حد و به حداكثر رساندن عملكرد نياز دارند، به همين دليل است كه لپتاپهاي بازي بسيار سنگينتر از لپتاپهاي سنتي هستند.
Cloud GPU
واحد پردازش گرافيكي ابري، امكان استفاده از بسياري از خدمات گرافيكي را در بستر اينترنت براي متخصص فراهم ميكند؛ يعني بدون تهيهي GPU، ميتوان از قدرت پردازشي پردازندهي گرافيكي بهره برد. البته قابل درك است كه گرافيكهاي ابري آنچنان قدرت خاصي ارائه نميدهند، اما براي كساني كه بودجه چنداني ندارند و به پردازش گرافيكي خيلي پيشرفتهاي هم نياز ندارند، مناسب است. اين دسته از افراد ميتوانند براساس ميزان استفاده خود، بابت پردازش ابري گرافيكي دريافتكرده به ارائهدهندههاي مختلف هزينه پرداخت كنند.
eGPU
كارت گرافيك اكسترنال يا eGPU، گرافيكي است كه خارج از سيستم قرار ميگيرد، به درگاه PCIe و منبع تغذيه مجهز است و ميتوان آن را به صورت خارجي ازطريق پورتهاي USB-C يا Thunderbolt به سيستم متصل كرد. استفاده از اين گرافيك براي متخصص اين امكان را فراهم ميكند تا از گرافيكي قدرتمند در سيستمي جمعوجور و سبك استفاده كند.
در سالهاي اخير استفاده از گرافيكهاي اكسترنال افزايش پيدا كرده و ازآنجاكه عموماً قدرت پردازشهاي گرافيكي و كيفيت تصاوير خروجي لپتاپها از دسكتاپها كمتر است، متخصصان اخيراً اين اشكال را با استفاده از گرافيك اكسترنال برطرف ميكنند. گرافيكهاي اكسترنال يا خارجي بيشتر براي سيستمهايي مانند لپتاپها استفاده ميشوند، اما برخي شركتها براي دسكتاپهاي قديميتر با قدرت پردازشي پايين هم اين واحدهاي گرافيكي را به كار ميگيرند. دقت داشته باشيد كه در صورت امكانپذير بودن ارتقاي گرافيك لپتاپ، استفاده از گرافيكي اكسترنال توجيهي نخواهد داشت، اما مسائلي مانند فضاي زياد مورد نياز براي گرافيك اكسترنال، هزينهي بالاي آنها و... باعث ميشوند تا متخصصان و بهويژه گيمرها كارتهاي گرافيكي اكسترنال را به ارتقاي سيستم گرافيكي دسكتاپ خود ترجيح دهند.
پردازنده گرافيكي موبايل
گرافيك موبايل، تجربهي بصري ما از موبايلها را رقم ميزند و حتي ميتواند براي برخي متخصصها (گيمرها) تعيينكننده و نشاندهندهي وفاداري به برندي خاص باشد.
سيستم روي تراشهي موبايل (SOC) يا به اختصار همان تراشهاي كه در موبايلهاي امروزي وجود دارد، در كنار واحد پردازندهي مركزي، واحدهايي براي پردازشهاي هوش مصنوعي، سيگنال تصوير براي دوربين، مودم و تجهيزات مهم ديگر، واحد پردازش گرافيكي هم دارد. پردازندهي گرافيكي موبايل براي پردازش دادههاي سنگين مانند بازيهاي سهبعدي معرفي شد و دنياي موبايلها را بهويژه براي گيمرها دگرگون كرد. همانطوركه گفته شد هستههاي پردازشي در پردازندهي گرافيكي موبايل در مقايسه با هستههاي پردازشي در پردازندههاي مركزي، قدرت كمتري دارند، اما درمقابل عملكرد همزمان و سريع آنها است كه نمايش محتواي سنگين و گرافيكهاي پيچيده را در موبايلها امكانپذير ميكند.
انواع پردازنده گرافيكي موبايل
آرم (ARM) يكي از قطبهاي اصلي توليد واحد پردازش گرافيكي براي موبايلها و صاحب امتياز برند مطرح Mali است، كوالكام هم با پردازندههاي گرافيكي Adreno، سهم گستردهاي از بازار گرافيك موبايلها را دراختيار دارد، Imagination Technologies از سالها پيش پردازندههاي گرافيكي Power VR را توليد ميكند و اپل نيز تا قبل از توسعهي پردازندهي گرافيكي اختصاصي خود، مدتها از پردازندههاي گرافيكي اين شركت استفاده ميكرد. جالب است بدانيد كه برخلاف اپل كه پردازندههاي گرافيكي اختصاصي خود را دارد، سامسونگ براي پردازشها و محاسبات گرافيكي موبايلهايش از پردازندههاي گرافيكي آرم يا كوالكام بهره ميبرد.
- آرم؛ پردازنده گرافيكي Mali: پردازندههاي گرافيكي موبايل Mali توسط آرم توسعه داده شدهاند و با ردههاي ارزشي مختلفي به فروش ميرسند. براي مثال پردازندهي گرافيكي استفادهشده در موبايل گلكسي S21 اولترا، Mali-G78 MP14 است و ميتواند پردازشهاي گرافيكي را پرسرعت و با قدرت انجام دهد
- كوالكام؛ پردازنده گرافيكي Adreno: كوالكام در كنار پردازندههاي اندرويدي پرقدرتي كه با نام اسنپدراگون توليد ميكند، در توليد پردازندههاي گرافيكي موبايل نيز عملكرد درخشاني دارد. اين واحدها مانند پردازندههاي گرافيكي Mali ردههاي ارزشي و بازار هدف گستردهاي دارند. براي مثال، پردازندهي گرافيكي Adreno 660 بهكاررفته در موبايل گيمينگ ROG Phone 5 ايسوس در سال ۲۰۲۱، بهعنوان يكي از قدرتمندترين گرافيكهاي كوالكام شناخته شد.
- Imagination Technologies؛ پردازنده گرافيكي Power VR: پردازندههاي گرافيكي Power VR زماني در پرطرفدارترين آيفونها استفاده ميشدند، اما اپل با توليد گرافيك اختصاصي خود براي تراشهي A Bionic، استفاده از اين واحدهاي گرافيكي را كنار گذاشت؛ امروز پردازندههاي گرافيكي Power VR بيشتر در تراشههاي مقرونبهصرفهي مدياتك و در موبايلهاي اقتصادي و ميانردهي برندهايي موتورولا، نوكيا و اوپو به كار ميروند.
كاربردهاي ديگر پردازندههاي گرافيكي
پردازندههاي گرافيكي از ابتدا بهعنوان واحد تكامليافتهي شتابدهندههاي گرافيكي و براي كمك به سبكتر كردن بار كاري پردازندهها توسعه پيدا كردند. تا دو دههي گذشته نيز غالباً بهعنوان تسريعكننده براي رندر گرافيكهاي سهبعدي، بهخصوص در بازيها شناخته ميشدند. بااينحال، ازآنجاكه اين واحدها توان پردازشي موازي بالايي دارند و ميتوانند دادههاي بيشتري را نسبت به واحد پردازش مركزي (CPU) پردازش كنند، كمكم در حوزههاي ديگري غير از گيمينگ، مانند يادگيري ماشيني، استخراج ارزهاي ديجيتال و… نيز به كار گرفته شدند. در ادامه با متخصصدهاي ديگر پردازندههاي گرافيكي غير از گيمينگ آشنا ميشويم:
ويرايش ويدئو
كارتهاي گرافيك مدرن به نرمافزارهايي براي رمزگذاري ويدئو مجهز هستند و ميتوانند دادههاي ويدئويي را قبل از پخش، آماده و فرمت كنند. رمزگذاري ويدئو، فرايندي زمانبر و پيچيده است كه انجام آن به كمك واحد پردازش مركزي به زمان بسيار زيادي براي تكميل نياز دارد. پردازندههاي گرافيكي با قابليت پردازش موازي بسيار سريع خود، ميتوانند رمزگذاري ويدئو را نسبتاً سريع و بدون بارگذاري بيش از حد منابع سيستم انجام دهند. دقت داشته باشيد كه رمزگذاري ويدئوهايي با وضوح بالا هم حتي ممكن است با پردازندههاي گرافيكي پرقدرت، مدتي طول بكشد، اما اگر اين واحد گرافيكي از فرمتهاي ويدئويي با رزولوشنهاي بالاتر همراهي كند، براي ويرايش ويدئوها خيلي بهتر از پردازندهي مركزي عمل ميكند.
رندر گرافيك سهبعدي
با اينكه گرافيكهاي سهبعدي معمولاً بيشتر در بازيهاي ويدئويي و در حوزهي گيمينگ استفاده ميشوند، بهطور فزايندهاي در اشكال ديگر رسانهها مانند فيلمها، نمايشهاي تلويزيوني، تبليغات و نمايشهاي هنري ديجيتال نيز استفاده ميشوند. ايجاد گرافيك سهبعدي با وضوح بالا، حتي با سختافزارهاي پيشرفته، دقيقاً مانند ويرايش ويدئو، ميتواند فرايند فشرده و وقتگيري باشد.
استوديوهاي فيلمسازي مدرن اغلب به فناوري پيشرفتهي پردازندههاي گرافيكي براي توليد تصاوير كامپيوتري واقعي و پويا وابسته هستند و همين امر سختافزار را به بخشي حياتي از فرايند ساخت فيلم تبديل ميكند. هنرمندان حوزهي ديجيتال نيز براي خلق آثار انتزاعي كه در فضاي فيزيكي معمول قابل توليد نيستند از كامپيوترهاي مجهز به پردازندههاي گرافيكي پيشرفته استفاده كرده و آثار هنري متفاوتي را با آنچه تاكنون ديدهايم، توليد ميكنند. پردازندههاي گرافيكي با تركيب مناسب عملكرد سختافزار و ديد هنري، ميتوانند منبع خلاقانه قدرتمندي براي محاسبات و پردازش محتواي رسانهاي باشند.
فراگيري ماشين
يكي از متخصصدهاي كمتر شناختهشدهي پردازندههايگرافيكي مدرن، يادگيري ماشيني است. يادگيري ماشيني شكلي از تجزيه و تحليل داده است كه ساخت مدلهاي تحليلي را به صورت اتوماتيك و خودكار انجام ميدهد. در اصل، يادگيري ماشيني از دادهها براي يادگيري، شناسايي الگوها و تصميمگيريهايي مستقل از ورودي انسان استفاده ميكند و به دليل ماهيت بسيار پرمصرف اين سيستم و نياز به پردازشهاي موازي آن، پردازندههاي گرافيكي را ميتوان جزئي ضروري از اين فناوري دانست.
يادگيري ماشيني، پايه و اساس فناوري و استفاده از هوش مصنوعي در انديشه متخصصين گرفته ميشود و به همين دليل فرايند محاسباتي پيچيدهاي است كه نياز به ورود حجم زيادي داده براي تجزيه و تحليل دارد. نرمافزاري معروف به الگوريتمهاي يادگيري ماشيني، تحليلها را براساس آنچه دادههاي يادگيريي يا دادههاي نمونه ناميده ميشود، انجام داده و مدلسازي ميكند، از اين مدلهاي بهدستآمده، براي پيشبيني يا تصميمگيري بدون نياز به دخالت انسان استفاده ميشود. اين روش در زمينههاي مختلف از دنياي پزشكي گرفته تا سيستم فيلترينگ رايانامه براي جلوگيري از دريافت محتواي نامناسب، پيادهسازي گستردهاي داشته و يادگيري ماشيني را به جنبهاي حياتي در زيرساختهاي دادههاي مدرن تبديل كرده است.
بلاك چين و استخراج ارزهاي ديجيتال
يكي از متخصصدهاي عموميتر پردازندههاي گرافيكي در كنار گيمينگ، استفاده از آنها در ماينينگ يا استخراج ارز ديجيتال است. در فرايند استخراج ارزهاي ديجيتال يا رمزارزها، منابع سيستم دراختيار بلاكچين (يا ركوردي پيوسته از الگوريتمهاي رمزگذاري پيچيده براي ذخيرهي دادههاي تراكنش) قرار ميگيرند؛ هر ورودي در اين ركورد، بلاك ناميده ميشود كه براي توليد به توان محاسباتي مشخصي نياز دارد. با اينكه فناوري بلاكچين متخصصدهايي خارج از ارزهاي ديجيتال نيز دارد، اما عموماً براي استخراج ارزهاي ديجيتال (بهويژه بيتكوين) استفاده ميشود؛ البته فرايند استخراج بسته به ارز ديجيتال موردانديشه متخصصين ميتواند متفاوت باشد.
بهطور خاص فرايند استخراج بيتكوين شامل اختصاص منابع سختافزاري براي ايجاد بلاكها در بلاكچين بيتكوين است. هرچه بلاكهاي بيشتري به بلاكچين اضافه شود، بيتكوين بيشتري نيز توليد ميشود. چنين فرايندي به ارزش مصرف شدن منابع سيستم و برق تمام ميشود و بهرهوري سيستم را هنگام درگير شدن در جريان استخراج كاهش ميدهد. توان عملياتي بالا و انرژي مورد نياز نسبتاً پايين پردازندههاي گرافيكي، اين واحدها را براي انجام فرايند استخراج كه بهتازگي نيز طرفداران زيادي پيدا كرده است، به ابزاري مناسب تبديل ميكند.
سوالات متداول اخبار تخصصي، علمي، تكنولوژيكي، فناوري مرجع متخصصين ايران
كاربرد پردازنده گرافيكي (GPU) چيست؟
مهمترين متخصصد پردازندههاي گرافيكي در حوزهي گيمينگ است؛ اين واحد در ابتدا نيز با توسعهي بازيهاي سهبعدي و بهعنوان مكملي براي كمك به پردازنده و كم كردن بار كاري آن توسعه داده شد؛ اما ازآنجاكه اين واحدها توان پردازشي موازي بالايي دارند و ميتوانند دادههاي بيشتري را نسبت به پردازنده، پردازش كنند، كمكم با گذشت زمان در حوزههاي ديگري غير از گيمينگ، مانند ويرايش ويدئو، رندر گرافيك سهبعدي، يادگيري ماشيني، استخراج ارزهاي ديجيتال و… نيز به كار گرفته شدند.
فرق CPU و GPU در چيست؟
پردازنده و پردازندهي گرافيكي از ساختارهاي مشابهي در لايههاي كش بهرهمند هستند و هردو به كنترلري براي حافظه و رم اصلي مجهز هستند. اين دو واحد با وجود برخي شباهتها، از برخي جهات نيز با هم متفاوتاند؛ پردازندهها با قابليت جابهجايي سريع، يك كار را با كمترين تأخير و بالاترين سرعت اما پردازشها را به صورت سريالي انجام ميدهند؛ درمقابل پردازندهي گرافيكي با تعداد هستههاي بيشتر، لايههاي حافظهي كش كمتر و كمظرفيتتر، بهطور خاص براي بهينهسازي توان عملياتي پردازشهاي گرافيكي توسعه داده شده است و پردازشها را به صورت همزمان و موازي انجام ميدهد.
فرق GPU با VGA در چيست؟
پردازندهي گرافيكي، واحدي تخصصي براي پردازش و طراحي گرافيكهاي كامپيوتري است و كارت گرافيك (Graphics Card) قطعهي فيزيكي و سختافزاري در سيستمهاي كامپيوتري محسوب ميشود كه تعداد زيادي قطعهي الكترونيكي روي آن قرار دارد؛ پردازندهي گرافيكي مهمترين قطعه در ميان اجزاي كارت گرافيك است و از ديگر قطعات موجود در اين سختافزار ميتوان به حافظهي ويدئويي، برد مدار چاپي، كانكتورهاي نمايشگر، پل، رابط گرافيك، مدار تنظيمكنندهي ولتاژ و سيستم خنككننده اشاره كرد.
هم انديشي ها