Войти
ПрограммированиеФорумГрафика

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

#0
(Правка: 20:24) 19:43, 10 июля 2018

Я тут вылизываю свой мультиадаптерный движок и решил замерить скорость на разных картах и 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 под Кудой. У меня нет внятного обьяснения как это может быть.
Да - визуально картинки разумеется абсолютно идентичны для всех примеров.


#1
19:52, 10 июля 2018

>>феноменальная производительность GV100 под Кудой
А что если ядро вольты заточено именно под общий набор инструкций, а пиксельный шейдер - такая же эмуляция, как FFP.

#2
(Правка: 20:26) 20:13, 10 июля 2018

g-cont
Так код-то совершенно одинаков, т.е. инструкции по идее там должны быть те же самые. Мне пришлось немного подшаманить код, поскольку Куда слегка отличается от HLSL, но изменения минимальны  - я только добавил векторные операции. По идее должно быть наоборот - встроенные функции должны работать быстрее, чем самопальные, что видимо и показывает пример Titan P.  Но в случае Titan V все наоборот.
Я еще на компьют-шейдере проверю, интересно что там.

#3
1:27, 11 июля 2018

san
А Titan V же поддерживает машинное обучение, да?

#4
3:12, 11 июля 2018

Daniil Petrov
> А Titan V же поддерживает машинное обучение, да?
Поддерживает. Но с этим я не игрался, равно как и с тензорными ядрами. Проверялась чисто вычислительная мощность, то, что умеют все карты. Тем страннее результат.

#5
3:26, 11 июля 2018

san
> Я еще на компьют-шейдере проверю, интересно что там.
Вот это пожалуй будет самое правильное, т.к. он всё же ближе к чистым вычислениям.

#6
(Правка: 4:31) 4:28, 11 июля 2018

Bishop
> Вот это пожалуй будет самое правильное, т.к. он всё же ближе к чистым вычислениям.
Только что проверил:
Titan P  - 100 ms
Titan V  - 45 ms.
Т.е. Паскаль работает с той же скоростью, а Вольта чуток быстрее. Но все равно в полтора раза медленнее чем на CUDA. Такое чуство, что они специально что-то зарубили под графические API, а на Куде она работает в полную силу. Бред какой-то. Ладно бы проценты, это я бы еще понял, но в полтора раза...
Да, на всякий случай - сама аппликация написана на DX12.

#7
(Правка: 4:40) 4:40, 11 июля 2018

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

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