معماری تورینگ انویدیا (NVIDIA Turing Architecture)
تورینگ به انگلیسی: (Turing) نام رمز یک ریزمعماری به انگلیسی: (microarchitecture) واحد پردازش گرافیکی (GPU) است که توسط Nvidia توسعه یافته است. این نام از نام ریاضیدان و دانشمند برجسته کامپیوتر آلن تورینگ گرفته شده است. این معماری برای اولین بار در آگوست ۲۰۱۸ در SIGGRAPH 2018 در کارتهای Quadro RTX مبتنی بر ایستگاه کاری و یک هفته بعد در Gamescom در کارتهای گرافیکی سری GeForce RTX 20 معرفی شد. معماری تورینگ با تکیه بر کارهای مقدماتی مدل قبلی خود که انحصاری HPC بود، اولین محصولات مصرفی را معرفی می کند که قادر به ردیابی اشعه در زمان واقعی هستند، که هدف دیرینه صنعت گرافیک کامپیوتری است. عناصر کلیدی شامل پردازنده های هوش مصنوعی اختصاصی (“هسته های Tensor”) و پردازنده های اختصاصی ردیابی اشعه (“هسته های RT”) هستند. تورینگ از DXR، OptiX و Vulkan برای دسترسی به ردیابی پرتو استفاده می کند. در فوریه ۲۰۱۹، انویدیا پردازندههای گرافیکی سری GeForce 16 را منتشر کرد که از طراحی جدید تورینگ استفاده میکند اما هستههای RT و Tensor را ندارد.
معماری تورینگ انویدیا (NVIDIA Turing Architecture) با استفاده از فرآیند ساخت نیمه هادی FinFET 12 نانومتری TSMC تولید می شود. پردازنده گرافیکی پیشرفته TU102 شامل ۱۸.۶ میلیارد ترانزیستور است که با استفاده از این فرآیند ساخته شده اند. تورینگ همچنین از حافظه GDDR6 سامسونگ الکترونیکس و قبلاً Micron Technology استفاده می کند.
جزئیات معماری تورینگ:
ریزمعماری تورینگ انواع مختلفی از هستههای تخصصی پردازنده را ترکیب میکند و اجرای ردیابی پرتوهای بلادرنگ محدود را امکانپذیر میسازد. این امر با استفاده از هستههای جدید RT (ردیابی پرتو) تسریع میشود که برای پردازش درختهای چهارگانه و سلسلهمراتب کروی و سرعت بخشیدن به تستهای برخورد با مثلثهای منفرد طراحی شدهاند.
ویژگی های تورینگ:
- هسته های CUDA (SM، چند پردازنده جریانی)
- قابلیت محاسبه ۷.۵
- شیدرهای شطرنجی سنتی و محاسبه
- اجرای همزمان عملیات اعداد صحیح و ممیز شناور (به ارث رسیده از Volta)
- هسته های ردیابی پرتو (RT).
- شتاب سلسله مراتب حجم محدود
- سایه ها، انسداد محیط، نور، بازتاب ها
- هسته های تانسور (AI)
- هوش مصنوعی
- عملیات ماتریس بزرگ
- نمونه گیری فوق العاده یادگیری عمیق (DLSS)
- کنترلر حافظه با پشتیبانی از GDDR6/HBM2
- DisplayPort 1.4a با فشرده سازی جریان نمایش (DSC) 1.2
- ویژگی PureVideo
- رمزگشایی ویدیوی سخت افزاری J را تنظیم کنید
- GPU Boost 4
- NVLink Bridge با VRAM که حافظه را از چندین کارت جمع می کند
- VirtualLink VR
- رمزگذاری سخت افزاری NVENC
حافظه GDDR6 توسط Samsung Electronics برای سری Quadro RTX تولید شده است. سری RTX 20 ابتدا با تراشههای حافظه Micron عرضه شد، قبل از اینکه تا نوامبر ۲۰۱۸ به تراشههای سامسونگ روی آورد.
شطرنجی سازی(Rasterization)
انویدیا افزایش عملکرد شطرنجی (CUDA) را برای عناوین موجود تقریباً ۳۰ تا ۵۰ درصد نسبت به نسل قبلی گزارش کرده است.
شطرنجی سازی را وارد کنید: بزرگترین هک جهان
هزینه محاسباتی بالای ردیابی پرتو به این معنی است که برای گرافیک بلادرنگ قابل دوام نبوده است. در عوض، از همان روزهای اول، صنعت محاسبات به شطرنجی سازی(rasterization) روی آورده است.
اگر ردیابی پرتو یک رویکرد مبتنی بر پیکسل باشد، شطرنجیسازی را رویکرد چندضلعی محور برای رندر سهبعدی مینامند. اما فراتر از آن، شطرنجیسازی یک هک است – یک هک باشکوه برای دور زدن این واقعیت که رایانهها به اندازه کافی سریع نیستند (یا حداقل، نبودند) تا بتوانند ردیابی پرتو در زمان واقعی را انجام دهند. شطرنجی سازی تعدادی میانبر انجام می دهد و چندین فرض را در مورد نحوه کار نور، اشیاء و مواد به منظور کاهش حجم کار محاسباتی برای ارائه یک صحنه به چیزی که می تواند در زمان واقعی انجام شود، ایجاد می کند.
شطرنجی سازی در ابتدایی ترین سطح خود، فرآیند گرفتن چند ضلعی ها در یک صحنه و نگاشت آنها به یک صفحه دو بعدی، شبکه پیکسلی است. این بدان معناست که چند ضلعی ها مرتب شده و آزمایش می شوند تا ببینند کدام چند ضلعی ها واقعاً قابل مشاهده هستند و سپس در مراحل مختلف، این چند ضلعی ها بافت می شوند، سایه می زنند و در موارد دیگر پردازش می شوند تا رنگ نهایی آنها مشخص شود. و مسلماً این یک سادهسازی فاحش فرآیندی است که قبلاً یک سادهسازی بود – من تمام ریاضیاتی را که برای تبدیل اشیاء سهبعدی به نمایش دوبعدی انجام میشود نادیده میگیرم – اما در یک پیچ و تاب سرگرمکننده از سرنوشت، هک که شطرنجی است در آن وجود دارد. برخی از راه ها پیچیده تر از فرآیند طبیعی ردیابی پرتو است.
نکته کلیدی در شطرنجی سازی(rasterization)، نحوه عملکرد آن نیست، بلکه این است که از اشعه استفاده نمی کند و بنابراین ارزان است. خیلی ارزان. و بهتر از آن، می توان آن را به صورت موازی انجام داد. در نتیجه GPUها به عنوان ماشینهای ضرب ماتریس باورنکردنی به وجود آمدهاند و قادرند صدها میلیون چند ضلعی را در هر ثانیه آزمایش کنند و میلیاردها پیکسل را رنگآمیزی کنند. به استثنای چند مورد، شطرنجی سازی خوب و منظم است و به تکنیک های محاسباتی مانند Single Instruction Multiple Data/Thread (SIMD/SIMT) اجازه می دهد تا پردازش های لازم را با کارایی باورنکردنی انجام دهند.
نکته جالب شطرنجی سازی(rasterization) این است که چون یک هک است – هر چند با شکوه باشد – در نهایت محدودیت هایی وجود دارد که چگونه می تواند نحوه عملکرد بینایی و نور در دنیای واقعی را جعل کند. در گذشته طرحریزی چند ضلعی و بافتبندی اولیه، سایهزنی پیکسل جایی است که این روزها بیشتر کار انجام میشود تا در واقع مشخص شود یک پیکسل باید چه رنگی باشد. در سایهزنهای پیکسلی است که اشکال مختلف نورپردازی (سایهها، انعکاس، شکست و غیره) شبیهسازی میشوند، جایی که اثرات اعوجاج محاسبه میشوند و غیره. درجه بالا، حداقل نه به شیوه ای اجرایی.
این محدودیتها است که منجر به اشکالاتی که به خوبی در شطرنجیسازی(rasterization) منتشر شده است. نور غیرطبیعی، انعکاس های محدود، سایه های با وضوح پایین و… حالا از نظر مفهومی، حل این مسائل با شطرنجی سازی به هیچ وجه غیر ممکن نیست. با این حال، هزینه محاسباتی انجام این کار بسیار بالا است، زیرا ماهیت شطرنجیسازی به گونهای است که به سختی میتوان چنین روشهایی را با دقت بالا در مورد آنچه که در هسته آن هک است، پیچید. منظور از شطرنجی سازی سریع و کثیف است، نه دقیق.
ردیابی اشعه(Ray-tracing)
ردیابی اشعه ای که توسط هسته های RT انجام می شود می تواند برای تولید انعکاس، انکسار و سایه ها استفاده شود و جایگزین تکنیک های رستری سنتی مانند نقشه های مکعبی و نقشه های عمقی شود. با این حال، بهجای جایگزینی کامل شطرنجیسازی، اطلاعات جمعآوریشده از ردیابی پرتو میتواند برای تقویت سایه با اطلاعاتی که بسیار واقعیتر از عکس هستند، بهویژه در مورد عملکرد خارج از دوربین استفاده شود. انویدیا گفت که عملکرد ردیابی پرتو نسبت به معماری مصرف کننده قبلی، پاسکال، حدود ۸ برابر افزایش یافته است.
از آنجایی که یکی از دو فناوری پایه معماری تورینگ، هستههای ردیابی پرتوی RT NVIDIA است، قبل از اینکه بیش از حد به معماری تورینگ بپردازیم، شاید بهتر است با بحث در مورد اینکه ردیابی پرتو چیست شروع کنیم. و به همان اندازه مهم است که چرا NVIDIA سیلیکون زیادی روی آن شرط بندی می کند. به طور خلاصه، ردیابی پرتو یک فرآیند رندر است که نحوه رفتار نور در دنیای واقعی را شبیهسازی میکند. از یک سطح بنیادی (اما نه کاملاً کوانتومی) می توان نور را مانند یک پرتو در نظر گرفت. این به این دلیل است که فوتون ها، خارج از تأثیرات دیگر، در یک خط مستقیم حرکت می کنند تا زمانی که به چیزی برخورد کنند. در آن نقطه برهمکنش های مختلفی (بازتاب، شکست و غیره) بین فوتون ها و جسم رخ می دهد.
نکته مهم با ردیابی پرتو(ray tracing) این است که گران است. فوق العاده گران است. مقیاس مسئله به این معنی است که اگر رویکرد سادهای داشته باشید و سعی کنید تمام پرتوهای فوتونهایی را که از هر منبع نوری در یک صحنه ساطع میشوند محاسبه کنید، تعداد غیرقابل شمارش و تقریباً نامتناهی از پرتوهایی را که به اطراف میتابند ردیابی خواهید کرد. یک صحنه. اساساً تمام برهمکنشهای فیزیکی نور در یک فضای محدود را مدلسازی میکند، و این تعداد باورنکردنی از فعل و انفعالات است.
در نتیجه چندین بهینه سازی برای ردیابی پرتو(ray tracing) در طول سال ها ایجاد شده است. شاید مهمترین آنها به نوعی چرخاندن مفهوم ساده لوحانه روی سر آن باشد و به جای ردیابی پرتوهایی که از منابع نور شروع می شوند، در عوض به عقب برگردید. شما پرتوهایی را که از نقطه ناظر شروع میشوند ردیابی میکنید – اساساً آنها را به یک صحنه پرتاب میکنید – به طوری که در نهایت فقط پرتوهای نوری را که واقعاً به دوربین میرسند محاسبه میکنید.
چنین ردیابی پرتوی(ray tracing) “معکوس” فضای مشکل را به طور قابل توجهی کاهش می دهد. همچنین به این معنی است که از نظر مفهومی، ردیابی پرتو را می توان به عنوان یک روش مبتنی بر پیکسل در نظر گرفت. هدف این است که بفهمیم هر پیکسل چه چیزی باید باشد.
با این حال، حتی با این بهینه سازی و موارد دیگر، ردیابی پرتو(ray tracing) هنوز بسیار گران است. این تکنیکها ردیابی اشعه را به اندازهای ارزان میکنند که میتوان آن را در یک زمان معقول در رایانه انجام داد، که در آن «معقول» در چند دقیقه یا ساعت اندازهگیری میشود، بسته به صحنه و اینکه میخواهید فریم رندر شده چقدر دقیق و تمیز باشد. در نتیجه، هر چیزی غیر از ارزان ترین و دانه دانه ترین ردیابی پرتو، فراتر از دسترس رندر زمان واقعی بوده است.
از نظر عملی، تا به حال، ردیابی پرتو(ray tracing) صرفاً برای سناریوهای “آفلاین”، به ویژه گرافیک های سه بعدی در فیلم ها، محفوظ بوده است. کیفیت ردیابی پرتو آن را در رتبه دوم قرار می دهد – در نهایت این کار شبیه سازی نحوه عملکرد واقعی نور است – زیرا می تواند انعکاس ها، سایه ها، انتشار نور و سایر اثرات را تا حدی از دقت محاسبه کند که هیچ روش دیگری قادر به محاسبه آن نیست. اما انجام همه اینها هزینه سنگینی دارد.
بازگشت ردیابی پرتو – هیبریداسیون(Hybridization)
پس از آن به یک دایره کامل می رسیم، به این سوال واضح می رسیم: اگر شطرنجی سازی تا این حد نادرست است، چگونه قرار است بازی ها کیفیت تصویر خود را بیشتر بهبود بخشند؟ مطمئناً میتوان مسیر شطرنجی سازی را ادامه داد، و حتی اگر مشکل سختتر شود، کیفیت تصویر بهتر میشود. اما با توجه به این که شطرنجی سازی یک هک است، خوب است که به طور دوره ای به آنچه که آن هک در تلاش است به دست آورد و اینکه آیا آن هک ارزش معاوضه را دارد، بررسی کنید.
یا به بیان دیگر: اگر میخواهید این همه تلاش را صرف تقلب کنید، شاید بهتر باشد این تلاش را برای رندر کردن دقیق یک صحنه برای شروع انجام دهید؟
اکنون در سال ۲۰۱۸، صنعت محاسبات به طور کلی شروع به پرسیدن این سوال کرده است. ردیابی پرتو هنوز گران است، اما روشهای شطرنجیسازی بسیار دقیق نیز همینطور هستند. بنابراین ممکن است در برخی مواقع انجام ردیابی پرتو در نقاط خاصی به جای هک کردن آن منطقی تر باشد. و این رشته فکری است که NVIDIA با ذوق و شوق زیادی برای تورینگ دنبال می کند.
برای NVIDIA، مسیر پیش رو دیگر شطرنجی سازی خالص نیست. درعوض، جهان بینی آنها رندر ترکیبی(Hybridization) است: ترکیب بهترین بخش های شطرنجی و محاسبه با بهترین بخش های ردیابی پرتو. اینکه این بخشها چیستند و کجا باید انجام شوند، در نهایت یک سوال به عهده توسعهدهندگان است، اما در سطح بالا، ایدهای که NVIDIA مطرح میکند این است که از ردیابی پرتو در جایی که منطقی است استفاده کند – برای نور، سایهها و هر چیز دیگری که شامل آن میشود. برهمکنش نور – و سپس استفاده از روش های سنتی مبتنی بر شطرنجی برای هر چیز دیگری.
این بدان معناست که توسعهدهندگان بهجای پرش فوری از شطرنجسازی به ردیابی پرتو و از دست دادن تمام مزایای عملکرد اولی، میتوانند از بهترین هر دو دنیا لذت ببرند و انتخاب کنند که چگونه میخواهند عملکرد شطرنجیسازی(rasterization) را با کیفیت ردیابی پرتوی(ray tracing) متعادل کنند. نمونههایی که NVIDIA و شرکای آن تاکنون ارائه کردهاند، میوهای کمآویز بوده است – انعکاسهای لحظهای دقیق، شفافیت بهبودیافته و روشنایی جهانی بهتر – اما موارد استفاده بهطور قابلتوجهی به هر نوع عملیات مرتبط با نور تعمیم داده میشود. و شاید برای John Carmacks و Tim Sweeneys جهان، احتمالاً چیزی بسیار غیرمتعارفتر باشد.
با همه اینها که گفته شد، فقط به این دلیل که شطرنجیسازی ترکیبی و ردیابی پرتو ایده خوبی بر روی کاغذ به نظر میرسد، به این معنی نیست که در عمل به خوبی کار میکند. مطمئناً این ابتکار بسیار فراتر از NVIDIA است – DXR API مایکروسافت سنگ بنای است که همه می توانند از آن بسازند – با این حال اگر آن را در روزهای اولیه بنامیم اغراق آمیز خواهد بود. انویدیا، مایکروسافت و سایر شرکتها باید اساساً یک اکوسیستم را از ابتدا بسازند. و آنها نه تنها باید توسعه دهندگان را بر اساس شایستگی ردیابی پرتویی بفروشند، بلکه باید به توسعه دهندگان نحوه پیاده سازی آن را به شیوه ای کارآمد آموزش دهند. هیچ کدام از اینها کار آسانی نیست. به هر حال، ردیابی پرتو تنها راه رو به جلو نیست، فقط یک راه رو به جلو است. و اگر با NVIDIA موافق هستید، امیدوار کننده ترین راه رو به جلو است.
اما برای امروز، بیایید بحث در مورد مزایای ردیابی پرتو را لیست کنیم. NVIDIA حرکت خود را انجام داده است و در واقع تصمیماتی که منجر به تورینگ می شود سال ها پیش اتفاق می افتاد. بنابراین، در عوض، بیایید نگاهی بیندازیم که چگونه NVIDIA قصد دارد با ساختن واحدهای سخت افزاری(hardware units) به طور خاص برای ردیابی پرتو، اهداف خود را به واقعیت تبدیل کند.
هسته های تانسوری(Tensor cores)
تولید تصویر نهایی توسط هسته های Tensor تسریع می شود، که برای پر کردن جاهای خالی در یک تصویر نیمه رندر شده استفاده می شود، تکنیکی که به عنوان نویز زدایی شناخته می شود. هستههای Tensor نتیجه یادگیری عمیق را برای کدنویسی نحوه افزایش وضوح تصاویر تولید شده توسط یک برنامه یا بازی خاص انجام میدهند. در استفاده اولیه هستههای Tensor، مشکلی که باید حل شود در یک ابر رایانه تجزیه و تحلیل میشود، که با مثال آموزش داده میشود که چه نتایجی مورد نظر است، و ابررایانه روشی را برای دستیابی به آن نتایج تعیین میکند که سپس با تانسور مصرفکننده انجام میشود. هسته ها این روش ها از طریق به روز رسانی درایور به مصرف کنندگان ارائه می شود. این ابر رایانه خودش از تعداد زیادی هسته Tensor استفاده می کند.
هسته های تانسور تورینگ
هسته های تنسور واحدهای اجرایی تخصصی هستند که به طور خاص برای انجام عملیات تانسور/ماتریس که تابع محاسبات هسته ای مورد استفاده در یادگیری عمیق هستند، طراحی شده اند. مشابه هسته های تانسور ولتا، هسته های تانسور تورینگ سرعت فوق العاده ای را برای محاسبات ماتریسی در قلب آموزش شبکه عصبی یادگیری عمیق و عملیات استنتاج فراهم می کنند. پردازندههای گرافیکی تورینگ دارای نسخه جدیدی از طراحی Tensor Core هستند که برای استنتاج بهبود یافته است. هستههای تانسور تورینگ حالتهای دقیق INT8 و INT4 را برای استنباط بارهای کاری اضافه میکنند که میتوانند کوانتیزاسیون را تحمل کنند و به دقت FP16 نیاز ندارند.
هسته های Turing Tensor برای اولین بار قابلیت های جدید هوش مصنوعی مبتنی بر یادگیری عمیق را به رایانه های شخصی بازی GeForce و ایستگاه های کاری مبتنی بر Quadro می آورند. یک تکنیک جدید به نام یادگیری عمیق (Deep Learning Super Sampling) (DLSS) توسط Tensor Cores ساخته شده است. DLSS از یک شبکه عصبی عمیق برای استخراج ویژگی های چند بعدی صحنه رندر شده و ترکیب هوشمندانه جزئیات از چندین فریم برای ساخت یک تصویر نهایی با کیفیت بالا استفاده می کند. DLSS از نمونههای ورودی کمتری نسبت به تکنیکهای سنتی مانند TAA استفاده میکند، در حالی که از مشکلات الگوریتمی این تکنیکها با شفافیت و سایر عناصر صحنه پیچیده اجتناب میکند.
توسعه(Development)
پلتفرم توسعه تورینگ RTX نام دارد. با استفاده از DXR، OptiX مایکروسافت، و همچنین با استفاده از افزونههای Vulkan (آخرین مورد در درایورهای لینوکس نیز موجود است) میتوان به ویژگیهای ردیابی اشعه RTX دسترسی داشت. این شامل دسترسی به ویژگی های شتاب دهنده هوش مصنوعی از طریق NGX است. قابلیت های Mesh Shader، Shading Rate Image با استفاده از افزونه های DX12، Vulkan و OpenGL در پلتفرم های ویندوز و لینوکس قابل دسترسی هستند.
به روز رسانی اکتبر ۲۰۱۸ ویندوز ۱۰ شامل انتشار عمومی DirectX Raytracing است.
محصولاتی که از معماری تورینگ بهره می برند/Products using Turing
- GeForce MX series
- GeForce MX450 (Mobile)
- GeForce MX550 (Mobile)
- GeForce 16 series
- GeForce GTX 1630
- GeForce GTX 1650 (Mobile)
- GeForce GTX 1650
- GeForce GTX 1650 Super
- GeForce GTX 1650 Ti (Mobile)
- GeForce GTX 1660
- GeForce GTX 1660 Super
- GeForce GTX 1660 Ti (Mobile)
- GeForce GTX 1660 Ti
- GeForce 20 series
- GeForce RTX 2060 (Mobile)
- GeForce RTX 2060
- GeForce RTX 2060 Super
- GeForce RTX 2070 (Mobile)
- GeForce RTX 2070
- GeForce RTX 2070 Super (Mobile)
- GeForce RTX 2070 Super
- GeForce RTX 2080 (Mobile)
- GeForce RTX 2080
- GeForce RTX 2080 Super (Mobile)
- GeForce RTX 2080 Super
- GeForce RTX 2080 Ti
- Titan RTX
- Nvidia Quadro
- Nvidia Tesla
- Tesla T4
معماری تورینگ انویدیا (NVIDIA Turing Architecture): فایل PDF توضیحات کامل انگلیسی