Программирование игр, создание игрового движка, OpenGL, DirectX, физика, форум
GameDev.ru / Программирование / Форум / Интересные данные по производительности карт Nvidia

Интересные данные по производительности карт Nvidia

sanПостоялецwww10 июля 201819:43#0
Я тут вылизываю свой мультиадаптерный движок и решил замерить скорость на разных картах и API. В качестве тестового примера взял навороченный 3D фрактал который считал на кваде 2048х1028. Трассировку делал под WPR, результаты смотрел в GPU viewer.
Вот что получилось.
Пиксельный шейдер:
Titan X(Pascal)  - 102 ms.
Titan V    - 51 ms.
Ну все как и предполагалось - Titan на Вольте в два раза быстрее чем на Паскале.
Но теперь я запустил тот же самый пример под CUDA 9.1. И слегка обалдел:
Titan P  - 124 ms.
Titan V  - 32 ms. (!)
Получается, что Паскаль под Кудой работает на 20% медленнее, чем на пиксельном шейдере. Уже странно. Но Titan V выполняет ту же самую работу на 65% быстрее. Это как? Оптимизация? Так почему Паскаль не оптимизируется, драйвера-то у них одинаковые. Да и нечего там оптимизировать... А если у чипа GV100 такая производительность, то почему он ее не показывает на пиксельном шейдере?

Ну и под конец запустил все тот же пример под кудой, но в даблах. Ну конечно сравнивать пеформенс двойной точности бытовой карты (хоть и хорошей) и чипа для суперкомпьютера не совсем корректно, но просто для информации:
Titan P  - 1574ms. (еще немного и упал бы по TDR)
Titan V  - 152 ms

Вобщем при работе с двойной точностью Titan V мало чем уступает Паскалю с одинарной точностью, хотя в 5 раз медленнее, чем сам же на float'ах. Вобщем самое странное тут это феноменальная производительность GV100 под Кудой. У меня нет внятного обьяснения как это может быть.
Да - визуально картинки разумеется абсолютно идентичны для всех примеров.

Правка: 10 июля 2018 20:24

g-contПостоялецwww10 июля 201819:52#1
>>феноменальная производительность GV100 под Кудой
А что если ядро вольты заточено именно под общий набор инструкций, а пиксельный шейдер - такая же эмуляция, как FFP.
sanПостоялецwww10 июля 201820:13#2
g-cont
Так код-то совершенно одинаков, т.е. инструкции по идее там должны быть те же самые. Мне пришлось немного подшаманить код, поскольку Куда слегка отличается от HLSL, но изменения минимальны  - я только добавил векторные операции. По идее должно быть наоборот - встроенные функции должны работать быстрее, чем самопальные, что видимо и показывает пример Titan P.  Но в случае Titan V все наоборот.
Я еще на компьют-шейдере проверю, интересно что там.

Правка: 10 июля 2018 20:26

Daniil PetrovЗабаненwww11 июля 20181:27#3
san
А Titan V же поддерживает машинное обучение, да?
sanПостоялецwww11 июля 20183:12#4
Daniil Petrov
> А Titan V же поддерживает машинное обучение, да?
Поддерживает. Но с этим я не игрался, равно как и с тензорными ядрами. Проверялась чисто вычислительная мощность, то, что умеют все карты. Тем страннее результат.
BishopПостоялецwww11 июля 20183:26#5
san
> Я еще на компьют-шейдере проверю, интересно что там.
Вот это пожалуй будет самое правильное, т.к. он всё же ближе к чистым вычислениям.
sanПостоялецwww11 июля 20184:28#6
Bishop
> Вот это пожалуй будет самое правильное, т.к. он всё же ближе к чистым вычислениям.
Только что проверил:
Titan P  - 100 ms
Titan V  - 45 ms.
Т.е. Паскаль работает с той же скоростью, а Вольта чуток быстрее. Но все равно в полтора раза медленнее чем на CUDA. Такое чуство, что они специально что-то зарубили под графические API, а на Куде она работает в полную силу. Бред какой-то. Ладно бы проценты, это я бы еще понял, но в полтора раза...
Да, на всякий случай - сама аппликация написана на DX12.

Правка: 11 июля 2018 4:31

Daniil PetrovЗабаненwww11 июля 20184:40#7
san
> Поддерживает. Но с этим я не игрался, равно как и с тензорными ядрами. Проверялась чисто вычислительная мощность, то, что умеют все карты. Тем страннее результат.
Я хочу со временем добавлять в свои редакторы функции машинного обучения, как, например, Ubisoft научили свою программу править кривые точки в Motion Capture :) как раз для этого и понадобится соответствующая карточка.

Правка: 11 июля 2018 4:40

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

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