داستان اوجگیری و سقوط کارتهای گرافیکی مجهز به چند پردازنده
در دنیای کارتهای گرافیکی، بیشتربودن آمار و ارقام اغلب بهمعنای بهتربودن قدرت و بهرهوری است. هستههای سایهزنی بیشتر، رم بیشتر، پهنای باند بیشتر و... همگی بهمعنای بهرهوری بهتر و تنظیمات باجزئیاتتر برای بازیها بودهاند؛ البته برای رسیدن به چنین وضعیتی، همیشه به تراشههای بزرگتر نیاز بوده است. طراحان و تولیدکنندگان همیشه از خود میپرسیدهاند: «چگونه میتوان به سرعت و بهرهوری بیشتر در کارتهای گرافیکی دست پیدا کرد؟» درواقع، همواره این سؤال مطرح بود: «اگر پردازندهها در حداکثر ابعاد و تعداد ترانزیستور باشند، چگونه میتوان سرعت را بازهم افزایش داد؟»
پاسخ به پرسش مذکور ساده است: باید تعداد تراشهها را افزایش دهیم. البته قطعا اجرای چنین راهکاری آسان نیست. افزایش تعداد پردازندهها در کارتهای گرافیکی در دورهای از تاریخ سختافزار رخ داد؛ اما دورهای طولانی نبود. درادامهی این مطلب زومیت، داستان کارتهای گرافیکی را بررسی میکنیم که با بهرهمندی از چند GPU، به غولهای واقعی بهرهوری و قدرت و البته قیمت تبدیل شدند.
ظهور کارتهایی با پردازندهی چندگانه
پیشازآنکه تاریخچهی کارتهای گرافیکی با چند GPU را شروع کنیم، ابتدا نگاهی به کارتهای امروزی و نحوهی طراحی و پیکربندی قطعات الکترونیکی روی آنها خواهیم انداخت. روی برد مداری که پس از برداشتن سیستم خنککننده دیده میشود، قطعهی سیلیکونی بزرگی مشاهده میکنیم که همان پردازندهی گرافیکی یا GPU است.
تمامی فرایندهای محاسبهای و مدیریت دادهها که برای شتابدهی به پردازش ویدئو و دادههای دوبعدی و سهبعدی نیاز است، در داخل یک تراشه انجام میشود. تراشههای دیگری که روی برد مداری کارت گرافیک حضور دارند، ماژولهای DRAM مخصوص GPU و تعدادی کنترلرهای ولتاژ هستند.
ساختار کارتهای گرافیکی همیشه اینچنین نبوده است؛ زیرا برخی از کارتهای گرافیک سهبُعدی اولیه چند تراشه داشتند که همهی آنها GPU محسوب نمیشدند. بهعنوان مثال، کارت Voodoo1 از شرکت 3dfx که در سال ۱۹۹۶ به بازار عرضه شد، دو پردازنده روی برد مداری داشت؛ اما تنها یکی از آنها وظیفهی مدیریت و پردازش بافتها را برعهده میگرفت و دیگری پیکسلها را باهم ترکیب میکرد.
در کارت گرافیکی Voodoo 1 و بسیاری از کارتهای گرافیکی ابتدایی در بازار سختافزار، به تراشهای مجزا برای انجام وظایف پردازشی دوبُعدی نیاز بود. شرکتهایی همچون ATI و انویدیا و S3 پس از مدتی روند جدیدی در طراحی در پیش گرفتند و تلاش کردند تمامی پردازندههای مستقل را در ساختاری واحد تجمیع کنند.
هرچه تعداد قطعات سیلیکونی روی یک کارت گرافیکی بیشتر میشد، هزینههای تولید افزایش پیدا میکرد؛ بههمیندلیل، پردازندههای بازار مصرفکننده بسیار سریع بهسمت ساختار تراشههای واحد پیش رفتند. بااینحال در همان دوران، کارتهای گرافیکی حرفهای بازار مصرفکننده مانند Voodoo 1 اغلب از ساختار چندتراشهای استفاده میکردند.
شرکت 3DLabs زمانی بهعنوان غول دنیای پردازش گرافیکی، خصوصا در صنعت رندر حرفهای شناخته میشد و این شرکت زمانی با ساختن محصولات غولپیکر پردازش گرافیکی بهشهرت رسید. یکی از محصولات که در تصویر زیر مشاهده میکنید، Dynmic Pictures Oxygen 402 نام دارد و با چند تراشه در دورهای از تاریخ صنعت سختافزار بهعنوان غول حرفهای پردازش گرافیکی شناخته میشد.
کارت گرافیک غولپیکر 3DLabs دو تراشهی بزرگ داشت که در سمت چپ و پایین تصویر مشاهده میکنید. این تراشهها وظیفهی پردازش دوبُعدی و مدیریت خروجی ویدئو را برعهده داشتند. چهار شتابدهنده نیز در زیر هیتسینکهای کارت قرار دارند که کل پردازشهای سهبُعدی را انجام میدهند. در آن زمان، پردازش رئوس هندسی در سمت CPU انجام میشد که بعدا سایر بخشهای رندر را در سمت کارت گرافیک ترکیب میکرد.
تراشههای Oxygen رئوس هندسی را به مثلث تبدیل میکردند و سپس هر فریم با ترکیب رندر رنگ و بافت، به پیکسل منتقل میشد. صرفنظر از فرایند رندر که خود جزئیات و مشخصات خاصی دارد، این سؤال مطرح میشود: «چرا به چهار شتابدهندهی رندر سهبُعدی نیاز بوده است و چرا شرکت سازنده تراشهی بزرگ یکپارچهای تولید نمیکرد؟»
ترکیب قدرت چند پردازندهی گرافیکی
برای درک دلیل استفاده از چند پردازنده در کارتهایی همچون محصول 3dLabs، ابتدا باید نگاهی کلی به فرایند تولید و نمایش تصاویر سهبعدی بیندازیم. ازلحاظ تئوری، میتوان تمامی محاسبات لازم را با استفاده از CPU انجام داد؛ اما پردازندههای مرکزی اغلب برای وظایف انشعابی و تصادفی در ساختار خطی طراحی میشوند.
گرافیک سهبعدی برخلاف وظایف مرسوم پردازندههای مرکزی بسیار سادهتر است؛ اما به حجم عظیمی از فعالیتهای موازی در مراحل متعدد نیاز دارد. فعالیتها و پردازشهای موازی و چندمرحلهای نیز از توان و قدرت CPU خارج خواهد بود. اگر پردازندهی مرکزی مشغول وظیفهی رندرکردن یک فریم باشد، دیگر نمیتواند کار متفرقهای انجام دهد.
پردازندههای گرافیکی بهدلیل همان محدودیتهایی متولد شدند که پردازندههای مرکزی در حوزهی وظایف موازی داشتند. اگرچه هنوزهم فعالیتهای مقدماتی برای یک فریم سهبُعدی پردازندهی مرکزی انجام میشود، محاسبههای ریاضی مخصوص گرافیک به تراشهای مخصوص نیاز دارند. تصویر زیر روند زمانی پردازش چهار فریم را نشان میدهد که در آن، پردازندهی مرکزی وظایف موردنیاز در هر دوره را ایجاد میکند.
دستورالعملها و اطلاعاتی که نشان میدهند چه دادهای برای چه مرحلهای نیاز خواهد بود، از پردازندهی مرکزی به پردازندهی گرافیکی ارسال میشوند. اگر ارسال دستورالعملها بیش از زمان موردنیاز برای تنظیمکردن فریم بعدی طول بکشد، در نمایش فریمها با تأخیر مواجه میشویم و بهنوعی باید منتظر پایانیافتن فرایند پردازش و رندر روی فریم اول بمانیم.
از نگاهی دیگر، میدانیم که نرخ فریم GPU کمتر از CPU است. تراشهی گرافیکی قدرتمندتر قطعا زمان موردنیاز برای رندرکردن فریم را کاهش میدهد؛ اما اگر ازلحاظ کیفیت و شرایط ساخت چنین پردازندههایی در سطح مهندسی و هزینهی تولید محدودیتهایی داشته باشیم، چه راهکارهای دیگری پیشنهاد میشوند؟
دو راهکار برای رفع مشکل طراحی و تولید تراشههای گرافیکی بزرگتر وجود دارد: ۱. استفاده از GPU دیگر برای شروع رندر فریم بعدی در زمانی است که GPU اول رندر فریم اول را انجام میدهد؛ ۲. میتوان فشار کاری رندر هر فریم را بین چند تراشه تقسیم کرد. راهکار اول بهنام alternate frame rendering یا AFR شناخته میشود.
دیاگرام بالا چگونگی اجرای ساختار AFR را نشان میدهد. همانطورکه میبینید، فاصلهی زمانی بین نمایش فریمها روی نمایشگر درمقایسهبا حالت استفاده از پردازندهی گرافیکی واحد کمتر شده است. نرخ فریم کلی نیز بهتر میشود؛ هرچند هنوزهم در سطحی پایینتر از CPU قرار دارد.
با روش AFR همچنان تأخیر درخورتوجهی بین زمان کار روی فریم اول و نمایش آن روی نمایشگر وجود دارد. دلیل چنین تأخیری آن است که هنوز برای پردازش کل یک فریم، به یک GPU وابسته هستیم. راهکار دیگر که وظیفهی کاری رندر فریم را بین دو یا چند پردازندهی گرافیکی تقسیم میکند، روشی متمرکز بر اشتراکگذاری بخشهای گوناگون فریم در بلوکهای متنوع دارد که بهنام split frame rendering شناخته میشود. بهبیانِبهتر، در این روش خطوط پیکسلها با ایجاد تغییر در وظیفهی رندر ایجاد میشوند. این راهکار در کارت گرافیک Dynami Oxygen اجرا میشد.
با استفاده از روش بالا، هر فریم با سرعت بسیار بیشتری پردازش میشود و تأخیر بین انجام کار در CPU و نمایش فریم به میزان چشمگیری کاهش مییابد. نرخ فریم کلی نیز شاید بهتر از AFR نباشد؛ ولی پایداری و ثبات بیشتری دارد.
هر دو روشی که در بالا توضیح دادیم، میتوان با استفاده از چند کارت گرافیکی بهجای چند پردازنده روی یک کارت گرافیکی اجرا کرد. فناوریهایی همچون CrossFire از شرکت AMD و SLI از شرکت انویدیا هنوزهم در صنعت حضور دارند؛ البته امروزه در بازار مصرفکننده، دیگر اثر زیادی از ساختارهایی با چند کارت گرافیکی نیست.
در این مقاله فقط کارتهای گرافیکی مجهز به چند GPU را بررسی میکنیم؛ پس درادامه، بازهم همان ساختار را دنبال خواهیم کرد.
اژدها وارد میشود
کارتهای گرافیکی شرکت 3DLabs به چند پردازندهی گرافیکی واقعا قدرتمند مجهز بودند؛ ولی قیمت بسیار گرانی هم داشتند. بهعنوان مثال، کارت Oxygen 402 به قیمت ۳،۶۹۵ دلار فروخته میشد که با نرخ امروزی تقریبا قیمتش ۶ هزار دلار میشود! دراینمیان، شرکت دیگری هم محصولاتی با چند پردازندهی گرافیکی تولید و عرضه میکرد که قیمتی مقرونبهصرفه داشتند.
دو سال پس از معرفی Oxygen 402 به بازار و در سال ۱۹۹۹، شرکت ATI Technologies کارت گرافیکی Rage Fury MAXX را معرفی کرد. در آن زمان، این شرکت کانادایی سابقهی بیش از ۱۰ سال فعالیت در دنیای گرافیک را در کارنامهاش داشت و محصولات خانوادهی Rage نیز بسیار محبوب بودند.
کارت گرافیک MAXX شرکت ATI از دو تراشهی Rage 128 بهره میبرد که هرکدام ۳۲ مگابایت حافظهی SDRAM اختصاصی داشتند. این محصول از روش AFR برای رندرگرفتن و خروجیدادن فریمها استفاده میکرد. کمی بعد، محصول ATI از کارت گرافیک Nvidia GeForce 256 DDR شکست خورد که با قیمت ۲،۹۹۹ دلاری و تنها ۲۰ دلار گرانتر، عملکردی بسیار بهتر داشت.
در تاریخ کارتهای گرافیکی، GeForce 256 بهعنوان اولین کارت گرافیکی شناخته میشود که با توضیح مجهزبودن به یک GPU به بازار معرفی و عرضه شد. پیش از معرفی محصول انویدیا هم، عبارت GPU در بازار استفاده میشد؛ اما اگر GPU را تراشهای بدانیم که تمامی محاسبات فرایند رندر را انجام میدهد (از تبدیل رئوس هندسی به شکلها و ترکیب نور تا تولید بافت و ترکیب پیکسلها)، انویدیا اولین شرکتی بود که چنین تراشهای تولید کرد.
شرکت دیگری که علاقهی زیادی به کشف محصولات مجهز به چند GPU داشت، 3dfx بود. آنها از پیشگامان ترکیب و اتصال چند کارت گرافیکی بودند که بهنام scan line interleaving یا SLI شناخته میشود. کارتهای گرافیکی Voodoo 2 اولین محصولاتی بودند که از این فناوری پشتیبانی میکردند. شرکت 3dfx تقریبا یک سال پس از معرفی و عرضهی ATI MAXX، محصولی بهنام Voodoo 5 5500 به بازار عرضه کرد که قیمت خُردهفروشیِ کمتر از ۳۰۰ دلار داشت.
تراشههای VSA-100 روی کارت گرافیک Voodoo 5 مانند ترکیب Rage 128 Pro، ساختاری دوقلو داشتند؛ اما باس حافظهی بیشتری ارائه میکردند. متأسفانه این کارت گرافیکی دیرتر از انتظارها به بازار عرضه شد و مشکلات عملکردی متعددی هم داشت. از همه بدتر اینکه Voodoo 5 تنها کمی بهتر از GeForce 256 DDR بود و در رقابت با نسل بعدی، یعنی GeForce 2 GTS، با قیمت ارزانتر هم کاملا شکست خورد.
بخشی از کمبودهای عملکردی کارت Voodoo 5 را میتوان بهدلیل پردازندههای گرافیکی دانست؛ اما رابطی که در کارت استفاده شده بود، تأثیر مستقیمی بر کاهش قدرت میگذاشت. بخش موسوم به Accelerated Graphics Port یا AGP نسخهی مخصوص PCI bus قدیمی بود که بهصورت اختصاصی برای پردازندههای گرافیکی ساخته شد. اگرچه این ساختار چگونگی انتقال داده به کارت را بهبود داده بود، با داشتن اتصال مستقیم به حافظهی سیستمی، نمیتوانست چند دستگاه متصل را مدیریت کند.
درمجموع، کارتهای مجهز به چند GPU به تراشهای اضافه نیاز داشتند تا یا نقش مدیریت و مسئولیتی مانند دستگاه حاضر روی AGP را برای هدایت جریان داده به GPU بازی کند یا مانند Voodoo 5 یکی از پردازندههای گرافیکی باید آن وظایف را برعهده میگرفت. همین عوامل باعث شد تا پایداری باس در کارتهای مذکور با مشکل روبهرو شود و تنها راه برای حل آن نیز اجرای رابط کارت در نرخ پایینتر بود.
شرکت ATI طراحی و تجربهی محصولات با چند GPU را ادامه داد؛ هرچند تعداد محدودی از آنها به بازار عمومی عرضه شدند. درنهایت نیز، شرکت 3dfx به انویدیا فروخته شد و حتی فرصت بهبود تراشههای VSA-100 را پیدا نکرد. فناوری SLI آنها در کارتهای گرافیکی بعدی انویدیا استفاده شد که البته تنها نام آن فناوری را یدک میکشید و ساختاری کاملا متفاوت داشت.
دراینبین، شرکت XGI Technology که اسپینآفی از شرکت تولید تراشهی SiS بود، تلاش کرد با کارتهای Volari Duo V8 Ultra وارد رقابت بازار کارتهای گرافیکی مجهز به چند GPU شود. اگرچه در معرفی و بازاریابیهای اولیه قدرت و توانایی زیادی برای کارت مذکور ادعا شده بود، درنهایت شرکت موفق نشد محصولی قدرتمند به بازار عرضه کرد.
کارتهای گرافیکی Volari Duo نتوانستند از سقوط شرکت XGI جلوگیری کنند و در همان بازار، شرکت ATI با کارتهای گرافیکی مجهز به یک GPU مانند Radeon 9800XT و 9600Pro موفقیتهای بیشتری کسب کرد. شاید تصور کنید که شرکتها بهدلیل این رخدادها، از تولید کارتهای گرافیکی با چند پردازنده منصرف شوند؛ اما آنها محصولاتی بسیار گرانقیمت بودند. بااینهمه، هنوز یک شرکت به آینده امیدوار بود: انویدیا.
رقابت برای پیشرفت بیشتر
انویدیا که در سالهای ۲۰۰۴ و ۲۰۰۵ بهصورت محدود کارتهای گرافیکی مجهز به چند پردازندهی گرافیکی را معرفی کرده بود، تلاشهای خود را در سال ۲۰۰۶ بیشتر کرد و کارتهای GeForce 7900 و 7950GX2 را به بازار فرستاد. رویکرد این شرکت آمریکایی در کارتهای جدید سال ۲۰۰۶ کمی با گذشته تفاوت داشت؛ بهگونهای که آنها بهجای استفاده از دو GPU در یک مدار بردار، بهنوعی دو کارت گرافیک GeForce 7900 GT را بههم متصل کردند.
در آن سالها، AGP با استاندارد جدید PCI Express جایگزین شده بود. با اینکه رابط جدید آنچنان هم بالغ نبود، استفاده از PCIe این امکان را فراهم میکرد که چند دستگاه را در یک درگاه بهکار انداخت. نکتهی مثبت این بود که کارتهای گرافیکی با چند پردازنده، با پایداری بیشتری درمقایسهبا حالت AGP کار میکردند.
کارتهای گرافیکی مدل 7950GX2 با وجود قیمت ۵۹۹ دلاری هنگام رونمایی، با قیمتهای ارزانتر هم در بازار پیدا میشدند. ناگفته نماند، قیمت نهایی کمتر از هزینهی خرید دو کارت مجزای 7900GT بود. در آن سالها، محصول انویدیا بهعنوان سریعترین کارت گرافیک بازار در دستهی مصرفکننده شناخته میشد.
رقابت بین انویدیا و ATI تا ۶ سال بعد ادامه داشت؛ رقابتی که با معرفی انواع کارتهای گرافیکی مجهز به چند GPU همراه شد و هرکدام دستهی خاصی از بازار را هدف قرار میدادند. برخی از این کارتهای گرافیکی قیمت بسیار گرانی داشتند. بهعنوان مثال، کارت Radeon HD 5790 با برچسب قیمتی ۶۹۹ دلاری بهدست مشتریان میرسید؛ البته شرکتهای سازنده همیشه سرعت بیشتر را بهعنوان بهانهای برای قیمت گرانتر محصولات خود مطرح میکردند.
برخی از کارتهای گرافیک مجهز به چند GPU قیمت معقولی داشتند که از میان آنها میتوان به GeForce GTX 295 اشاره کرد که به قیمت ۵۰۰ دلار فروخته میشد. ۵۰۰ دلار برای سال ۲۰۰۹ بازهم قیمت زیادی بود؛ اما باتوجهبه اینکه کارت GTX 260 متعلق به سال ۲۰۰۸ قیمت ۴۵۰ دلاری داشت و GTX 295 قدرتی دوبرابر آن را ارائه میکرد، ۵۰ دلار هزینهی بیشتر بسیار منطقی بود.
رقابت در دنیای فناوری همیشه به پیشرفت و فتح قلههای جدید میانجامد. افزونبراین با اینکه کارتهای گرافیکی پرچمدار در بازار همیشه به قیمت بسیار گران مشهور بودند، انویدیا در سال ۲۰۱۲ حرکت جدیدی در بازار شروع کرد که بازهم فاصلهی بین سطوح گوناگون را افزایش داد.
کارتهای گرافیکی مجهز به چند GPU تا سال ۲۰۱۲ اغلب از پردازندههای گرافیکی دستهی پایینتر در گروه محصولات حرفهای استفاده میکردند تا مصرف توان و گرما را در سطح رضایتبخشی نگه دارند. قیمتگذاری آن محصولات نیز بهگونهای بود که با وجود متمایزکردن کارتها از دستههای دیگر محصول، بهازای قیمتشان عملکرد مناسبی ارائه میکردند.
محصول انقلابی انویدیا، GeForce GTX 690 با قیمت ۹۹۹ دلاری، رخدادی کاملا جدید در بازار کارتهای گرافیکی مجهز به چند GPU بود. قیمت این کارت گرافیک نهتنها دوبرابر محصول بعدی خود، یعنی GTX 680 بود؛ بلکه دقیقا کارایی برابر با دو کارت GTX 680 را به کاربر ارائه میکرد. همچنین، کارایی و قدرت کارت جدید انویدیا از ترکیب دو کارت AMD Radeon HD 7970 هم کمتر بود. تنها مزیت محصول جدید تیم سبز مصرف بهینهی توان بود. این کارت مصرف توان ۳۰۰ واتی داشت؛ درحالیکه هر کارت گرافیک HD 7970 بهتنهایی ۲۵۰ وات برق مصرف میکرد. بااینهمه، مزیت مصرف توان نسبت به قیمت بسیار گران کارت جدید آنچنان بهچشم نیامد.
اژدها خارج میشود
انویدیا پس از عرضهی GTX 690 به بازار، توجه و تمرکز خود را روی کارتهای گرافیک مجهز به یک پردازنده معطوف کرد. در میانهی سال ۲۰۱۴، این شرکت کارتی به بازار عرضه کرد که تا امروز بهعنوان آخرین کارت گرافیک مجهز به چند GPU از برند انویدیا شناخته میشود. کارت گرافیک GeForce GTX Titan Z با وجود قدرت خارقالعادهای که در شکل یک کارت گرافیک تکی ارائه میکرد، بهنوعی آزمونوخطا انویدیا محسوب میشد. این کارت گرافیک که با قیمتی نزدیک به سههزار دلار قطعا مخصوص گروه خاصی از مصرفکنندگان تولید شده بود، بههیچوجه محصولی منطقی بهنظر نمیرسید.
درمقابل، کارت جدید تیم سبز از پردازندههای گرافیکی شبیه به GeForce GTX 780 Ti بهره میبرد؛ اما برای کاهش مصرف توان، کلاک آنها تا حدودی کاهش پیدا کرده بود. درنهایت، GeForce GTX Titan Z عملکرد چندان بهتری از ترکیب دوگانهی GTX 780 Ti نداشت. نکتهی مهم این است که کارت مذکور با قیمت ۶۹۹ دلار عرضه میشد و خرید دو عدد از آن منطقیتر از خرید یک کارت GeForce GTX Titan Z بود.
با بررسی قیمت کارتهای همرده، متوجه میشویم که انویدیا هزینهای تقریبا دوبرابر قیمت مرسوم را در Titan Z از خریداران دریافت میکرد. البته بازهم تنها ویژگی مثبت مصرف اندک توان بود که وقتی درکنار معایب قرار میگرفت، آنچنان بهچشم نمیآمد. مصرف توان در کارتهای گرافیکی AMD با چند پردازنده همیشه مشکلی بزرگ بود؛ البته تیم قرمز هم در سال ۲۰۱۵ توانست در Radeon R9 390 X2 این مشکل را حل کند.
کارت گرافیکی Radeon R9 390 X2 با قیمت ۱،۳۹۹ دلار و مصرف توان ۵۸۰ وات به بازار عرضه میشد. در مقام مقایسه، باید بدانید که سیستمی معمولی در سال ۲۰۱۵ با برخورداری از کارت گرافیک میانرده، توان مصرفی ۳۵۰ وات داشت. در ماههای پایانی سال ۲۰۱۵، رقابت در بازار کارتهای گرافیکی مجهز به چند پردازنده تقریبا بهپایان رسیده بود. انویدیا دیگر محصول خاصی به بازار عرضه نمیکرد و AMD نیز تنها چند کارت محدود متمرکز بر بازار کاربران حرفهای معرفی کرد.
اکنون و پس از گذشت چند سال از سردشدن نبرد بر سر کارتهای گرافیک با چند پردازنده، این سؤال ایجاد میشود: «آیا هنوزهم بازاری برای آنها وجود دارد؟» فراموش نکنید که کارتهای گرافیک امروزی هم با قیمتهایی نزدیک به هزار دلار فروش مطلوبی تجربه میکنند؛ پس مشکل کارتهای چندپردازندهای لزوما قیمت نبوده است. در بحث مصرف توان نیز، همین وضعیت وجود دارد. کارت گرافیک Radeon Pro Duo با دو پردازندهی گرافیکی توان طراحی گرمایی ۳۵۰ وات داشت که ۴۰ درصد کمتر از R9 380 X2 بود.
کارتهای گرافیکی با چند پردازنده هنوزهم در بازار وجود دارند. یکی از آنها در اپل مک پرو استفاده میشود و AMD Radeon Pro Vega II Duo نام دارد که با برچسب قیمتی ۲،۴۰۰ دلار، قطعا برای هر کاربری مناسب نخواهد بود. کارشناسان دلیل اصلی مرگ ظاهری کارتهای مجهز به چند GPU را نه در خودِ محصولات، بلکه در نوع استفاده از قابلیت آنها میدانند.
کاربری اشتباه از فناوری
در سال ۱۹۹۹ که کارت Rage Fury MAXX به بازار عرضه شد، بازیهای سهبُعدی واقعی (با ساختار چندضلعی و بافت) هنوز جدید بودند. بهعنوان مثال، بازی Quake از id Software تنها سه سال قبل معرفی شده بود. کنسولهای بازی همچون Sega Dreamcast عناوینی با گرافیکهای خیرهکننده داشتند؛ اما دنیای بازیهای کامپیوتری آنچنان پررونق نبود. همهی آنها برای ارائهی جلوههای بصری روشهای مشابهی داشتند. ساختار بازی بهگونهای بود که تنها چندضلعیها را روشن میکرد و کمی بافت نیز به صحنه اضافه میشد. در آن زمان، پردازندههای گرافیکی ظرفیتهای محدودی داشتند و درنتیجه، گرافیک بازیها نیز باید از محدودیتها پیروی میکردند.
با پیشرفت سختافزارهای کامپیوتری، توسعهدهندگان روشهای پیچیدهتری برای رندر و ارائهی جلوههای بصری بهکار گرفتند. هر فریم سهبُعدی شاید به چند مرحله رندر نیاز داشته باشد تا تصویر نهایی را ارائه کند یا محتوای فریمی به فریم بعدی وارد شود. درنتیجهی پیشرفتهای فناورانه در سیستم رند، فشار کاری روی پردازندههای گرافیکی متنوعتر شد.
کاربرانی که از کارتهای گرافیکی مجهز به چند پردازنده استفاده میکنند یا پیکربندی چند کارت گرافیک دارند، در اکثر مواقع نرخ فریم بیشتری درمقایسهبا پیکربندی یک GPU تجربه میکنند. ناگفته نماند افزایش تفاوت بین فریمها خود را در پدیدهای بهنام Micro Stuttering آشکار میکند. در چنین پدیدهای، نرخ فریم بهیکباره سقوط میکند و مجددا به وضعیت قبل بازمیگردد؛ البته سقوط و بازگشت نرخ فریم بسیار سریع رخ میدهد، درحدی که حتی در بنچمارکها نمیتوان بهراحتی لحظهی سقوط و بازگشت را متوجه شد. درنهایت همین پایین و بالا شدن بهخوبی در بازی احساس میشود. پدیدهی Micro Stuttering در سیستمهایی با چند پردازندهی گرافیکی مرسوم است و با وجود راهکارهایی برای کاهش اثر آن، هنوز نمیتوان پدیده را کاملا حذف کرد.
در سال ۲۰۱۵، مایکروسافت رابط برنامهنویسی Direct3D 12 را عرضه کرد که با هدف آسانسازی فرایند برنامهنویسی موتورهای بازی ساخته شده بود. یکی از قابلیتهای مهم و جدید رابط ردموندیها، پشتیبانی بهتر از پیکربندی چند پردازندهی گرافیکی بود. اگرچه رابط جدید بسیاری از مشکلات را برطرف میکرد، توسعهدهندگان باید آن را بهطور کامل و با دقت در محصولات خود اجرا میکردند. باتوجهبه پیچیدگی فرایند توسعهی یک عنوان بازی مدرن، وظیفهی اضافه برای هماهنگکردن موتور بازی با هدف بهبود بهرهبرداری از کارت گرافیک مجهز به چند GPU، فشار کاری توسعهدهندگان را افزایش میداد. نکتهی مهمتر اینکه ابعاد بازار برای چنین بهینهسازی هم آنچنان بزرگ نبود.
مقالههای مرتبط:
استفادهی بهینه از پیکربندی مجهز به چند GPU، تنها به توسعهی بخشهای اضافه در بازیها محدود نیست. حدود هشت سال پیش، انویدیا و AMD در درایورهای خود پروفایلهای CrossFire/SLI توسعه دادند. این پروفایلها، تنها پیکربندیهای داخل سختافزاری بودند که بهمحض شناسایی عنوانی خاص فعال میشدند؛ اما در گذر زمان، بهبود یافتند. بهعنوان مثال، برخی از ساختارهای سایهزنی پیش از کامپایلشدن در درایور، با هدف کاهش مشکلات پردازشی جایگزین میشدند. بههرحال هنوزهم در درایورهای جدید تلاشهایی برای کاهش مشکلات چند پردازندهی گرافیکی میشود؛ ولی هنوز باگهای متعددی در درایورها وجود دارد.
دلیل اصلی مرگ کارتهای گرافیکی با چند پردازنده در پیشنیازهای نرمافزاری یا پدیدهی micro stuttering نیست و درواقع، دلیل اصلی این بود که توسعهی سریع کارتهایی با تراشههای تکی بازار را بهسمت جدیدی سوق داد.
کارت گرافیک Titan Z محصول سال ۲۰۱۴ نرخ محاسبهی FP32 برابر با پنج ترافلاپس داشت و پهنای باند حافظهی ۳۳۶ گیگابیتبرثانیه را به کاربر ارائه میکرد. تنها چهار سال بعد، انویدیا کارت GeForce RTX 2080 Ti را به بازار عرضه کرد که توان پردازشی ۱۳/۴۵ ترافلاپس و پهنای باند ۶۱۶ گیگابیتبرثانیه داشت و تنها از یک تراشهی GPU بهره میبرد. نکتهی مهمتر اینکه قیمت کارت جدید نصف Titan Z بود.
در محصولات AMD نیز رخدادی مشابه پیش آمد. کارت گرافیک Radeon RX 5700XT که در سال ۲۰۱۹ و پنج سال پس از R9 380 X2 معرفی شد، با قیمت ۴۰۰ دلاریاش، ۹۰ درصد قدرت پردازشی بیشتری ارائه میکرد و پهنای باند آن نیز ۳۰ درصد بهتر از نسل قدیمی بود.
اکنون بازهم این سؤال مطرح میشود: «آیا عمر کارتهای گرافیکی با چند GPU بهپایان رسیده است؟» احتمالا بله. حتی در بازارهای بسیار حرفهای و ورکاستیشن نیز نیاز چندانی به این کارتها وجود ندارد و جایگزینی یک GPU در یک مجموعه، از ازدستدادن چند تراشهی همزمان آسانتر بهنظر میرسد. این کارتها در دورهای از تاریخ بازار خاصی را هدف گرفتند؛ اما بهمرورِزمان با افزایش مصرف توان و قیمتهای سرسامآور، محبوبیت خود را از دست دادند.