در این مقاله میخواهیم به یک سوال اساسی در مورد تفاوت میان رندرینگ با پردازنده و رندرینگ با کارت گرافیک بپردازیم. با ما در آیتی پرس همراه باشید تا به جواب این سوال برسیم.
یکی از سوالات اساسی کاربران حرفهای، تفاوت میان رندر گیری با پردازنده و یا با کارت گرافیک است. بیشتر بررسیها و مقالات موجود در این زمینه در مورد سرعت بیشتر رندرگیری با کارت گرافیک میباشد. که جهت گیری منطقی میباشد زیرا کاربران علاقه دارند با سرعت هرچه بیشتر رندرهای خود را انجام دهند و به سرعت به نتیجه برسند.
اما سوال مهمتر آن است که آیا رندرگیری با پردازنده هنوز هم گزینه مناسبی است؟ برای جواب به این سوال باید موضوعات مختلفی را بررسی نماییم اما به صورت کوتاه میتوان گفت که این موضوع را باید براساس نیاز کاربر براساس سرعت، کارایی و دقت رندر مورد نظر طبقهبندی نمود. و کاربر باید براساس نیاز خود در این سه مورد میان رندر گیری با پردازنده یا کارت گرافیک انتخاب نماید.
تفاوتهای بنیادین رندرینگ با پردازنده و رندرینگ با کارت گرافیک:
در ادامه برای پاسخگویی تفصیلی به این سوال سعی میکنیم از مطالب ذکر شده توسط متخصصین این حوزه از استودیوهای کوچک تا پیکاسار و Dreamworks را بررسی نماییم. و به یک جمعبندی کلی میان رندرینگ با پردازنده و رندرینگ با کارت گرافیک برسیم.
تفاوت تطبیق پذیری در رندرینگ با پردازنده و رندرینگ با کارت گرافیک:
پردازندههای مرکزی (CPU) به طور سنتی موتور اصلی کامپیوتر بودهاند و برای دههها رایجترین تجهیزات محاسباتی در کامپیوترها به شمار میرفتند. بنابراین به گونهای طراحی شدهاند که بتوانند مجموعهای گسترده از تسکها را به سرانجام رسانند. بیشتر نرمافزارها نیز به گونهای ساختهشدهاند تا از قابلیتها و محدودیتهای پردازنده را به خوبی به کار گیرند.
رندرینگ نیز به طور سنتی بر روی CPU اجرا میشود و بیشتر رندررها و نرمافزارهای رندرینگ به خوبی از چند هسته و چند CPU پشتیبانی میکنند. علاوه بر رندرینگ، بسیاری از برنامههای سهبعدی از CPU برای شبیهسازی فیزیک استفاده میکنند که به سینرژی بین رندرینگ صحنههای سنگین روی CPU منجر میشود.
رایج است که کاربران برای رندرینگ به چندین برنامه نیاز داشته باشند و این برنامهها را همزمان باز کنند، بنابراین داشتن یک پردازنده چند هستهای باعث تجربهای روانتر میشود، زیرا هر برنامه میتواند از چند هسته بهطور کامل استفاده کند بدون اینکه در فشاری کاری محدودیت هستههای پردازنده گریبانگیر کاربر شود. پس به عنوان یک اصل و پیشنهاد میتوان گفت برای یک سیستم رندرینگ مناسب نیاز به دو عنصر قدرتمند کارت گرافیک و پردازنده میباشد.
در مقابل، پردازندههای گرافیکی (GPU) عمدتاً برای محاسبات گرافیکی طراحی شدهاند. و عمده قدرتشان در همین زمنیه است. با این حال برای متخصصان سهبعدی کاربردهای دیگری ندارند (مگر اینکه برنامههایی مانند سینما 4دی استفاده کنند که به تازگی به استفاده از GPU برای شبیهسازی فیزیک روی آورده است.).
تفاوت سرعت در رندرینگ با پردازنده و رندرینگ با کارت گرافیک:
پردازندههای گرافیکی بهطور خاص برای سرعت بالا در محاسبات سهبعدی طراحی شدهاند. کارتهای گرافیک برای پردازش موازی طراحی شدهاند که امکان انجام همزمان محاسبات را فراهم میکند. در وظایف رندرینگ و بهویژه در برنامههای همزمان(Realtime)، توانایی پردازندههای گرافیکی به خوبی نمایان میشود. کارت گرافیک در رندر سهبعدی باید موقعیت میلیونها رأس، تابش نور، بافت و غیره را محاسبه کند که همه این محاسبات میتوانند به صورت موازی و غیرترتیبی انجام شوند که کاربردی مناسب برای کارتهای گرافیک میباشد.
پردازندههای گرافیکی امروزی تا هزاران هسته دارند (به عنوان مثال کارت گرافیک RTX 6000 دارای 18176 هسته CUDA است) در حالی که حداکثر هستههای CPU در پردازندههای HEDT در بیشترین حالت 94 هسته در سری جدید پردازندههای Threadripper است. البته هر هسته CPU سریعتر از هستههای گرافیکی است اما نه به اندازهای که تفاوت تعداد هسته را جبران کند.
پردازندههای گرافیکی از کتابخانههای برنامهنویسی CUDA که توسط انویدیا برای محاسبات گرافیکی توسعه یافتهاند نیز بهرهمندند. این ترکیب از سختافزار و نرمافزاری که به طور خاص برای این مورد طراحی شدهاند باعث به وجود آمدن گزینههای رندرینگ بسیار سریع شده است. بسیاری از موتورهای رندرگیری پردازندههای گرافیکی از موتور هوش مصنوعی انویدیا نیز استفاده میکنند تا رندرها را بدون صرف وقت بیشتر برای پردازش نور به منظور دستیابی به تصویر شفافتر، تصفیه مینماید، که این امر سرعت رندرینگ را نیز افزایش میدهد. البته برخی از نتیجه denoising با استفاده از هوش مصنوعی خوشایند نیستند اما میتوان تعادلی را به دست آورد.
تفاوت دقت و صحت در رندرینگ با پردازنده و رندرینگ با کارت گرافیک:
هنگامی که دقت بالا در رندرینگ نیاز است،در میان رندرینگ با پردازنده و رندرینگ با کارت گرافیک، پردازندههای مرکزی هیچ رقیب دیگری نخواهند داشت. آنها در وظایفی که نیازمند محاسبات پیچیده و شبیهسازیهای عددی هستند مانند رندرینگ و محاسبات علمی و مهندسی برتری بلامنزعی دارند. این موضوع را میتوان در برنامههایی مثل شبیهسازی پدیدههای جریان سیالات، تحلیل سازهها یا مدلسازی مولکولی مشاهده کرد. زیرا پردازندههای مرکزی بهتر از محاسبات اعداد اعشاری با دقت دو عدد (افپی ۶۴) پشتیبانی میکنند. گرچه پردازندههای گرافیکی امروزه در این زمینه بهبودهای عظیمی پیدا میکنند، اما هنوز رندرینگ و محاسبات علمی بر روی پردازنده بهتر و به صرفهتر است.
تفاوت ظرفیت حافظه در رندرینگ با پردازنده و رندرینگ با کارت گرافیک:
پردازندههای مرکزی از حافظه اصلی سیستم برای ذخیرهسازی دادههای برنامه و صحنهها استفاده میکنند. این امر اجازه میدهد تا با داده مجموعههای عظیم و صحنههای گسترده را بدون برخوردن به محدودیت حافظه رندر نمایند. بسیاری از پردازندههای سرور مانند Threadripper pro و EPYC از ایامدی یا Xeon از اینتل تا 2048-4096 گیگابایت حافظه رم را پشتیبانی میکنند.
با این حال حداکثر مقدار VRAM موجود در پردازندههای گرافیکی تنها 48 گیگابایت است. با افزایش تعداد اشیاء و پیچیدگی صحنهها، چه به دلیل تعداد پولیگانها، اندازهی بافت یا شبیهسازی فیزیک، پردازنده گرافیکی میتواند سریعاً از حافظه خالی شود که باعث کاهش سرعت رندر یا حتی در مواردی خرابی سیستم گردد. با این حال رندرینگ روی سیپییو برای صحنههای عظیمتر و دادههای بزرگ بهتر عمل میکند.
تفاوت رندر همزمان در رندرینگ با پردازنده و رندرینگ با کارت گرافیک:
در رندرهای گرافیکی همزمان و Realtime، پردازندههای گرافیکی بیرقیب محسوب میشوند. به عنوان مثال در بازیهای ویدئویی، شبیهسازیهای واقعیت مجازی، معماری و برنامههای سهبعدی تعاملی. البته این موضوع به این معنا نیست که پردازندههای مرکزی قادر به انجام وظایف سهبعدی به صورت همزمان نیستند. برای مثال Zbrush که ابزار مطرح مدلسازی سهبعدی با چندین میلیون پولیگان است تقریباً تنها بر پایه پردازنده اجرا میشود. با این حال برای برنامههایی مانند انریل و Chaos Vantage تنها راه برای دستیابی به عملکرد مناسب با تصاویر باکیفیت استفاده از یک پردازنده گرافیکی مجزا میباشد.
تفاوت بهرهوری مصرف در رندرینگ با پردازنده و رندرینگ با کارت گرافیک:
این جاست که اوضاع کمی پیچیده میشود. مصرف بالای پردازندههای مرکزی از کاربران پوشیده نیست. این مورد میتواند منجر به افزایش هزینههای مصرف برق در فارمهای رندرینگ یا افزایش زمان رندرینگ در محیطهایی باشد که محدودیت مصرف انرژی وجود دارد. هرچند این افزایش در سیستمهای رندرینگ کاربران آنقدر محسوس نمیباشد. و در حال حاضر کارتهای گرافیک قدرتمند نیز در حد و اندازه پردازندههای مرکزی مصرف دارند و این موضوع را نمیتوان نقطه ضعفی برای رندرینگ با پردازنده در نظر گرفت.
تفاوت قیمت در رندرینگ با پردازنده و رندرینگ با کارت گرافیک:
پردازندههای مرکزی قدرتمند معمولاً هزینههای گزافی دارند. بر اساس قیمتهای فعلی در حال حاضر، قیمت پردازنده AMD Threadripper Pro 5995WX با 64 هسته حدود 6000 دلار است که علاوه بر آن باید هزینه مادربرد و سایر اجزای سیستم را نیز محاسبه نمود. حال آنکه توانایی پشتیبانی از تا 2 ترابایت حافظه رم را نیز داراست که خود هزینهای جداگانه دارد. و تازه این هزینه نسل قبلی پردازندههای Threadripper میباشد و این موضوع در نسل جدید برای پردازنده Threaripper Pro 7995wx حدود 10 هزار دلار است.
همچنین در بهروزرسانی به پردازنده جدید ممکن است نیاز به مادربرد جدید و حتی حافظه رم جدید باشد. برای مثال کاربری که از پردازنده Threadripper Pro 5995WX استفاده میکند برای بهروزرسانی به 7995wx جدید 96-هستهای نه تنها باید پردازنده جدید را خریداری کند بلکه مادربرد نیز تعویض خواهد شد. این بهروزرسانی میتواند هزینهای تا 12 تا 15 هزار دلار داشته باشد، در حالی که برای کاربر رندرینگ گرافیکی، بهروزرسانی از RTX 3090 به 4090 کمتر از 2000 دلار هزینه دارد.
اندازه سخت افزار در رندرینگ با پردازنده و رندرینگ با کارت گرافیک:
یکی دیگر از جنبههایی که بسیاری از افراد به آن توجه نمیکنند شکل سیستم مورد استفاده قرار گرفته است. دسکتاپهای ورکاستیشن معمولاً تنها میتوانند به یک پردازنده مجهز شوند و برای استفاده از دو پردازنده نیاز به مادربوردهای سرور میباشد. که در کیسهای عادی موجود جای نخواهند گرفت.
این امر استفاده از کارت گرافیک را برای کاربران ورکاستیشنهای رومیزی جذابتر نموده است. زیرا امکان استفاده از سیستمهای کوچکتر را فراهم میکنند کاربران این سیستمها میتوانند چندین کارت گرافیک را در یک سیستم ورکاستیشن به کار گیرند.
نرم افزارهای رندرینگ برای رندرینگ با پردازنده و رندرینگ با کارت گرافیک:
قطعه آخر معمای رندرینگ با پردازنده و رندرینگ با کارت گرافیک نرمافزار رندرینگ مورد استفاده است. انتخاب نرمافزار رندر مناسب میتواند با توجه به تمامی عوامل فوق ذکر شده انجام شود. به عنوان مثال در حوزه معماری، نرمافزار کورونا از Chaos Group بسیار مورد تقاضاست زیرا به طور خاص برای رسیدن به نورپردازی واقعی طراحی شده است که برای نمایش دقیق محصول نهایی به مشتریان اهمیت دارد و برای رندرینگ با پردازنده بهینه شده است. در مقابل نرم افزار Octane و Redshift بیشتر برای کارت گرافیک بهینه شده است.
بعنوان مثال در فیلمسازی دقت علمی به اندازه باورپذیر بودن اهمیت ندارد بنابراین پشتیبانی از کارتهای گرافیک در نرمافزارهای مثل Octane و Redshift بیشتر دیده میشود. در برنامههایی که از هر دو یعنی رندرینگ با پردازنده و رندرینگ با کارت گرافیک پشتیبانی میکنند مانند V-Ray ، Arnold و حتی Renderman ، فقط انتخاب سختافزار کافی نیست و باید تنظیمات ویژهای صورت گیرد تا نتایج یکسانی حاصل شود که برای بعضی استفادهها و کاربران اهمیت دارد.
نتیجه گیری میان استفاده از رندرینگ با پردازنده و رندرینگ با کارت گرافیک:
محیط رندرینگ سهبعدی همواره در حال تکامل است. همیشه تلاشی پیوسته برای افزایش سرعت رندرینگ و بهبود کیفیت خروجی وجود دارد. پردازندههای گرافیکی قدرتمند باعث ایجاد موتورهای رندر جدیدی شدهاند که هزینه هزینه ورود به دنیای سهبعد را کاهش دادهاند. با اینحال پردازندههای مرکزی جدید نیز تعداد هستههایشان به شدت افزایش یافته و همچنان انتخابی مناسب برای مزارع رندرینگ و کاربران حرفهای هستند.
کاربران ممکن است برای تحویل سریع در فاز look-dev از سرعت پردازندههای گرافیکی استفاده کنند یا کاربران تازه وارد از قیمت پایینتر آنها برای ورود به این بازار استفاده نمایند. با این حال پردازندههای مرکزی به دلیل قابلیت اطمینان، ظرفیت بالای حافظه و قابلیت مقیاسپذیری برای مزارع رندرینگ همچنان برتری واضحی دارند.
انتخاب میان رندرینگ با پردازنده و رندرینگ با کارت گرافیک هنوز نیز سوالی پیچیده است و باید عوامل متعددی را در نظر گرفت. در این مقاله سعی کردیم به مقایسه میان رندرینگ با پردازنده و رندرینگ با کارت گرافیک بپردازیم.