Nvidia RT Cores срещу AMD Ray Accelerators - Обяснено

С първото поколение графични карти RTX през 2018 г., Nvidia представи на света чисто нова функция, която трябваше да промени пейзажа на игрите, както го познаваме. Първото поколение графични карти от серия RTX 2000 са базирани на новата архитектура на Тюринг и са донесли поддръжка за проследяване на лъчи в реално време в игрите. Ray Tracing вече е съществувал в професионалната 3D анимация и синтетичните полета, но Nvidia донесе поддръжка за рендиране на игри в реално време с помощта на технологията Ray Tracing вместо традиционната растеризация, която трябваше да промени играта. Растеризацията е традиционната техника, чрез която се изобразяват игрите, докато Ray Tracing използва сложни изчисления, за да изобрази точно как светлината ще взаимодейства и ще се държи в игралната среда, както в реалния живот. Можете да научите повече за проследяването и растеризацията на лъчи в това съдържание парче .



Ray Traced Reflections може да бъде най-приятното за окото приложение на Ray Tracing в игрите - Изображение: Nvidia

Още през 2018 г. AMD няма отговор за серията графични карти RTV на Nvidia и тяхната функционалност Ray Tracing. Червеният отбор просто не беше готов за иновативното представяне на Nvidia и това постави техните най-добри предложения в значително неизгодно положение в сравнение с Team Green. AMD RX 5700 XT беше фантастична графична карта на цена от $ 399, която се конкурираше с производителността на $ 499 RTX 2070 Super. Най-големият проблем за AMD обаче беше фактът, че конкуренцията предлагаше технология, която те не притежаваха. Това в комбинация с разнообразния набор от функции, поддръжката на DLSS, стабилните драйвери и цялостната превъзходна производителност поставят предложенията на Nvidia в значително предимство, когато става въпрос за поколението Turing срещу RDNA.



AMD RX 6000 серия с проследяване на лъчи

Бързо напред към 2020 г. и AMD най-накрая доведе битката до най-добрите предложения на Nvidia. AMD не само представи поддръжка за проследяване на лъчи в реално време в игрите, но също така пусна 3 графични карти, които са изключително конкурентни на най-добрите графични карти от Nvidia. AMD RX 6800, RX 6800 XT и RX 6900 XT се борят директно с Nvidia RTX 3070, RTX 3080 и RTX 3090 съответно. AMD най-накрая отново се конкурира в най-горния край на продуктовия набор, което е обещаваща новина и за потребителите.



Raytracing е една от ключовите характеристики, които AMD представи това поколение - Изображение: AMD



Нещата обаче не са напълно положителни и за AMD. Въпреки че AMD въведе поддръжка за проследяване на лъчи в реално време в игрите, тяхното изпълнение на проследяването на лъчи получи хладен прием както от рецензенти, така и от потребителите. Разбираемо е обаче, тъй като това е първият опит на AMD за Ray Tracing, така че би било малко несправедливо да очакваме от тях да представят най-доброто представяне на Ray Tracing там при първия си опит. Това обаче повдига въпроси относно начина, по който работи внедряването на Ray Tracing на AMD в сравнение с внедряването на Nvidia, което видяхме с архитектурата на Turing и сега Ampere.

Пакетът от RTX Technologies на Nvidia

Основната причина, поради която опитът на AMD изглежда поразителен в сравнение с този на Nvidia, е, че AMD по същество играеше догонване с Nvidia и имаше горе-долу само 2 години време да разработи и усъвършенства внедряването на Ray Tracing. Nvidia, от друга страна, разработва тази технология много по-дълго, тъй като нямаше с кого да се конкурира в самия връх на продуктовия набор. Nvidia не само предостави поддръжка на Ray Tracing преди AMD, но също така имаше и по-добра екосистема за поддръжка, изградена около технологията.

Nvidia проектира своята серия графични карти RTX 2000 с Ray Tracing като основен фокус. Това е очевидно в целия дизайн на самата архитектура на Тюринг. Nvidia не само умножи броя на ядрата CUDA, но също така добави и специални специализирани ядра за проследяване на лъчи, известни като „RT ядра“, които обработват по-голямата част от изчисленията, необходими за проследяване на лъчи. Nvidia също разработи технология, известна като „Deep Learning Super Sampling or DLSS“, която е фантастична технология, която използва задълбочено обучение и AI за изпълнение на задачи за мащабиране и възстановяване и също така компенсира загубата на производителност на Ray Tracing. Nvidia също представи специални „ядра на тензора“ в картите от серията GeForce, които са предназначени да помогнат при задълбочено обучение и задачи за изкуствен интелект, като DLSS. В допълнение към това, Nvidia също работи с игрални студия, за да оптимизира предстоящите игри за проследяване на лъчи за специалния хардуер на Nvidia, така че производителността да може да бъде максимизирана.



При проследяването на лъчи светлината се държи в играта така, както в реалния живот - Изображение: Nvidia

RT Core на Nvidia

RT или Ray Tracing Cores са специалните хардуерни ядра на Nvidia, които са специално проектирани да се справят с изчислителното натоварване, свързано с проследяването на лъчите в реално време в игрите. Наличието на специализирани ядра за Ray Tracing разтоварва много натоварване от ядрата CUDA, които са посветени на стандартното изобразяване в игрите, така че производителността да не се влияе прекалено от наситеността на използването на ядрото. RT Cores жертват гъвкавостта и прилагат хардуер със специална архитектура за специални изчисления или алгоритми за постигане на по-бързи скорости.

По-често срещаните алгоритми за ускоряване на проследяването на лъчи, които са известни, са BVH и проследяване на пакети на лъчи, а схематичната диаграма на архитектурата на Тюринг също споменава BVH (Bounding Volume Hierarchy) Transversal. RT Core е проектиран да идентифицира и ускорява командите, които се отнасят до Ray Traced рендирането в игрите.

Обяснено ядрото на RT - Изображение: Nvidia

Според бившия старши архитект на графичен процесор на Nvidia Юбо Джанг:

„[Преведено] RT ядрото по същество добавя специален тръбопровод (ASIC) към SM за изчисляване на пресичането на лъча и триъгълника. Той може да осъществи достъп до BVH и да конфигурира някои буфери L0, за да намали забавянето на достъпа до данни на BVH и триъгълник. Искането е направено от SM. Инструкцията се издава и резултатът се връща в местния регистър на SM. Преплитащите се инструкции и други аритметични или IO инструкции за памет могат да бъдат едновременни. Тъй като това е специфична за ASIC логическа схема, производителността / mm2 може да бъде увеличена с порядък в сравнение с използването на шейдър код за изчисляване на пресичането. Въпреки че напуснах NV, участвах в проектирането на архитектурата на Turing. Бях отговорен за оцветяването с променлива скорост. Развълнуван съм да видя изданието сега. “

Nvidia също така посочва в Бялата книга за архитектурата на Тюринг, че RT Cores работят заедно с усъвършенствано филтриране на шума, високоефективна структура за ускоряване на BVH, разработена от NVIDIA Research, и API, съвместими с RTX, за постигане на проследяване на лъчите в реално време на един графичен процесор на Turing. RT Cores пресичат BVH автономно и чрез ускоряване на обхождането и тестовете за пресичане на лъч / триъгълник те разтоварват SM, което му позволява да обработва друг връх, пиксел и изчислява засенчващата работа. Функции като BVH изграждане и преоборудване се обработват от драйвера, а генерирането и засенчването на лъчи се управляват от приложението чрез нови видове шейдъри. Това освобождава SM единиците да извършват друга графична и изчислителна работа.

AMD’s Ray Accelerators

AMD се включи в състезанието Ray Tracing със своята серия RX 6000 и с това те също така въведоха няколко ключови елемента в архитектурния дизайн на RDNA 2, които помагат с тази функция. За да подобри ефективността на проследяването на лъчи на графичните процесори на AMD RDNA 2, AMD е включила компонент Ray Accelerator в основния си Compute Unit Design. Тези ускорители на лъчи трябва да повишат ефективността на стандартните изчислителни единици при изчислителните натоварвания, свързани с проследяването на лъчи.

Механизмът зад функционирането на Ray Accelerators все още е относително неясен, но AMD даде известна представа за това как тези елементи трябва да работят. Според AMD тези ускорители на лъчи имат изразена цел да преодолеят структурата на йерархията с ограничен обем (BVH) и да определят ефективно пресичанията между лъчи и кутии (и в крайна сметка триъгълници). Дизайнът напълно поддържа DirectX Ray Tracing (Microsoft's DXR), който е индустриален стандарт за PC Gaming. В допълнение към това, AMD използва базиран на Compute деноизатор, за да изчисти огледалните ефекти на проследени от лъчи сцени, вместо да разчита на специално създаден хардуер. Това вероятно ще окаже допълнителен натиск върху възможностите за смесена прецизност на новите Compute Units.

Обяснени лъчевите ускорители - Изображение: AMD

Ray Accelerators също са способни да обработват четири пресечения на ограничени обемни кутии или едно пресичане на триъгълник в секунда, което е много по-бързо от изобразяването на Ray Traced сцена без специален хардуер. Има голямо предимство в подхода на AMD, което е, че RT Accelerators на RDNA 2 могат да взаимодействат с Infinity Cache на картата. Възможно е да съхранявате голям брой структури с ограничени томове едновременно в кеша, така че известно натоварване може да бъде премахнато от управлението на данни и клетките за четене на паметта.

Ключова разлика

Най-голямата разлика, която е веднага очевидна при сравняване на RT Cores и Ray Accelerators е, че докато и двете изпълняват функциите си доста сходно, RT Cores са отделни отделни хардуерни ядра, които имат единствена функция, докато Ray Accelerators са част от стандартната структура на Compute Unit в архитектурата RDNA 2. Не само това, RT Core на Nvidia са от второ поколение с Ampere с много технически и архитектурни подобрения под капака. Това прави внедряването на RT Core на Nvidia много по-ефективен и мощен метод за проследяване на лъчи, отколкото внедряването на AMD с Ray Accelerators.

Тъй като във всеки Compute Unit е вграден един лъчев ускорител, AMD RX 6900 XT получава 80 лъчеви ускорители, 6800 XT получава 72 лъчеви ускорители, а RX 6800 получава 60 лъчеви ускорители. Тези числа не са пряко сравними с номерата на RT Core на Nvidia, тъй като те са специални ядра, изградени с една единствена функция. RTX 3090 получава 82 2ndGen RT ядра, RTX 3080 получава 60 2ndGen RT Cores и RTX 3070 получават 46 2ndGen RT Cores. Nvidia има и отделни ядра на тензора във всички тези карти, които помагат при машинно обучение и приложения за изкуствен интелект като DLSS, за които можете да научите повече в тази статия .

Във всеки Compute Unit в RDNA 2 има вграден по един лъчев ускорител - Изображение: AMD

Бъдеща оптимизация

Трудно е да се каже на този етап какво има бъдещето в Ray Tracing за Nvidia и AMD, но може да се направят няколко образовани предположения, като се анализира текущата ситуация. Към момента на писане, Nvidia държи доста значителна преднина в производителността на Ray Tracing в сравнение директно с предложенията на AMD. Въпреки че AMD направи впечатляващ старт за RT, те все още изостават с 2 години от Nvidia по отношение на изследвания, разработка, поддръжка и оптимизация. Nvidia заключи повечето заглавия на Ray Tracing точно сега през 2020 г., за да използва хардуера на Nvidia по-добре от онова, което AMD събра. Това, в комбинация с факта, че RT ядрата на Nvidia са по-зрели и по-мощни от Ray Accelerators на AMD, поставят AMD в неравностойно положение, когато става въпрос за текущата ситуация на трасиране на лъчи.

AMD обаче определено не спира тук. AMD вече обяви, че работи по AMD алтернатива на DLSS, което е огромна помощ за подобряване на производителността на Ray Tracing. AMD също работи с игрални студия за оптимизиране на предстоящите игри за техния хардуер, което се показва в заглавия като GodFall и Dirt 5, където картите от серията RX 6000 на AMD се представят изненадващо добре. Следователно можем да очакваме поддръжката на AMD Ray Tracing да става все по-добра с предстоящите заглавия и развитието на предстоящи технологии като DLSS Alternative.

Като се има предвид това, към момента на писане на RTX Suite на Nvidia е твърде мощен, за да се игнорира за всеки, който търси сериозно представяне на Ray Tracing. Нашата стандартна препоръка ще бъде новата серия графични карти RTX 3000 от Nvidia над серията RX 6000 на AMD за всеки, който смята, че проследяването на лъчи е важен фактор при решението за покупка. Това може и трябва да се промени с бъдещите предложения на AMD, както и с подобрения в драйверите и оптимизацията на играта с течение на времето.

Предстоящи игри, които поддържат RTX и DLSS - Изображение: Nvidia

Заключителни думи

AMD най-накрая скочи на Ray Tracing сцената с представянето на тяхната серия графични карти RX 6000, базирани на архитектурата RDNA 2. Въпреки че не побеждават картите от серията RTX 3000 на Nvidia в директни бенчмаркове на Ray Tracing, предложенията на AMD осигуряват изключително конкурентна ефективност на растеризация и впечатляваща стойност, която може да се хареса на геймърите, които не се интересуват толкова от Ray Tracing. AMD обаче е на път да подобри производителността на Ray Tracing с няколко ключови стъпки в бърза последователност.

Подходът на Nvidia и AMD за проследяване на лъчи е доста сходен, но и двете компании използват различни хардуерни техники, за да го направят. Първоначалното тестване показа, че специалните RT ядра на Nvidia превъзхождат Ray Accelerators на AMD, които са вградени в самите Compute Units. Това може да не е особено притеснително за крайния потребител, но е важно нещо, което трябва да се има предвид в бъдеще, тъй като разработчиците на игри вече са изправени пред решение да оптимизират своите RT функции за един от двата подхода.