Программирование игр, создание игрового движка, OpenGL, DirectX, физика, форум
GameDev.ru / Программирование / Форум / Аппаратная поддержка трассировки лучей в DX12 (12 стр)

Аппаратная поддержка трассировки лучей в DX12 (12 стр)

Страницы: 111 12 13 1417 Следующая »
sanПостоялецwww25 апр. 20185:23#165
itmanager85
> real-time на трёх титанах V .
Для этого надо писать специальную программу, поскольку Titan V не поддерживает SLI. Не думаю что это делали, особо для демки. У меня сейчас в компе стоят два Титана (V и X) и R9 для ГУИ, но что бы они работали на одну аппликацию, я потратил кучу времени с сил.
Кстати для информации - Titan V работает в 2 раза быстрее, чем Titan Xp. Один Xp дает 10 фпс, один Titan V - 20 фпс, они оба - 29 фпс. (2 мс на сведение двух картинок).

>в новых видяхах аппаратный ray tracing - в разы быстрее нынешнего поколения , должно пойти на новом поколении ..

Боюсь, что рядовой карте до Titan V идти долго... Вообще-то в нем стоит кристалл разработанный для суперкомпьютеров, правда чуток покоцаный. Не все понимают, что он вообще-то заточен на работу с даблами и тензорами. Там он бьет обычные карты раз в 20-30. Ну а на простой арифмнетике с float'ами - раза в 2-3. Считать на нем обычный рейтресинг - это из пушки по воробьям. Он это может, разумеется, но если вам нужны даблы (как мне) - вот тут он вне всякой конкуренции. Не зря он стоит $3000. Рядовой карте до этого расти лет 8-10.

Правка: 25 апр. 2018 5:58

std::cinУчастникwww25 апр. 20185:41#166
san
> Идеал - количество коров по числу пикселей.
не сразу понял о каких коровах идёт речь ))
itmanager85Постоялецwww25 апр. 20186:58#167
san
> Для этого надо писать специальную программу, поскольку Titan V не поддерживает
> SLI. Не думаю что это делали, особо для демки.
ray tracing легко параллелится ..
Getting a “cinematic” 24fps with real-time raytracing still requires some serious hardware: it’s currently running on Nvidia’s ultra-high-end, four-GPU DGX Station, which lists for $60,000.

https://gamedev.ru/flame/forum/?id=216540&page=21#m305

NVIDIA Unveils the DGX-1 HPC Server
https://www.anandtech.com/show/10229/nvidia-announces-dgx1-server

т.е. эта демка с дарт вейдером пёрла на :

4x NVIDIA Tesla P100

24 FPS

соответственно что новый будущий топчег Volta с аппаратным ray tracing'ом раскроет потанцевал сцены , на крайняк 7 nm - в 2019'ом :D

itmanager85Постоялецwww25 апр. 20187:02#168
san
> Боюсь, что рядовой карте до Titan V идти долго...
> а насколько эта часть (аппаратная в новых ещё не вышедших видяхах - прим.) ускоряет ray tracing

Сильно ускоряет, очень, в несколько раз.

https://gamedev.ru/code/forum/?id=234507&page=11#m156

Правка: 25 апр. 2018 7:03

sanПостоялецwww25 апр. 20188:05#169
itmanager85
> ray tracing легко параллелится ..
Ты сам то пробовал? Это тебе не SLI где за тебя все разработчики драйвера делают. Тут надо ручками... Nvidia так и делает. А вот ты - попробуй. Флаг тебе в руку. Я это сделал на DX12 , но месяца три положил.

Titan V вобще трудно рассматртивать как видеокарту, даже будущую. Это совсем другого класса продукт. Если он еще может и рендерить обычную геометрию, так это бонус. Но его основное назначение - это вычисления с двочной точностью и искусственный интеллект. Что он может делать с 3D фракталами - страшно представить. Кстати там как раз рэйтрейсинг (маршинг - не суть важно).

>соответственно что новый будущий топчег Volta с аппаратным ray tracing'ом

В Titan V УЖЕ есть аппартаный рэйтрасинг. Единственная карта, где он действительно аппаратный :)

Правка: 25 апр. 2018 8:11

itmanager85Постоялецwww25 апр. 20188:36#170
san
> Ты сам то пробовал?
пробовал - легко параллелится ..

https://www.youtube.com/watch?v=EoYtqDmVGlM

san
> В Titan V УЖЕ есть аппартаный рэйтрасинг.
any proofs ?

Правка: 25 апр. 2018 8:36

lexer42152Постоялецwww25 апр. 20189:37#171
san
> В Titan V УЖЕ есть аппартаный рэйтрасинг. Единственная карта, где он
> действительно аппаратный :)
это не так, к сожалению.

itmanager85
>пробовал - легко параллелится ..
не может он легко параллелиться ввиду бранчинга и фактического отсутствия кэша

Правка: 25 апр. 2018 9:38

itmanager85Постоялецwww25 апр. 201810:30#172
lexer42152
> не может он легко параллелиться ввиду бранчинга и фактического отсутствия кэша
всмысле ? делишь экран на двое - первую часть экрана считает (ray trace'ит) один GPU , вторую - другой .. не вижу никаких проблем .. :D

ну это грубо - а проще , выборка меньшими частями экрана - чтобы исключить простои одного GPU на месте (участке экрана) где мало объектов ..

если не охота заморачиваться - чётные пискели (экрана) считает одна видяха, не чётные другая - время расчёта на двух видяхах будет приблизительно одинаковое ..

Правка: 25 апр. 2018 10:38

lexer42152Постоялецwww25 апр. 201811:01#173
itmanager85
>всмысле ? делишь экран на двое - первую часть экрана считает (ray trace'ит) один GPU , вторую - другой .. не вижу никаких проблем .. :D
Сделай при такой схеме, скажем, bloom. И сразу увидишь проблему. Я уж не говорю о том, что тебе полкадра придется тащить во фреймбуфер из slave gpu в master: это очень медленная операция. VR от этого как раз сильно страдает.
При таком разделении между GPU тяжелейшей становится проблема выбора правильного mipmap к тому же.

Правка: 25 апр. 2018 11:03

itmanager85Постоялецwww25 апр. 201811:53#174
lexer42152
> Я уж не говорю о том, что тебе полкадра придется тащить во фреймбуфер из slave
> gpu в master: это очень медленная операция.
смешно - пропускная способность PCI-E 3.0 x16 - 32 ГБ в секунду ,

ну допустим там два по x8 - т.е. каждый по 16 ГБ в секунду ,

задержка при копировании из GPU VRAM в ОЗУ и обратно во вторую видяху - ещё x2

т.е. получаем минимум 8 ГБ в секунду (копирование данных из одной видяхи в другую), делим на 60 FPS = 136.5 МБайт в секунду , изображение Full HD (32 бит цвет - 4 байта на пиксель) если что весит 8.1 мбайт ..

о каких медленных операциях тут идёт речь ? :D


если вливать все данные на каждый пиксель по найденным пересечениям , то с глубиной ray trace'а 4 нужен лишь индекс треугольника (int) / точка пересечения (float4) (и данные исходящего из экрана пикселя float4 x2) - считаем ,

float4 x2 (4*4 * x2 байт) + 4 * (int (4 байта) + float4 (4*4 байт) ) = 32 байт + 4*20 байт = 112 байт ..

считаем , 112 байт * 1920*1080/2 =  113,4 мбайт - укладываемся в 60 FPS (136.5 МБайт в секунду)


да , 112 байт жирновато , но начальные данные экранные можно не передавать

тогда 80 байт * 1920*1080/2 = 81 мбайт  (итого можно замутить под 100 FPS в Full HD) ..


глубина отражений обычно всего 1 (больше просто видяхи пока что не потянут в Full HD в сложных сценах),

итого , 80 байт/2 * 1920*1080/2 = 40 мбайт передавать данных за кадр , итого можно замутить под 200 FPS в Full HD .. :D


P.S.: можно ещё в float3 паковать - тогда в последнем случае понадобится не 40 байт а всего - 32 байта .. (260 FPS) .. ;-)


lexer42152, ещё вопросы ? :D

Правка: 25 апр. 2018 12:09

lexer42152Постоялецwww25 апр. 201812:21#175
itmanager85
>смешно - пропускная способность PCI-E 3.0 x16 - 32 ГБ в секунду ,
это все в теории. На практике, во первых, текстуры на стороне GPU всегда пакуются, а во-вторых, существует задержка копирования, связанная с латентностью. Короче, на практике, full HD будет на какой-нибудь 970 копироваться до 7мс (плюс зависимость от CPU): это немало, учитывая, что это не единственное, что есть во frame budget. Ну и потом, даже если (это очень большое если, удалось эффективно справиться с копированием), то все пост-эффекты вы будете накладывать после копирования. Т.е. ваш пайплайн будет выглядеть так: скопировать все геометрию на все имеющиеся GPU, на всех построить acceleration структуры, на всех запустить рей-трейсинг, скопировать из slave в master полкадра, наложить постпроцесс на мастере -> синхронизирвоать -> повторить. И я тут же вас спрашиваю: а на кой вы при таком раскладе вообще что-то копируете? Обычный AFR в смысле throughput порвет предложенную вами схему как Тузик грелку. Делайте AFR. Вот только это (как, впрочем, и то, что вы предложили) к распараллеливанию рейтрейсинга не имеет отношения: это просто распараллеливание всего workload (причем, в сравнении с AFR еще и неэффективное). А рейтресинг как таковой на устройстве ужасно бранчится, да еще и по очевидным причинам полон кэш-промахов.

itmanager85
>глубина отражений обычно всего 1 (больше просто видяхи пока что не потянут в Full HD в сложных сценах)
Мы делали 4 и успешно бежали в 4K

itmanager85Постоялецwww25 апр. 201812:31#176
lexer42152
> Мы делали 4 и успешно бежали в 4K
на новых видяхах я так понимаю ? :D чёт сильно жирно .. (или может отражающих поверхностей не много было)

а почему на шлеме в демке ниже отражения дёргаются и как будто отрендерены (и отрейтрейсены) в меньшем разрешении ?

https://youtu.be/81E9yVU-KB8?t=41

Правка: 25 апр. 2018 12:32

МизраэльПостоялецwww25 апр. 201812:31#177
itmanager85
> т.е. получаем минимум 8 ГБ в секунду (копирование данных из одной видяхи в
> другую), делим на 60 FPS = 136.5 МБайт в секунду , изображение Full HD (32 бит
> цвет - 4 байта на пиксель) если что весит 8.1 мбайт ..
это пропускная способность, а латентность какая?
Che@terПостоялецwww25 апр. 201818:52#178
NVidia выпускает драйвер 397.31:

New feature and fixes in driver 397.31
Game Ready - Provides the optimal gaming experience for BattleTech and FrostPunk.

New Features

NVIDIA RTX Technology
Developer preview for NVIDIA RTX ray tracing technology for DirectX 12. NVIDIA RTX supports the Microsoft DirectX Raytracing (DXR) API on NVIDIA Volta GPUs.

In order to get started with developing DirectX Raytracing applications accelerated by RTX, you'll need the following:

-NVIDIA Volta GPU

-NVIDIA driver version 396 or higher

-Windows 10 RS4

-Microsoft's DXR developer package, consisting of DXR-enabled D3D runtimes, HLSL compiler, and headers

+ Показать

DelfigamerПостоялецwww25 апр. 201820:06#179
itmanager85
> а почему на шлеме в демке ниже отражения дёргаются и как будто отрендерены (и
> отрейтрейсены) в меньшем разрешении ?
Окей, что ты понимаешь под "меньшим разрешением"? Меньше, чем что?

Правка: 25 апр. 2018 20:07

Страницы: 111 12 13 1417 Следующая »

/ Форум / Программирование игр / Графика

2001—2018 © GameDev.ru — Разработка игр