نگاهی به معماری جدید NVIDIA Turing انقلابی در فناوری Ray Tracing

نگاهی به معماری جدید NVIDIA Turing انقلابی در فناوری Ray Tracing


پیش‌گفتار

انویدیا به عنوان کمپانی پیشرو در توسعه تراشه‌های گرافیکی چند هفته گذشته به طور رسمی از نسل جدید معماری NVIDIA Turing رونمایی کرد. تقریبا پس از گذشت دو سال از زمان معرفی معماری Pascal، کمپانی انویدیا در مراسم Gamescom سال جاری واقع در Cologne کشور آلمان که میزبانی را بر عهده داشته بود، تولیدات بخش گیمینگ معماری Turing را با 3 محصول RTX 2080 ،RTX 2070 و RTX 2080 Ti معرفی کرد.

NVIDIA Turing

تغییر نامگذاری سری GTX انویدیا به RTX دلیل کاملا روشنی دارد و آن هم چیزی جزء معرفی نسل جدیدی از فناوری Real Time Ray Tracing نیست. همانطور که گفته شد اهمیت Ray Tracing تا حدی از نظر انویدیا زیاد بوده که شیوه نامگذاری محصولات و اساس معماری Turing برای عملکرد مناسب در این فرآیند (Ray Tracing) پی ریزی شده است. اما اینکه Ray Tracing چیست و چه تاثیری در آینده بازی‌های کامپیوتری دارد در ادامه صحبت خواهیم کرد.

انویدیا برای معماری Turing وقت و هزینه بسیار زیادی صرف کرده است چرا که پایه معماری پردازشگرهای گرافیکی در این معماری دچار تحولی شگرف شده است و از حالت پردازش تمام شطرنجی‌سازی (Rasterisation) به سمت رندر ترکیبی یا به اصطلاح Hybrid Rendering حرکت کرده است. برای درک بهتر مفهوم Rasterisation بهتر است بدانید که وظیفه اصلی یک تراشه گرافیکی تبدیل داده‌های برداری به داده‌های شطرنجی است به بیان ساده‌تر تصاویر از حالت گرافیک برداری به گرافیک شطرنجی و پیکسل تغییر می‌کنند. در مبحث رندرینگ کامپیوترها این فرآیند از طریق نوعی الگوریتم برای نمایش تصاویر سه‌بعدی به کار می‌رود.

NVIDIA Turing

انویدیا با فراهم کردن سخت افزار و رابط نرم افزاری مورد نیاز گام بلندی در شبیه سازی فناوری Ray Tracing برداشته است و امکان تجربه گرافیک خارق العاده و طبیعی را برای علاقه‌مندان به بازی‌های رایانه‌ای تدارک دیده است. اگرچه انویدیا با استدیوهای توسعه‌دهنده زیادی برای استفاده Ray Tracing در عناوین سه بعدی همکاری کرده است اما در حال حاضر به دلیل عدم عرضه رابط برنامه نویسی اختصاصی این فناوری با نام DXR امکان پیاده سازی افکت‌های گرافیکی Ray Tracing برای بازی‌ها امکان‌پذیر نیست.

با نزدیک شدن به محدودیت اندازه ترانزیستورها به عنوان جزء اصلی ساخت هر پردازشگر، کمپانی‌های سازنده به ناچار باید به دنبال روش‌های دیگری برای طراحی محصولات خود باشند. انویدیا با معرفی معماری Turing و ویژگی رندر ترکیبی در حقیقت شروعی پرقدرت در پیمودن این مسیر به شیوه صحیح داشته است. در حالی که انویدیا کارت‌های گرافیک RTX 2000 را با محصولات نسل گذشته سری GTX 1000 مقایسه می‌کند، طراحی Turing در واقع شباهت‌های زیادی با معماری Volta دارد.

تا کمتر از دو ماه گذشته تصور بر این بود که مشابه با نسل‌های قبلی، پس از معرفی محصولات بخش تجاری با فاصله اندکی تولیدات بخش مصرف‌کننده یا گیمینگ معرفی می‌شوند، اما انویدیا سنت چند ساله خود را با معرفی معماری Turing شکست و دیگر خبری از محصولات گیمینگ سری Volta نخواهد بود و این معماری تنها به بخش تجاری و حرفه‌ای اختصاص داده خواهد شد. البته این تصمیم چندان نیز دور از انتظار نبوده است چرا که دو شرکت NVIDIA و AMD قبلا اعلام کرده بودند که معماری کارت‌های گرافیکی به زودی به طرح جداگانه‌ای برای بازی و محاسبه تقسیم خواهد شد.

ایجاد یک استاندارد در رندرینگ ترکیبی توسط انویدیا کار را برای سایر شرکت‌های رقیب نظیر AMD و حتی Intel برای ورود به بازار این بخش یا ارائه محصولاتی با طراحی مشابه دشوار خواهد ساخت، انویدیا به طور هوشمندانه‌ای با استفاده از پتانسیل تیم برنامه نویس خود باعث ایجاد یک توازن مناسب جهت به کارگیری تکنیک‌های جدید Ray Tracing همراه با شیوه مرسوم Rasterisation شده است. به کمک این روش پردازش تصاویر متحرک به خاطر استفاده از روش شطرنجی‌سازی با سرعت بیشتری انجام خواهد شد و در کنار آن نیز استفاده از ویژگی‌های فوق‌العاده Ray Tracing برای بهبود جلوه‌های بصری عناوین سه‌بعدی نقش مهمی خواهد داشت.

 

Ray Tracing دریچه‌ای به نسل آینده گرافیک بازی‌ها

یکی از دو تغییر بسیار کلیدی در واحد‌های پردازشگر (SM) تراشه‌‌های گرافیکی Turing اضافه شدن قسمتی تحت عنوان RT Core یا هسته‌های Ray Tracing می‌باشد. قبل از اینکه بیشتر در مورد معماری تازه وارد انویدیا صحبت کنیم بهتر است توضیحی در خصوص مبحث Ray Tracing داشته باشیم. این بخش همانطور که اشاره شد تا اندازه‌ای برای انویدیا مهم بوده است که قسمت تقریبا زیادی از منابع پردازشی تراشه گرافیکی را به این بخش اختصاص داده است.

مختصر می‌توان گفت که Ray Tracing به معنای فرآیند رندرینگی برای نمایش حالات و رفتار نور مشابه با دنیای واقعی است. در سطح بنیادی، نور می‌تواند به صورت یک پرتو در نظر گرفته شود، زیرا فوتون‌ها خارج از تاثیرات جانبی به صورت یک خط مستقیم حرکت می‌کنند تا اینکه با جسمی برخورد داشته باشند. در نقطه برخورد تعاملاتی نظیر انعکاس، انکسار یا شکست نور و …… میان فوتون‌ها و اجسام اتفاق می‌افتد.

Ray Tracing روندی بسیار دشوار و حساس برای شبیه سازی واکنش اشیاء به نور در یک محیط می‌باشد، ردیابی پرتوها کار بسیار حساسی است و اگر به فرض مثال رویکردی ساده را برای پیشبرد Ray Tracing در نظر بگیرم و به دنبال محاسبه تمام پرتوهای تابشی از منابع نور در یک محیط باشیم باید تعداد بیشماری نزدیک به بی‌نهایت از این پرتوها را که در جهت‌های مختلف حرکت می‌کنند را ردیابی کنید!

به همین منظور بهینه‌سازی و تغییرات زیادی در نحوه پردازش Ray Tracing طی سال‌های گذشته انجام گرفته است که مهم‌ترین آن‌ کنار گذاشتن روش مرسوم ردیابی تمام پرتوها از منابع نور در صحنه می‌باشد. در روش جدید به جای ردیابی پرتوها از منابع نور، پرتوهایی که از نقطه مشاهده کننده به صحنه ارسال می‌شوند، مورد ردیابی قرار می‌گیرند و در نهایت نیز تنها پرتوهایی که به دوربین می‌رسند مورد محاسبه و پردازش قرار می‌گیرند.

اگرچه تکنیک‌های رندرینگ برای Ray Tracing طی گذر زمان دستخوش تغییرات زیادی شده است اما این پردازش همچنان عملیاتی بسیار سنگین و زمان‌بر محسوب می‌شود. تمام این بهینه‌سازی‌ها این امکان را فراهم کرده است که پردازش Ray Tracing تنها با یک کامپیوتر در مدت زمانی منطقی انجام گیرد. البته منظور از یک کامپیوتر در حقیقت سریعترین سیستم مجهز شده به جدیدترین سخت افزارها می‌باشد و زمان منطقی هم ممکن است حتی تا ساعت‌ها به طول انجامد.

RayTracing هم اکنون نیز در بخش‌های مختلف صنعتی نظیر ملک و املاک برای نمایش واقع‌گرایی عکس‌وار پروژه‌های در حال ساخت نقش مهمی دارد و تا به حال استفاده چندانی در بازی‌های کامپیوتری نداشته است. به علت طبیعت پویا، صحنه‌های بزرگتر، اشیاء بیشتر و حرکت سریع دوربین در بازی‌های کامپیوتری، پیاده‌سازی RayTracing در این بخش بسیار دشوار و هزینه‌بر است.

صنعت فیلم‌سازی طی چند سال گذشته از تکنیک RayTracing تنها به صورت فریم‌های از پیش رندر شده برای خلق جلوه‌های ویژه فقط در فیلم‌هایی با بودجه تولید بزرگ بهره برده است. در پروژه‌های سینمایی برخلاف بازی‌های کامپیوتری اثری از محتوای تعاملی نیست و رندر فریم‌های تصاویر به کمک بهره‌گیری از صدها پرتو در هر پیکسل امکان‌پذیر خواهد بود.

شبیه سازی چگونگی رفتار نور در واقعیت فرآیند بسیار پیچیده‌ای است و کیفیت خروجی تصاویر در حالت RayTracing قابل مقایسه با هیچ روش مشابه‌ دیگری نخواهد بود. محاسبه انعکاس، سایه‌ها، انتشار نور و ویژگی‌های متناسب با آن تا این درجه دقت از عهده روش‌های دیگر پردازش تصاویر خارج است.

هزینه محاسبات بالا در RayTracing بدین معنی است که برای پردازش گرافیکی Real Time یا واقع‌گرایانه قابل اجرا نیست، در عوض از همان روزهای اول معرفی RayTracing، صنعت محاسبات به سوی شطرنجی‌سازی (Rasterization) حرکت کرد. اگر Ray Tracing فرآیندی مبتنی بر پیکسل باشد، مطابق با آن Rasterization را باید رویکرد چند ضلعی مرکزی برای پردازش تصاویر سه بعدی در نظر بگیریم.

 

Rasterization ادامه سنت گذشتگان

در شیوه رندرینگ Rasterization رفتار واقعی نور به صورت ساختگی به نمایش در می‌آید چرا که سیستم‌ها توانایی لازم برای Real Time Ray Tracing یا پردازش محیط به صورت واقعی را ندارند. شطرنجی‌سازی از تعدادی راه میانبر و مفروضات در مورد چگونگی کارکرد نور، اشیاء و مواد به منظور کاهش حجم کار محاسباتی در پردازش یک صحنه استفاده می‌کند.

به طور بنیادی Rasterization پروسه‌ای جهت بردن چند ضلعی‌ها در یک صحنه و نقشه برداری از آنها به یک صفحه 2D است. این به این معنی است که چند ضلعی‌ها مرتب شده و آزمایش می شوند تا مشخص شود کدام چند ضلعی در واقع قابل مشاهده است و سپس در مراحل مختلف این چند‌ضلعی‌ها دارای بافت، سایه و ….. می‌شوند و در نهایت نیز پردازشی برای تعیین رنگ نهایی آنها در محیط انجام خواهد گرفت، مسلما این روش یک ساده‌سازی بزرگ از فرآیندی است که خود آن فرآیند نیز قبلا دچار ساده‌سازی شده است.

نکته کلیدی در شطرنجی‌سازی، این نیست که چطور کار می کند، بلکه این مسئله است که در این روش از پرتو یا اشعه نور استفاده نمی‌شود و به همین خاطر پردازش آن سبک‌تر خواهد بود. این ساده‌سازی می‌تواند به صورت پردازش‌های موازی نیز انجام شود و مطابق با آن نیز تراشه‌های گرافیکی به عنوان ماشین آلات ضرب ماتریکس باور نکردنی به وجود آمدند.

حرکت معماری تراشه‌های گرافیکی به سمت پردازش موازی در واقع جهت افزایش پتانسیل آن‌ها برای انجام بهتر عملیات Rasterization صورت گرفته است تا این ریزپردازنده‌ها توانایی آزمایش صدها میلیون چندضلعی و رنگ‌آمیزی میلیاردها پیکسل را در هر ثانیه داشته باشند. با تمام این تفاسیر مهم نیست که شطرنجی‌سازی چقدر در نمایش تصاویر و رفتار نور ساختگی عمل کند، این روش در آخر نوعی تقلب است و دارای محدودیت‌های زیادی در چگونگی نمایش جعلی دید و نور در دنیای واقعی خواهد بود.

طرح اولیه چند ضلعی گذشته، بافت‌گذاری و سایه‌زنی پیکسل‌ دقیقا جایی است که امروزه بیشتر کارها انجام می‌شود تا در واقع مشخص کند که چه رنگی یک پیکسل نیاز دارد. به بیان دیگر در بخش Pixel Shader اشکال مختلف نورپردازی (سایه‌ها، انعکاس، انکسار و غیره) شبیه‌سازی می‌شوند. اگرچه برنامه‌های Pixel Shader در نوع خود بسیار قدرتمند ظاهر شده‌اند اما قادر به شبیه‌سازی نور واقعی در درجه بالا و به طور کارآمد نیستند.

در دانش نگاره‌سازی کامپیوتری یا گرافیک یک Pixel Shader برنامه‌ای است که رنگ، روشنایی، کنتراست و ویژگی‌های دیگر یک واحد پیکسل را تعیین می‌کند. برنامه‌نویسی که در نوشتن Pixel Shader تخصص دارد در حقیقت با عنوان هنرمند سایه‌زنی شناخته می‌شود.

این محدودیت‌های گفته شده نظیر نمایش غیر طبیعی نور، بازتاب محدود، سایه‌های با وضوح پایین و …. باعث ایجاد مشکلاتی در روش Rasterization شده است تا شطرنجی‌سازی تنها روشی برای پیشبرد سریع پردازش تصاویر مد نظر قرار گیرد و کیفیت خروجی چندان مورد اهمیت قرار نگیرد.

Rasterization با وجود عدم دقت کافی در نمایش نورپردازی محیط، در صورت اختصاص وقت لازم و توان محاسباتی زیاد می‌تواند کیفیت نسبتا خوبی را به نمایش بگذارد. اما برای دسترسی به این سطح از کیفیت همانطور که گفته شد باید نیروی کاری و پتانسیل پردازشی بالایی مورد استفاده قرار گیرد. سوالی که این میان مطرح است این می‌باشد که اگر قرار است این میزان کار را برای خلق تصاویری با نورپردازی جعلی اما کیفیت مناسب اختصاص دهیم چرا از ابتدا به سمت نورپردازی واقعی و Real Time Ray Tracing حرکت نکنیم؟

 

Hybrid Rendering مسیر پیش روی انویدیا برای پیاده‌سازی Ray Tracing

سوال مورد نظر در حقیقت مطلبی است که کمپانی انویدیا طی سال‌های گذشته به دنبال آن بوده است و معماری Turing دقیقا پاسخی از سوی انویدیا برای حل این مسئله بوده است. در سال 2018 میلادی انویدیا به عنوان شرکت فعال در بخش توسعه معماری گرافیکی روش جدیدی را برای پردازش تصاویر معرفی کرد که رویای دیرباز استفاده از Ray Tracing در بازی‌های رایانه‌ای به حقیقت خواهد پیوست.

انویدیا با رونمایی از Turing به خوبی نشان داده است که کمپانی دیگر برنامه‌ای برای ادامه یک جانبه Rasterization در صنعت بازی‌های کامپیوتری ندارد و در واقع به دنبال استفاده همزمان از بهترین بخش‌های Rasterization و Compute همراه با قسمت‌های مهم Ray Tracing در قالب رندر ترکیبی است. اما اینکه چگونه و به چه صورتی این ویژگی‌ها مورد استفاده قرار گیرند، کاملا به تیم طراح و توسعه‎‌دهنده عناوین سه بعدی مرتبط خواهد بود.

ایده اصلی انویدیا از رندر ترکیبی استفاده از فناوری Ray Tracing در سیستم نورپردازی و در کنار آن نیز بهره‌گیری از شیوه Rasterization برای پردازش قسمت‌های دیگر است تا هم کیفیت بی نظیر Ray Tracing در بخش جلوه‌های گرافیکی نمایان شود و هم سرعت بالای Rasterization مورد استفاده قرار گیرد.

به عبارت دیگر انویدیا تصمیم گرفته است تا به جای کنار گذاشتن کلی شیوه رندرینگ Rasterization و پیش رفتن کامل به سمت Ray Tracing، از مزیت‌های هر دو که سرعت پردازش بیشتر و کیفیت خروجی بهتر را فراهم می‌کنند، بهره ببرد. البته هر چقدر این فناوری نوین رندرینگ در روی کاغذ مناسب ظاهر شود اما هنوز تضمینی برای عملکرد مناسب و قابل قبول آن در آینده وجود ندارد.

یکی از بخش‌های کلیدی در توسعه فناوری رندرینگ ترکیبی چیزی جزء رابط برنامه نویسی تازه وارد شرکت مایکروسافت با نام DirectX Ray Tracing یا با اختصار DXR نیست. برای مشاهده نتیجه نهایی کار در عناوین سه بعدی قطعا شرکت‌های مایکروسافت و انویدیا باید با توسعه‌دهندگان همکاری نزدیکی داشته باشند تا به برنامه‌نویسان این استدیوها روش‌های پیاده سازی Ray Tracing به طور بهینه آموزش داده شود.

به هر حال استفاده از سیستم رندر ترکیبی به نظر برنامه انویدیا برای سال‌های آینده است و برای رسیدن به این هدف نیز نزدیک به 10 سال از سرمایه و مهم‌تر از آن وقت تیم تحقیقاتی کمپانی را جهت توسعه معماری Turing صرف کرده است. در ادامه به تغییرات بنیادی صورت گرفته در سخت افزار تراشه‌های Turing برای عملکرد مناسب در مبحث Ray Tracing خواهیم پرداخت.

 

Bounding Volume Hierarchy ابزاری در جهت پیشبرد Ray Tracing

شاید مهم‌ترین جنبه از تاکید انویدیا روی Ray Tracing این مسئله باشد که تراشه‌های گرافیکی مرسوم فعلی چندان در عملیات مورد نظر خوب عمل نمی‌کنند. این پردازشگرهای گرافیکی در عملیات شطرنجی سازی به ویژه محاسبات موازی فوق‌العاده سریع هستند اما Ray Tracing ارتباط چندانی به این نمونه‌های محاسباتی ندارد.

به همین منظور انویدیا تصمیم گرفته است تا بخش سخت افزاری اختصاصی Ray Tracing را به طراحی تراشه‌های Turing اضافه کند که خود این کار نیز به معنای اختصاص بخشی از سطح تراشه و منابع پردازشی (ترانزیستورها) به قسمتی که برای بهبود پردازش Rasterization قابل استفاده نخواهد بود.

بخش بزرگی از این سخت افزار به نوبه خود به حل اساسی ترین مشکل Ray Tracing یعنی اینکه چگونه متوجه شویم که یک پرتو با چه چیزی در ارتباط است، رسیدگی خواهد کرد. رایج ترین راه حل برای این مشکل ذخیره کردن مثلث‌ها در یک ساختار داده مناسب برای Ray Tracing خواهد بود. این ساختار داده با عنوان Bounding Volume Hierarchy یا به اختصار BVH شناخته می‌شود.

به جای تست هر چند ضلعی برای دیدن اینکه آیا یک پرتو با آن ارتباط برقرار می‌کند، بخشی از یک صحنه مورد آزمایش قرار می‌گیرد تا ببینند که آیا با یک پرتو تعامل دارد یا خیر، سپس این کار ادامه خواهد یافت. اگر تعاملی از پرتو با آن قسمت از صحنه مشاهده شود، دوباره آن را به بخش های کوچکتر تقسیم می‌کنند و مورد آزمایش قرار می‎دهند. این کار همینطور ادامه خواهد یافت تا جایی که آن چند ضلعی منحصر به فرد برای بررسی پرتو شناسایی شود.

شاید BVH از نظر افرادی که در علوم رایانه سررشته دارند مانند یک برنامه در سیستم جستجوی دودویی یا جفتی باشد که در واقع نیز همینطور می‌باشد. هر تست اجازه می‌دهد تا تعداد قابل توجهی از گزینه‌ها (در این حالت چند ضلعی) به عنوان پاسخ‌های احتمالی در نظر گرفته شود تا در کسری از زمان به چندضلعی هدف دسترسی پیدا کنند.

اما برخلاف روش جستجوی جفتی، در BVH یک درخت ساختار داده با زیربخش‌های مختلف تشکیل شده است که هر کدام از این زیربخش‌ها به عنوان فرزندان زیربخش مادر خود قرار گرفته‌اند. نکته مهم در خصوص BVH این مسئله است که با وجود کاهش میزان تقسیم شدن پرتو مورد نیاز نسبت به رویکردی ساده‌سازی با این حال هنوز پردازش سنگینی محسوب می‌شود و باید آزمون و خطا زیادی جهت تشخیص چندضلعی اصلی انجام شود.

تمام این فرآیند که گفته شد تنها برای یک پرتو صورت می‌گیرد این در حالی است که برای هر پیکسل به تعداد قابل توجهی از پرتوها نیاز است، به همین خاطر شتاب‌دهنده‌های سخت افزاری (RT Cores) برای تسهیل فرآیند مورد نظر نقشی سازنده را ایفا خواهند کرد. البته ساختار داده‌ها (BVH) نیز از قبل به صورت آماده در دسترس نیستند و خود این بخش نیز برای پیکربندی نیاز به هزینه محاسباتی زیادی دارد.

 

RT Cores تسهیل‌کننده‌ای برای Ray Tracing

فراتر از آنچه که معماری Volta به آن دست یافت و قطعا بخش بسیار امیدوار کننده در مورد داستان Turing تنها در یک بخش خلاصه شده است و آن هم چیزی جزء اضافه شدن هسته‌های پردازشگر پیشرفته Ray Tracing با نام RT Cores نخواهد بود. اگر ابعاد یک واحد SM را در نظر بگیریم مسلما RT Core فضا و منابع زیادی را از اصلی‌ترین بخش پردازشگر تراشه‌های انویدیا به خود اختصاص داده است. این طراحی خود به راحتی اهمیت مبحث Ray Tracing را از نظر انویدیا نشان می‌دهد.

تا به اینجای کار با سیستم Bounding Volume Hierarchy و نحوه عملکرد آن آشنا شده‌اید و در ادامه دانستیم که برای تشکیل یک درخت داده و همچنین پیمودن مسیر تا رسیدن به چندضلعی هدف نیاز به قدرت محاسباتی فوق‌العاده زیادی خواهد بود به بیان ساده‌تر انجام صحیح و سریع این عملیات از عهده تراشه‌های گرافیکی فعلی با پایه Rasterization خارج است.

انویدیا برای عملی کردن فناوری Ray Tracing در طراحی واحد‌های SM تراشه‌های Turing شتاب‌دهنده‌های سخت‌افزاری ویژه‌ای را تحت عنوان RT Core استفاده کرده است که نقش اصلی آن‌ها کمک به انجام سریع و با دقت فرآیند BVH می‌باشد. همانطور که اشاره شد  Bounding Volume Hierarchy نقش بسیار مهمی در انجام بهتر فرآیند Ray Tracing دارد و بدون آن یک الگوریتم مجبور خواهد شد که کل صحنه را جستجو کند و چرخه بیشماری از کار را برای آزمایش چندضلعی‌ها تا یافتن مثلث هدف انجام دهد.

با استفاده از بخش RT Core دیگر وظیفه به ثمر رساندن مرحله تشخیص مثلث‌هایی که با پرتوها تعامل دارند به راحتی انجام خواهد گرفت. واحدهای SM با استفاده از یک سایه‌زن تولیدکننده پرتو، یک عدد پرتو را به محیط ارسال می‌کنند و مسئولیت تشخیص تعاملات آن در صحنه بر عهده RT Core خواهد بود. در نتیجه با این کار تمام ارزیابی چندضلعی‌ها با سرعت بیشتری صورت خواهد گرفت و واحد‌های SM منابع آزاد شده بیشتری برای پیشبرد سایر کارها مانند عملیات شطرنجی‌سازی یا Rasterization خواهند داشت.

 

Tensor Cores هوش مصنوعی برای خدمت به همه

هوش‌مصنوعی یا Artificial Intelligence و به طور خلاصه شده AI جزء آن دسته از علوم رایانه شناخته می‌شود که از دیرباز مورد توجه اکثر دانشمندان و محققان قرار داشته است. به طور یقین نام هوش مصنوعی را در برخی از فیلم‌های سینمایی شنیده‌اید. اما امروز مطلبی که در مورد هوش مصنوعی گفته خواهد شد، چندان ارتباطی با نمونه‌های مشابه در فیلم‌ها نخواهد داشت.

انویدیا طی چند سال گذشته تمرکز ویژه‌ای بر روی بخش AI داشته و سرمایه هنگفتی از درآمد کمپانی را خرج توسعه آن کرده است. نتیجه تمام این کار انسانی و هزینه‌ها سرانجام امکان استفاده از هوش مصنوعی را در اکثر صنایع کامپیوتری، خودروسازی و همچنین یادگیری عمیق (Deep Learning) فراهم کرده است. برخلاف انتظار خیلی‌ها انویدیا حتی با معماری Turing پا را فراتر گذاشته و هوش مصنوعی را در محصولات بخش مصرف کننده (سری گیمینگ) به کار برده است.

همراه با معماری Volta اولین قسمت‌های مستقل پیشرفته برای پردازش عملیات‌های Deep Learning و شبکه‌های عصبی با نام Tensor Cores معرفی شدند. هسته های تنسور، واحدهای اجرایی تخصصی طراحی شده برای انجام عملیات تنسور یا ضرب ماتریس هستند که این فرآیند هسته اصلی محاسبه عملکرد در یادگیری عمیق می‌باشد. هسته‌های تنسور در معماری Turing مشابه با Volta، دارای سرعت فوق العاده‌ای جهت محاسبات ماتریس در مرکز آموزش شبکه‌های عصبی یادگیری عمیق و عملیات استنتاج هستند با این تفاوت که در Turing طراحی این هسته‌ها برای انجام بهتر  استنتاج ارتقاء یافته‌اند.

در واحدهای SM معماری Turing مشابه با Volta، تعداد دو هسته‌ تنسور در هر بلوک پردازشی یا زیرهسته تعبیه شده‌اند که مجموع هسته‌های تنسور را به عدد 8 در هر واحد SM خواهد رساند. TU102 به طور کلی دارای 72 واحد SM می‌باشد که در مقایسه با تراشه GV100 با مجموع 84 عدد از واحد‌های SM کمتری استفاده می‌کند. گفتنی است که واحد‌های فعال SM در کارت‌های گرافیک RTX 2080 Ti و TITAN V به ترتیب برابر با 68 و 80 است.

با یک حساب ریاضی ساده (68×8=544) متوجه خواهیم شد که میزان Tensor Cores در کارت گرافیک RTX 2080 Ti به 544 عدد خواهد رسید که نسبت به TITAN V با 640 عدد مقداری کمتر خواهد بود. اما هسته‌های تنسور در Turing از نسل دوم خود هستند و نحوه عملکرد آن با نسخه‌های مشابه خود در Volta فرق می‌کنند. انویدیا در Turing، هسته‌های تنسور را به گونه‌ای پیاده‌سازی کرده است که توانایی انجام عملیات‌های INT8 و INT4 را خواهند داشت.

این تغییر تنسورها در معماری Turing باعث شده است تا هسته‌های مورد نظر قادر به استفاده از شبکه‌های آموزش دیده برای استنتاج باشند و این در حالی است که Tensor Cores در معماری Volta و تراشه GV100 تنها برای آموزش شبکه‌های عصبی برنامه‌ریزی شده‌اند و قابلیت استفاده از آن‌ها را در برنامه‌های سطح بالا نخواهند داشت. انویدیا ادعا می‌کند که هسته‌های تنسور موجود در تراشه TU102 قابلیت تحویل 114TFLOPS در بخش ممیز شناور FP16، میزان 228TOPS در بخش عملیات INT8 و 455TOPS را در قسمت INT4 خواهند داشت.

بیشتر برنامه‌های انویدیا برای هسته‌های تنسور شامل شبکه‌های عصبی گرافیکی می‌شود اما در کنار آن کمپانی سایر زیرشاخه‌های کاربردی دیگر برای یادگیری عمیق را روی کارت‌های رده دسکتاپ بررسی می‌کند. فرآیند‌های قابل توجهی نظیر دشمنان هوشمند در محیط گیم‌پلی بازی‌ها، تبدیل متن به گفتار، تشخیص صدا، انیمیشن شخصیت‌ها و …… دقیقا بخشی است که در حال حاضر از هوش مصنوعی (AI) در آن استفاده می‌شود.

 

DLSS توسعه یک تکنیک گرافیکی قدیمی با کمک Deep Learning

بی‌گمان هدف انویدیا از به کار گیری Tensor Cores در تراشه‌های بخش مصرف کننده تنها به یک مبحث خلاصه نخواهد شد. Deep Learning Super Sampling یا DLSS یکی از فناوری‌های نوینی است که همراه با معماری Turing توسط انویدیا معرفی شد. این تکنولوژی که فقط برای کارت‌های گرافیک سری GeForce RTX برنامه‌ریزی شده است، پتانسیل باور نکردنی در بهبود کیفیت و عملکرد بازی‌های رایانه‌ای خواهد داشت.

اگر DLSS را به بیان خیلی ساده بخواهیم توضیح دهیم در واقع فناوری جهت کاهش حجم کار سایه‌زنی تراشه گرافیکی و ارائه کیفیت خروجی یکسان است. DLSS در اصل نوعی تکنیک Anti-Aliasing برای صاف کردن لبه‌های ناهموار بافت‌ها و بهبود کیفیت آن داخل بازی‌ها می‌باشد اما با این تفاوت که برای پردازش آن از هوش مصنوعی موجود در هسته‌های تنسور استفاده خواهد شد و دقیقا حیطه‌ای که انویدیا در آن تخصص کافی را دارد.

DLSS اساسا از مهارت هوش مصنوعی در آنالیز تصاویر و یافتن راه حل‌های بهینه شده برای ارائه تصاویری با کیفیت خروجی یکسان با سایر تکنیک‌های پیشرفته AA استفاده می‌کند. از دیرباز فراهم‌سازی تکنیک AA با کیفیت و عملکرد مناسب چالشی بزرگ در پیش روی توسعه‌دهندگان بازی‌های رایانه‌ای بوده است به ویژه آنکه تکنیک‌های AA در سطح‌های بالاتر (به طور مثال MSAA یا SSAA) اکثر تراشه‌های گرافیکی قدرتمند را به زانو در می‌آوردند.

طبق گفته انویدیا فناوری DLSS در مقایسه با تکنیک مرسوم TAA یا Temporal Anti-Aliasing از نظر عملکرد کلی تا دو برابر بهتر عمل خواهد کرد و علاوه بر آن مشکل اساسی این تکنیک (تارشدگی تصویر) را نیز تا حدود زیادی برطرف خواهد کرد. برای استفاده از DLSS در عناوین سه‌بعدی لازم است تا توسعه‌دهنده از رابط برنامه نویسی انویدیا با نام NGX پشتیبانی کند. طبق نظر انویدیا پیاده‌سازی DLSS در بازی‌ها بسیار کار راحتی خواهد بود و هم اکنون نیز لیست بلند بالایی از عناوین سازگار با این تکنولوژی را اعلام کرده است.

اهمیت هوش مصنوعی به اینجا خلاصه نخواهد شد چرا که انویدیا به دنبال ارائه تصاویری با بهترین کیفیت ممکن یا به عبارت دیگر Ground Truth از طریق وضوح فوق‌العاده بالا در قالب راه حلی کم هزینه‌تر می‌باشد. انویدیا به کمک سوپر کامپیوتر پیشرفته خود (DGX SATURNV) در صدد نزدیک کردن تصاویر کیفیت پایین به نمونه‌هایی مشابه با Ground Truth است. این مدل‌ها پس از پردازش در سرورهای انویدیا به واسطه درایور دانلود خواهند شد و توسط Tensor Cores در کارت‌های گرافیک سری GeForce RTX قابل استفاده خواهند بود.

هسته‌های تنسور در بخش Ray Tracing نیز سودمند هستند و به واسطه ویژگی منحصر به فردی تحت عنوان De-noising از پرتوهای کمتری در هر پیکسل استفاده می‌کنند و شکاف ایجاد شده در پیکسل‌ها را به کمک هوش مصنوعی برطرف خواهند کرد. این فرآیند در سرانجام باعث کیفیت خروجی بهتر تصاویر در حالت Ray Tracing خواهد شد.

 

Turing SM مرکز پردازش تراشه‌های انویدیا

ریز معماری Turing در مقایسه با نسل‌های گذشته انویدیا تغییرات بسیار زیادی به خود دیده است که از این موارد می‌توان به بهره‌گیری از حافظه نهان (Cache) یکپارچه، عملیات همزمان قسمت‌های FP و INT، اضافه شدن بخش‌های Ray Tracing مانند RT Cores و هوش مصنوعی در قالب Tensor Cores اشاره کرد.

محاسبات اصلی تراشه های گرافیکی انویدیا در واحدهای پردازشگری تحت عنوان SM که در مرکز GPU قرار گرفته‌اند خلاصه شده است. واحدهای Streaming Multiprocessor یا به اختصار SM نقش اصلی مدیریت، برنامه‌ریزی و اجرا تمام دستورالعمل‌های پردازشی وابسته به نرم افزارها و برنامه‌های مختلف را برعهده دارند.

واحد‌های SM جدید در معماری Turing با نمونه‌های خود در معماری Pascal تفاوت بسیار زیادی دارند اما آنچه که امروز در SMهای Turing مشاهده می‌کنیم چندان بی‌شباهت به برادران خود در معماری Volta نیستند. در حقیقت اگر در سطح بالا به قضیه نگاه کنیم و هسته‌های ویژه Ray Tracing را در نظر نگیریم، واحد‌های SM در معماری Turing و Volta اساسا یکسان هستند.

اگر بخش‌های RT Cores و Tensor Cores را فعلا کنار بگذاریم، جدی‌ترین تغییرات در Turing نسبت به Pascal همان‌هایی هستند که Volta را در مقایسه با Pascal متمایز می‌کنند. یادآوری می‌شود که ویژگی‌های پیشرفته سایه‌زنی Turing نیز در یک رده مشابه با Ray Tracing قرار می‌گیرند که نیاز به توجه صریح توسعه‌دهنده را در آینده خواهند داشت.

      (Turing SM)                            (Pascal SM)

واحد‌های SM در Turing مشابه با Volta از 4 زیرهسته یا بلوک پردازشی مختلف تشکیل شده‌ است که هر کدام از این بلوک‌های پردازشی دارای یک پیچیدگی زمانبندی (Warp Scheduler) و واحد ارسال (Dispatch Unit) می باشند. برخلاف آن در Pascal از طراحی دو قسمتی با دو Dispatch Unit در زیر یک Warp Scheduler در هر زیرهسته استفاده شده بود. همراه این تغییرات پیامدهای مهمی نیز به دنبال آن نمایان خواهند شد که اگر به طور گسترده صحبت کنیم، واحد‌های SM در Turing و Volta توانایی رسیدگی به دستورالعمل دوم غیرمستقل از یک موضوع را برای یک چرخه کامل نخواهند داشت.

این احتمال وجود دارد که Turing همانند Volta دستورالعمل‌ها را در دو دوره اجرا می‌کند اما با برنامه‌ریز‌هایی (Schedulers) که می‌توانند در هر چرخه دستورالعمل مستقل صادر کنند. بنابراین در نهایت Turing قادر خواهد بود تا از طریق این روش سطح دستورالعمل همزمان را به صورت دو طرفه حفظ کند در حالی که در مقایسه با Pascal به میزان دو برابر برنامه‌ریز بیشتری خواهد داشت. علاوه بر آن در معماری Pascal منابع برنامه‌ریزی در هر پیچیدگی (Warp) یا همان WaveFront قرار گرفته‌اند که این قرارداد در Turing و Volta تغییر کرده و به بخش نخ‌ها (Thread) انتقال یافته است.

تراشه‌های Turing نسبت به مدل‌های همرده خود در نسل گذشته افزایش هسته‌های CUDA زیادی نداشته‌اند و در کنار آن نیز فرکانس کاری تراشه نیز بهتر نشده است. با توجه به این خیلی‌ها شاید انتظار افزایش عملکرد زیادی را برای نسل Turing پیش بینی نکرده باشند. اما انویدیا با تغییر معماری و نحوه اجرای دستورالعمل‌ها توسط واحد‌های پردازشگر SM به بازدهی قابل توجهی دست پیدا کرده است. طبق ادعای انویدیا در Turing هر هسته CUDA در فرکانس یکسان در مقایسه با Pascal نزدیک به %50 افزایش عملکرد داشته است.

قطعا یکی از موثرترین عامل‌هایی که در بهبود کارایی واحدهای SM معماری Turing نقش داشته است همان موردی است که به صورت خلاصه در چند پاراگراف قبلی در خصوص آن توضیح داده شد. توانایی اجرای همزمان دستورالعمل‌های محاسباتی FP32 همراه با عملیات‌های INT32، افزایش عملکرد مورد نظر را در فرکانس مشابه توجیه می‌کند. در قسمت FP32 بیشتر حجم کار مرتبط با سایه‌رن‌ها (Shaders) انجام می‌شود و در کنار آن نیز INT32 جهت آدرس‌دهی، مقایسه، گرفتن اطلاعات و …. مورد استفاده قرار می‌گیرد.

در نسل‌های گذشته یک مسیر ریاضی واحد به این معنا بود که دستورالعمل‌های متفاوت توانایی اجرا به صورت همزمان را نداشته‌اند. این عامل باعث بیکار ماندن خط لوله (pipeline) ممیزهای شناور (FP) در زمان درخواست اجرای عملیات‌های غیر ممیز شناور در برنامه سایه‌زنی (Shader) خواهد شد. همانطور که اشاره کردیم انویدیا در معماری Volta با ایجاد خط‌ لوله‌های جدید به دنبال رفع این محدودیت بوده است که مطابق با آن نیز واحد ارسال (Dispatch Unit) دوم را نیز از ساختار SMها خارج کرده است.

اگر به نمودار گرافیکی واحد‌های SM در معماری Pascal و Turing دقت کنید مشاهده خواهید کرد که هر بلوک پردازشی (در مجموع 4 عدد) واحد‌های SM در Pascal دارای یک بخش پیچیدگی زمانبندی (Warp Scheduler) است که از طریق دو Dispatch Unit با 32 هسته CUDA در ارتباط خواهد بود. برخلاف آن در Turing واحدهای SM دارای تعداد هسته CUDA کمتری هستند و به طور دقیق‌تر 16 هسته CUDA با یک برنامه‌ریز و یک واحد ارسال در هر بلوک پردازشی یا زیرهسته مشاهده می‌شوند. انویدیا با کاهش مجموع هسته‌های CUDA در هر واحد SM توانسته است تا تعداد کلی واحدهای SM را در سطح تراشه گرافیکی افزایش دهد.

یکی دیگر از دلایل انعطاف‌پذیری بیشتر معماری Turing نسبت به نسل قبلی Pascal، افزایش دو برابری بخش برنامه‌ریزها می‌باشد. در Pascal برای هر 32 هسته CUDA تنها یک Warp Scheduler جهت انجام دستورالعمل‌های لازم در نظر گرفته شده است که در Turing برای هر 16 هسته CUDA یک واحد برنامه‌ریز گنجانده شده است.

هر SM در معماری Turing دارای 64 پردازشگر CUDA، تعداد 16 عدد واحد بارگیری/ذخیره داده (ST/LD)، 16 تابع ویژه (SFU)، مقدار 256KB Register File، مجموع 96KB حافظه کلی به اشتراک گذاشته (Shared Memory) و L1/Texture Cache، چهار واحد بافت‌نگاری (Tex)، 8 هسته Tensor و در نهایت یک هسته RT می‌باشد.

واحد‌های SM در معماری نسل گذشته به طور مثال تراشه GP102 (کارت گرافیک GTX 1080 Ti) در مقایسه با TU102 (کارت گرافیک GTX 2080 Ti) پیچیده‌تر هستند و بخش‌هایی نظیر واحد بارگیری/ذخیره داده (ST/LD)، تابع ویژه (SFU)، واحد بافت‌نگاری (Tex) و ….. تا دو برابر بیشتر از معماری Turing بوده‌اند.

اما همانطور که اشاره شد انویدیا به کمک کاهش منابع اشتراکی داخل SMها توانسته است تا تعداد این واحدها را در تراشه TU102 تا مقدار 72 عدد افزایش دهد و این در حالی است که تراشه کامل GP102 تنها گنجایش 30 واحد SM را دارد. طراحی مورد نظر در مجموع تعداد پردازشگرهای CUDA و واحدهای بافت‌نگاری را در تراشه گرافیکی پرچمدار Turing تا مقدار 21 درصد نسبت به مدل همرده در نسل قبلی افزایش داده است.

در کنار آن با افزایش واحد‌های SM در سطح تراشه، قسمت‌های مهمی مانند Register File ،Shared Memory و L1/Texture Cache نیز به میزان بیشتری در دسترس پردازشگر گرافیکی برای انجام سریعتر دستورالعمل‌ها قرار خواهد گرفت. گفتنی است که انویدیا مطابق با نسل‌های گذشته مقدار حافظه نهان سطح 2 (L2 Cache) را نیز بهبود داده است و این میزان از 3MB در تراشه GP102 به 6MB در معماری Turing تغییر کرده است. این افزایش حافظه در سطح تراشه همراه با سلسه مراتب سازمان‌بندی آن عامل تاثیرگذار دیگری در بهبود عملکرد کلی معماری Turing می‌باشد.

اگر به عنوان مثال سه حافظه داده متفاوت مانند Texture Cache را برای بافت‌ها، L1 Cache را برای واحدهای بارگیری/ذخیره داده (ST/LD) و در نهایت Shared Memory را برای انجام حجم کار محاسباتی (Compute) در نظر بگیریم، شرایط عملکردی و سلسه مراتب سازمان‌بندی آن‌ها در نسل‌های گذشته متفاوت بوده‌اند.

در معماری قدیمی Kepler هر واحد SM دارای 48KB Texture Cache بعلاوه 64KB Shared Memory/L1 Cache بوده است که پس از آن در سری Maxwell و Pascal حافظه نهان سطح اول (L1 Cache) با Texture Cache ترکیب شده و 96KB از حافظه کلی به اشتراک گذاشته (Shared Memory) به صورت مستقل فعالیت می‌کرده است. اما در Turing هر سه مورد از این حافظه‌ها در یک واحد 96KB با یکدیگر ترکیب شده‌اند تا زمان بیکاری آن‌ها کاهش یابد.

انویدیا از ویژگی جدید با عنوان طراحی کش یکپارچه یا Unified Cache Architecture یاد میکند. ترکیب این سه قسمت در یک بلوک واحد حافظه باعث ساده سازی برنامه‌نویسی و کاهش مقدار کار لازم برای رسیدن به حداکثر توان عملیاتی برنامه‌ها خواهد شد. علاوه بر آن طراحی مورد نظر باعث افزایش پهنای باند و همچنین کاهش زمان تاخیر داده‌ها در L1 cache خواهد شد.

 

Turing TU102 پرچمداری با کارایی خیره‌کننده

تراشه گرافیکی TU102 در حقیقت بزرگترین قطعه‌ای از سیلیکون غیر ذخیره سازی می‌باشد که تاکنون برای بازار بخش مصرف کننده یا گیمینگ ساخته شده است. این تراشه مانند سایر خانواده Turing بر پایه فناوری ساخت 12nm شرکت TSMC به بهره‌برداری رسیده است و انویدیا برای تغذیه آن از تعداد قابل توجه 18.6 بیلیون ترانزیستور استفاده کرده است که با این وجود توان طراحی حرارتی (TDP) این تراشه غول پیکر تنها 250w گزارش شده است. ابعاد کلی TU102 برابر با 754 میلیمتر مربع می‌باشد که در مقایسه با تراشه پرچمدار نسل Pascal یعنی GP102 نزدیک به %60 بزرگتر شده است و جالب‌تر اینکه تعداد ترانزیستورها نیز تا رفم %55 افزایش یافته است.

TU102 در مجموع از 6 خوشه پردازش گرافیکی (GPC) تشکیل شده است که هر کدام از این خوشه‌ها میزبان 12 واحد SM یا Streaming Multiprocessors هستند و در مجموع تعداد 72 واحد پردازشگر SM را برای TU102 فراهم می‌کنند. با اضافه شدن قسمت‌هایی نظیر Tensor Cores و RT Cores تنها برای 64 هسته پردازشگر CUDA در واحد‌های SM فضا باقی خواهد ماند. به عبارت دیگر هر خوشه پردازش گرافیکی دارای 768 هسته CUDA خواهد بود که مجموعا تعداد 4608 عدد را در دسترس تراشه گرافیکی قرار می‌دهد.

برخلاف تراشه GV100 در کارت گرافیک TITAN V، یک هسته‌ تنسور در معماری Turing به طور تقریبی هشت برابر پردازشگرهای CUDA سطح تراشه را اشغال می‌کنند. هر واحد SM دارای 8 هسته تنسور است که مطابق با آن در هر GPC تعداد آن به 96 عدد و در آخر نیز 576 عدد در سرتاسر تراشه گرافیکی خواهد رسید. در سمت دیگر قضیه هسته‌های شتاب‌دهنده Ray Tracing یا RT Cores، بزرگترین جزء غیرقابل تقسیم هر واحد SM را تشکیل می‌دهند که یک عدد از آن‌ها در هر واحد SM گنجانده شده‌اند. این به معنای وجود 12 عدد RT Core در هر GPC و همچنین 72 عدد در کل سطح تراشه خواهد بود. در قسمت حافظه نیز وجود رابط 384 بیتی امکان استفاده از 24 گیگابایت حافظه GDDR6 را میسر ساخته است.

کارت گرافیک GeForce RTX 2080 Ti مشابه با مدل همرده خود در نسل قبلی (GTX 1080 Ti) از تمام پتانسیل تراشه TU102 استفاده نمی‌کند و فقط 68 تا از 72 عدد واحدهای SM در کارت گرافیک RTX 2080 Ti فعال هستند. در همین راستا منابع پردازشی RTX 2080 Ti به 4352 هسته CUDA، میزان 544 هسته تنسور و 68 هسته‌ شتاب‌دهنده Ray Tracing کاهش یافته است. علاوه بر آن RTX 2080 Ti میزبان 11 گیگابایت حافظه GDDR6 با رابط 352 بیتی خواهد بود.

 

Turing TU104 ادامه راه برادران گذشته

TU104 به عنوان تراشه رده دوم معماری Turing مسیر پیشینیان خود در نسل‌های گذشته مانند تراشه GP104 در کارت گرافیک GTX 1080 و یا GK104 در GTX 680 را ادامه خواهد داد. این تراشه در قلب کارت گرافیک GeForce RTX 2080 به عنوان پردازشگر مرکزی قرار خواهد گرفت و نکته قابل توجه در مورد تراشه گرافیکی TU104 این مسئله است که برخلاف اجداد خود با توان کامل پردازشی ظاهر نشده است و شایعه وجود کارت گرافیک +GeForce RTX 2080 را قوت بخشیده است. TU104 همانند برادر بزرگتر خود دارای 6 خوشه پردازش گرافیکی است که هر کدام از این خوشه‌ها به جای 12 واحد SM در تراشه TU102، تنها دارای 8 عدد SM هستند.

یک تراشه کامل TU104 به طور کلی گنجایش 3072 هسته CUDA، تعداد 384 Tensor Cores و 48 RT cores را دارد اما همانطور که گفته شد دو واحد SM از تعداد کلی غیرفعال شده‌اند که منابع پردازشی کارت گرافیک GeForce RTX 2080 برای بخش‌های Tensor ،CUDA و RT به ترتیب برابر با 2944، 368 و 46 خواهد بود. خوشبختانه بخش حافظه دچار تغییری نشده است و 8 گیگابایت حافظه GDDR6 با رابط 256 بیتی حضور دارد.

 

Turing TU106 میان‌رده‌ای با عملکرد بالارده‌ها!

TU106 شاید جالب‌ترین تراشه گرافیکی نسل Turing باشد چرا که این تراشه میزبان کارت گرافیک GeForce RTX 2070 و نه GeForce RTX 2060 است و انویدیا در طراحی کارت گرافیک مورد نظر نسبت به نسل‌های گذشته متفاوت‌تر عمل کرده است. در نسل‌های پیشین کارت‌های گرافیکی مانند GTX 970 و GTX 1070 براساس جانشین‌های تراشه TU104 همراه با تعدادی از واحد‌های SM غیرفعال شده طراحی شده‌اند و این در حالی است که انویدیا برای کارت گرافیک GeForce RTX 2070 تصمیم گرفته است تا از تراشه‌ای کوچکتر از TU104 استفاده کند.

تراشه TU106 به طور دقیق جانشینی برای GP106 در نظر گرفته نمی‌شود. ساختار این تراشه گرافیکی به گونه‌ای است که انگار یک تراشه پرچمدار TU102 به دو بخش مساوی تقسیم شده باشد. در همین راستا TU106 دارای 3 خوشه پردازش گرافیکی با مجموع 36 واحد SM است که تعداد 768 هسته CUDA سهم هر یک از این خوشه‌ها خواهد شد و در حالت کلی نیز 2304 هسته CUDA در کل تراشه فعال خواهند بود. در قسمت Tensor Cores و RT Cores نیز به ترتیب 288 و 36 واحد به انجام عملیات‌های مرتبط با هوش مصنوعی و Ray Tracing کمک خواهند کرد.

 

Mesh Shaders روشی برای نمایش بیشتر اشیاء

پیشرفت‌های معماری به تغییراتی تقسیم می‌شوند که یا به طور مستقیم بازی‌های امروز را تحت تاثیر قرار می‌دهند و یا اینکه شامل برخی از ویژگی‌ها هستند که نیازمند پشتیبانی توسط عناوین آینده خواهند بود. بی‌تردید محصولات جدید سری GeForce RTX با توجه به عملکرد آن‌ها در بازی‌های امروز قضاوت خواهند شد چرا که عناوین امروزی چیزی هستند که ما می توانیم آن‌ها را به عنوان یک شاخص تعیین‌کننده در نظر بگیریم.

اگر چه کارت‌های گرافیک GeForce RTX برای آینده طراحی شده‌اند و همراه خود ویژگی‌های متنوعی مانند Real Time Ray Tracing دارند اما در حقیقت پیشنهاد خرید یک قطعه کامپیوتر صرفا به خاطر اینکه در آینده خوب ظاهر خواهد شد، اشتباه است. فناوری که در ادامه به آن اشاره خواهیم کرد نیز دقیقا مانند سایر ویژگی‌ها در زمان پیش رو کاربرد خواهد داشت.

Mesh Shading یکی دیگر از فناوری‌های پیشرفته معماری Turing است که نقش بسزایی در توسعه جزئیات گرافیکی بافت‌ها خواهد داشت. همراه با حجم کار ساده سایه‌زنی هر جسم و اشیاء برای رندر شدن نیاز به یک Draw Call از پردازنده اصلی سیستم خواهند داشت. این Draw Call ها به خاطر محدودیت‌های مدل سایه‌زن‌ (Shader) در هر Thread یا نخ انجام می‌شوند. در نتیجه سرعت و الگوریتم هایی که می توانند مورد استفاده قرار گیرند، محدود خواهد شد و فقط تعداد زیادی کار برای استخراج به صورت موازی وجود خواهد داشت.

یک Draw Call در حقیقت شامل تمام اطلاعاتی است که به تراشه گرافیکی در مورد بافت‌ها (Textures)، سایه‌زن‌ها (Shaders)، بافرها (Buffers)، اشیاء در حال رندر و …… گفته می‌شود. این بخش در رده کاری پردازنده اصلی یا همان CPU قرار می‌گیرد و منابع لازم برای تجسم محیط و کشیدن اجسام را به کارت گرافیک ارسال می‌کند.

اما Mesh Shading از طریق کاهش Draw Callهای مورد نیاز برای اشیاء در صحنه، عملکرد کلی را بهبود خواهد داد و به طور منعطف چند مرحله از خط لوله‌های مرسوم گرافیک را با یکدیگر ترکیب می‌کند. با Mesh Shading انویدیا یک پروسه Task Shader را نیز معرفی کرده است که وظیفه ترکیب شیدرهای رأس (Vertex) و قشر (Hull) را برعهده دارد. Mesh Shaderها نیز سایه‌زن‌های دامنه‌‌ای(Domain) و هندسه‌ای (Geometry) را با یکدیگر ادغام می‌کند.

با استفاده از یک Mesh Shader، توسعه‌دهندگان بازی‌ها قادر خواهند بود تا بار محاسباتی سطح جزئیات (LOD) محیط و اشیاء گلچین شده را در Task Shader کاهش دهند و به دنبال آن نیز مراحل Vertex Shader و Hull Shader کنار می‌روند. به دلیل اینکه یک Task Shader جامع‌تر از یک Vertex Shader است، توانایی این را دارد که یک لیست از اشیاء را از پردازنده درخواست کند و پس از اجرای آن به کمک یک برنامه Compute، مشخص خواهد کرد که آن اشیاء در چه مکانی قرار گیرند. همچنین با توجه به سطح جزئیات محیط تعیین می‌کند که چه نوع اشیایی با چه نسخه‌ای مورد استفاده واقع شوند و این مسئله که چه اشیایی قبل از ورود به خط لوله‌ گرافیکی باید برگشت داده شوند.

 

Variable Rate Shading انجام بهینه عملیات سایه‌زنی

Variable Rate Shading تکنولوژی دیگر معرفی شده برای پردازشگرهای Turing است که هدف اصلی آن بهینه‌سازی کیفیت تصاویر و عملکرد کلی به واسطه توزیع صحیح حجم کاری و زمان پردازش تراشه گرافیکی مطابق با اهمیت اشیاء وارد شده به یک صحنه خواهد بود. اساسا این ویژگی به توسعه‌دهندگان اجازه خواهد داد تا حجم کاری عملیات سایه‌زنی و سطح جزئیات را در محیط‌های با تاثیر اندک بر تجربه کلی بازی، کاهش دهند.

به بیان ساده‌تر Variable Rate Shading یا به طور مختصر VRS با کاستن کار اضافی تراشه‌ گرافیکی، کارایی و نرخ فریم رندر شده را افزایش خواهد داد. چندین نوع از الگوریتم های مبتنی بر VRS قبلا شناسایی شده‌اند که از این موارد براساس نوع عملیات سایه‌زنی می‌توان به Content Adaptive Shading بر پایه سطح محتوای جزئیات، Motion Adaptive Shading متناسب با نرخ حرکت محتوا و Foveated Rendering برای برنامه‌های واقعیت مجازی (VR)، وضوح لنز و موقعیت چشم اشاره کرد.

 

GDDR6 نسل نوینی از حافظه‌های گرافیکی

پهنای باند حافظه از زمان ساخته شدن اولین کارت‌های گرافیک همیشه به عنوان مشکل و عامل محدود‌کننده‌ای حضور داشته‌اند و این چالش از آن زمان تاکنون دشوارتر شده است. تراشه‌های گرافیکی به سرعت در حال پیشرفت هستند اما برخلاف آن حافظه‌های DRAM از این قاعده مستثنی هستند و سرعت رشد چندانی نداشته‌اند. طبق تحقیقاتی که در هر نسل از کارت‌های گرافیک انجام شده است، به نظر می‌رسد که پهنای باند حافظه‌ها در مقایسه با پتانسیل پردازشی تراشه‌های گرافیکی روندی نزولی دارند.

بنابراین برای حفظ عملکرد کارت‌های گرافیک، شرکت‌های طراح پردازشگر‌های گرافیکی و صنعت تولید حافظه‌ها باید به دنبال راه‌های جدیدی جهت بهبود پهنای باند برای تکنولوژی‌های آینده ساخت حافظه باشند. خوشبختانه انویدیا طی سال‌های گذشته به سادگی از کنار این بخش عبور نکرده است و پیشرفت در بخش معماری حافظه‌های DRAM از نقاط قوت کمپانی محسوب ‌می‌شود.

معماری Turing تغییرات زیادی به خود دیده است و محصولاتی نظیر RTX 2080 و RTX 2080 Ti با تمرکز خود در قسمت‌هایی نظیر Ray Tracing و AI به پهنای باند نسبتا قابل توجهی نیاز خواهند داشت. در نسل‌های گذشته برای تغذیه پهنای باند مورد نیاز تراشه‌های گرافیکی، کمپانی‌ها مسیر تقریبا ثابتی را طی می‌کردند و آن هم چیزی جزء استفاده از حافظه‌های مرسوم GDDR5 نبوده است.

تراشه‌های گرافیکی با ورود به دوره 14nm و 16nm شاهد دگرگونی‌‌های جالبی در خصوص حافظه‌ها بوده‌اند. GDDR5 که نزدیک به یک دهه همیشه در مشخصات حافظه کارت‌های گرافیک قابل مشاهده بود، اینک باید جای خود را به محصولاتی ارتقاء یافته واگذار می‌کرد. JEDEC سازمان استاندارد‌سازی صنعت نیمه‌ هادی‌ها به عنوان مسئول تعیین استانداردهای مشترک حافظه‌ها، مسیر دگرگونی حافظه‌های کارت گرافیک را در دو جهت برنامه‌ریزی می‌کند.

هدف از مسیر اول توسعه یک تکنولوژی جانشین برای GDDR5 بوده است که در نهایت جای خود را به GDDR5X می‌دهد. اما مسیر دوم قدری افراطی‌تر انتخاب شده و هدف از آن نزدیک شدن به فناوری‌های فوق‌العاده گسترده در بخش ورودی/خروجی داده‌ها بوده است که در نهایت به حافظه‌های High Bandwidth Memory یا HBM خلاصه شده است.

انویدیا در طی گذر زمان از هر دو تکنولوژی حافظه مورد نظر بهره برده است. از GDDR5X برای اولین بار در کارت گرافیک GTX 1080 و از حافظه‌های HBM نیز در محصولات رده حرفه‌ای Volta استفاده کرده است. حافظه‌های HBM در نوع خود بسیار قدرتمند و سریع هستند اما چالش‌های به کارگیری این حافظه‌ها در طراحی کارت‌های گرافیک هزینه بیشتری را به دوش کمپانی‌های سازنده تراشه‌های گرافیکی اضافه خواهد کرد.

حافظه‌های HBM برای ارتباط صحیح با تراشه گرافیکی نیاز به سطح ویژه‌ای از سیلیکون با نام Interposer دارند که طراحی این بخش به هزینه تمام شده کارت گرافیک رقم زیادی را خواهد افزود. به همین دلیل انویدیا محصولات HBM و HBM2 یا نسل دوم این حافظه‌ها را تنها در محصولات رده حرفه‌ای و تجاری به کار گرفته است.

GDDR5X با وجود موفقیت‌هایی که در توسعه پهنای باند حافظه‌های GDDR داشت هیچگاه به تولید و استفاده انبوه نرسید و فقط در محصولات رده بالای سری گیمینگ Pascal مورد استفاده قرار گرفت. این نوع حافظه‌ که تنها با همکاری شرکت انویدیا با میکرون به بهره‌برداری رسیده بود، عمر چندانی نکرد و خیلی زود جای خود را به برادر بزرگتر خود یعنی GDDR6 داد.

در حالی که تفاوت بین GDDR5X و GDDR6 به اندازه تغییر GDDR5 تا GDDR5X بزرگ نیست اما هنوز هم برخی از موارد قابل توجه وجود دارد. برای شروع می‌توان گفت که فرکانس کاری بین 10 تا 16Gbps افزایش یافته است و از موارد مهم دیگر GDDR6 می‌توان به تقسیم حافظه در دو کانال در هر چیپ مموری اشاره کرد که به طور مثال اجازه خواهد داد تا یک عدد چیپ 32 بیتی دو کانال 16 بیتی مستقل را تولید کند. تقسیم حافظه در دو کانال به نوبه خود در معیار‌های مرتبط با عملکرد و انرژی مصرفی در سناریوهای بسیار موازی (اصل کار تراشه‌های گرافیکی) تاثیرگذار خواهد بود.

از نظر ولتاژ کاری، تولیدات GDDR6 می‌توانند در ولتاژ 1.35 یا 1.25 ولت فعالیت کنند و این در حالی است که حافظه‌های GDDR5X تنها قادر به عملکرد در ولتاژ 1.35v هستند. این بدان معنی است که استفاده از GDDR6 گزینه‌های زیادی را برای راه‌حل‌های گرما و مصرف بهینه انرژی فراهم می‌کند.

و در آخر همانطور که اشاره شد برخلاف GDDR5X، حافظه‌های GDDR6 در راستای کار تمام غول‌های فعال در بخش ساخت و توسعه حافظه‌های DRAM نظیر Hynix ،Micron و Samsung قرار خواهد گرفت و در آینده‌ای نزدیک مشابه با GDDR5 در محصولات زیادی از دو کمپانی AMD و NVIDIA به کار گرفته می‌شود.

Lossless Color Compression شیوه‌ای مؤثر برای کاهش پهنای باند

طی چند نسل گذشته تراشه‌های گرافیکی انویدیا دارای یک تکنیک پیشرفته فشرده‌سازی حافظه بوده‌اند که نیاز به پهنای باند بیشتر حافظه را کاهش داده است. فشرده‌سازی رنگ به معنای داده کمتر برای نوشتن و انتقال آن از حافظه کارت گرافیک به L2 Cache است. این مسئله ترافیک را کاهش می‌دهد و انتقال داده‌ها بین بخش‌های مرتبط کم خواهد شد که بافت بازی و فریم بافر حافظه در واقع جزء همین قسمت‌ها می‌باشند.

انویدیا همراه با معماری Turing نسل پنجم تکنیک فشرده‌سازی رنگ را توسعه داده است که در مقایسه با معماری نسل گذشته Pascal در نرخ فشرده‌سازی تا %25 بهتر عمل خواهد کرد. شاید بد نباشد که بدانید این مقدار در زمان مهاجرت از معماری Maxwell به Pascal تا %20 بهبود یافته بود.

انویدیا ادعا کرده است پهنای باند مؤثر حافظه را تا %50 در کارت گرافیک RTX 2080 نسبت به GTX 1080 Ti بهبود داده است. به طور تقریبی %27 از این مقدار افزایش پهنای باند به دلیل استفاده از حافظ‌های GDDR6 می‌باشد که %23 باقی مانده نیز از طریق روش جدید فشرده‌سازی به دست آمده است.

 

NVIDIA NVLink ارتباط بهتر کارت‌های گرافیک یا یکدیگر

انویدیا با معماری Turing رابط قدیمی SLI را به کلی کنار گذاشته است و دیگر خبری از یک پروتکل ارتباطی قدیمی با محدودیت‌هایی نظیر اتصال نقطه به نقطه نخواهد بود. NVIDIA NVLink به عنوان نسل جدید رابط میان کارت‌های گرافیکی تاکنون تنها در محصولات سری Quadro Tesla و همچنین کارت گرافیک TITAN V مورد استفاده قرار گرفته است. طراحی اصلی این فناوری تا حدودی مشابه با یک پروتکل ارتباطی در PCI-Express می‌باشد و به دلیل پشتیبانی از شبکه توری ارتباط میان دستگاه‌ها را آسان خواهد کرد.

TU102 دارای دو Link (پیوند) x8 NVLink 2.0 است که این مقدار در تراشه TU104 به یک عدد کاهش یافته است تا به تمایز میان دو محصول RTX 2080 Ti و RTX 2080 کمک کند. خاطر نشان می‌سازد که تراشه TU106 واقع در کارت گرافیک RTX 2070 به خاطر عدم پشتیبانی از SLI، فافد پروتکل NVLink خواهد بود.

در مقایسه با نسل‌های قدیم رابط SLI، پهنای باند در رابط جدید NVLink به طرز چشمگیری افزایش یافته است. هر x8 link پهنای باند دوطرفه را تا 50GB/s تسهیل می‌کند. مطابق با آن کارت گرافیک RTX 2080 Ti از 100 گیگابایت بر ثانیه پهنای باند دوطرفه بهره خواهد برد که این مقدار در RTX 2080 تا نصف کاهش خواهد یافت.

به دلیل پیاده‌سازی ضعیف SLI در عناوین سه بعدی از دیرباز این پروتکل چندان مورد پسند علاقه‌مندان بازی‌های رایانه‌ای قرار نگرفته است و حتی امروزه که انویدیا موفق شده است تا محدودیت‌های زیادی از نسخه قدیمی SLI را برطرف کند اما هنوز اکثر کاربران برای سیستم‌های کامپیوتری خود استفاده از یک عدد کارت گرافیک را ترجیح می‌دهند.

اگر واقع‌بینانه نیز به قضیه نگاه کنیم، تراشه‌های گرافیکی امروزی به اندازه‌ای قدرتمند هستند که حتی از پس سنگین‌ترین بازی‌ها در وضوح تصویر 4K بر می‌آیند در نتیجه استفاده از کارت‌های گرافیک به صورت چندگانه به عنوان یک نیاز اصلی در نظر گرفته نمی‌شود. با تمام این تفاسیر اگر هنوز تمایلی به استفاده از کارت‌های گرافیک Turing در حالت SLI دارید باید مبلغ 79 دلار ناقابل را برای خرید پل‌های ویژه NVLink هزینه کنید.

 

NVIDIA Scanner هوشمند‌تر اورکلاک کنید!

تقریبا تا چند سال گذشته کمتر کسی در مورد واژه اورکلاک (OverClock) اطلاع داشت و بحث های مربوط به این بخش به انجمن‌های حرفه‌ای قدیمی فعال در زمینه سخت افزار کامپیوتر خلاصه شده بود. مبحث اورکلاک جزء آن دسته از بخش‌هایی هست که خیلی زود به جایگاه مهمی دست یافت به طوریکه امروزه اهمیت اورکلاک را به وضوح در اکثر تولیدات محصولات سخت افزاری کامپیوتر شاهد هستیم.

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

اورکلاک کردن شاید در ظاهر کار ساده‌ای به نظر آید اما افراد با تجربه به خوبی اطلاع دارند که فرآیند اورکلاک می‌تواند گاهی اوقات به چرخه‌ای خسته‌کننده از تکرار کارهایی نظیر افزایش و کاهش فرکانس، تغییر ولتاژ، گرفتن تست پایداری و ….. جهت پیدا کردن میزان فرکانس مناسب برای یک قطعه سخت افزاری تبدیل شود.

به همین خاطر اکثر کمپانی‌ها همواره به دنبال ارائه راه‌حل‌هایی آسان برای کاربران در بخش سخت افزار و به ویژه نرم افزار جهت رسیدن به نتیجه‌ای بهتر در فرآیند اورکلاک بوده‌اند. انویدیا نیز با وجود اعمال برخی از محدودیت‌های ولتاژی در تراشه‌ها به نوبه خود اقداماتی را در زمینه بهبود اورکلاک انجام داده است. NVIDIA Scanner دقیقا ابزاری است که در وقت خیلی از کاربران مشتاق اورکلاک صرفه‌جویی می‌کند و چرخه تکراری این فرآیند را تا حدودی کاهش خواهد داد.

انویدیا از طریق یک رابط برنامه‌نویسی در صدد حذف مرحله آزمایش و خطا در فرآیند اورکلاک است تا انجام اورکلاک تنها با یک کلیک امکان‌پذیر شود. این رابط برنامه‌نویسی در آینده نزدیک به جزئی از برنامه‌های اورکلاک شرکای تجاری انویدیا مانند برنامه MSI AfterBurner و EVGA Precision X1 اضافه خواهد شد.

NVIDIA Scanner یک رویه مبتنی بر ریاضی را در فرایند خود اجرا می‌کند و پایداری کارت گرافیک را بدون دخالت کاربر ارزیابی خواهد کرد. به بیان ساده‌تر دیگر نیاز نخواهد بود تا اورکلاکر چرخه فرکانسی/ولتاژی را در یک زمان با برنامه‌های مختلف جهت تشخیص پایداری مورد آزمایش قرار دهد.

 

پست های مرتبط

دیدگاه خود را بنویسید