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

3080 - дикие тормоза при работе шейдеров.

Страницы: 1 2 3 4 5 Следующая »
#0
(Правка: 23:54) 23:32, 13 янв. 2022

Столкнулся с проблемой которая привела меня в ступор.
У меня аппликация считает очень тяжелые шейдера (DX12).  В компе стоят две видеокарты - 3080 LHR и Titan V. По идее 3080 должна работать раза в 2 быстрее чем Titan - у нее больше ядер и частота выше. Так вот фиг вам... 3080 работает в 3-4 раза медленнее (!!!).

Т.е. та же самая программа, я переключаю только адаптер. Еще раз - шейдер тот же самый. Программа кроме рассчета этого шейдер ничего не делает. Разница только в карте. И вместо двухкратного роста производительности имеем ее падение в 3-4 раза. Даже не на проценты - в разы.

Я понимаю что Titan V карта мягко говоря нестандартная. Но шейдер у меня не в даблах считает, а на флотах она примерно равна 2080Ti. Да и по сравнению с другими моими картами (AMD R9 и Titan Xp) она феноменальной скорости не показывала. Значит дело в 3080.

Я ее проверил на 3D Mark - показывает 18300. Титан дает 13500, т.е. 3080 разумеется быстрее. Что за фигня тогда творится с шейдерами? Я даже нашёл очень старую версию программы на OpenGL - там тот же самый эффект, 3080 существенно медленнее Титана. Перегрев и т.д. отметаем - обе карты на водяном охлаждении. Питаются от блока 1.2 КВ.

Короче я ничего не понимаю. Может кто читал об особенностях архитектурт 3000 серии, что они там натворили?


#1
23:42, 13 янв. 2022

LHR наверное)

#2
23:57, 13 янв. 2022

Misanthrope
Как? Я ничего не хеширую. Там просто шейдер, больше ничего. Пробовал и компьют и пиксельный - то же самое. 3080 работает на уровне 1080 если не хуже. Чушь какая то...

#3
(Правка: 0:27) 0:15, 14 янв. 2022

san
3080 это GeForce
Titan это не GeForce

GeForce - это затычки для ПК "геймеров" для расчетов не предназначенные.

NVIDIA’s warranty on GeForce GPU products explicitly states that the GeForce products are not designed for installation in servers. Running GeForce GPUs in a server system will void the GPU’s warra

читай https://www.microway.com/knowledge-center-articles/comparison-of-… a-tesla-gpus/

П.С. у тебя может быть миллион сценариев - во первый никто не видел твоего шейдера, твой шейдер
может адресовать больше 256 или 512 Мб памяти и "геймерские" видеокарты на такое не рассчитаны
может у тебя 64-бита флоаты очевидно 3080 тоже просядет, может у тебя шейдер делает вывод больше 32-бит что даст двойную и больше нагрузку на GeForce картах
может у тебя активный трансфер памяти и PCIE на геймерской 3080 упирается в однопоточность...
это помимо очевидного "может драйвера кривые" и встроенные Нвидивские "антимайнерские защиты" срабатывают на твой шейдер... (привет закрытым драйверам)
(все это мои предположения из головы, все может быть не верно и не касаться твоего случая)

Также никто не знает что ты там меряешь, может ты FPS с Vsync на swapchain меряешь, и у тебя банально монитор подключен к 3080, и Титан без монитора ставит рефреш рейт на 360 (Нвидивские карты ставят 360 без монитора как я видел) вот и на титане твоих ФПС больше...

#4
(Правка: 0:37) 0:30, 14 янв. 2022

melvy
>Titan это не GeForce
Вообще-то GeForce.  Полное название GeForce Titan V. Можешь по свой ссылке посмотреть. :)
Потом я же сказал что я не в даблах считаю.

Я запускал эту программу на зоопарке разных карт. Никогда такого эффекта не наблюдалось. Просто у меня до сего момента 3080 не было. Ты все очень убедительно говоришь, но только AMD R9 Nano никак к топовым картам не отнесешь, а там все во первых работает, во вторых ее производительность меньше Титана строго по формуле число коров * частота. Собственно как и на всех других ранее оттестированных картах. Я сразу могу подсчитать скорость на основе этих данных. Ну точнее мог, пока на 3080 не нарвался.

Шейдер я проверял не один, такой эффект наблюдался со всеми. Включая написанный в незапамятные времена на GLSL. Драйвер сегодня обновил. Что до "антимайнерской защиты" то тут я не в курсе как она работает, но мне казалось там ограничение только на размер кеша. К вычислительной мощности это вроде отношения не имеет. Шейдер вообще текстуры не читает - только вычисляет значение в точке (это фрактал). Общее в моих программах только одно - шейдер очень сложный, считается 100-200 мс. Что-то у меня смутное подозрение что у 3080 что-то срабатывает если время вычисления шейдера больше чем рефреш экрана. Хотя как это может работать если к экрану подключен Титан а считается все на 3080 я не очень понимаю.

#5
(Правка: 0:50) 0:50, 14 янв. 2022

san
> это фрактал
упирается в размер кеша... очевидно (размер быстрой памяти очевидно)

san
> Общее в моих программах только одно - шейдер очень сложный, считается 100-200
> мс
san
> DX12
чел тыже в курсе что больше секунды ты там ничего не посчитаешь и Винда офнет весь твой графический драйвер?
san
> Что-то у меня смутное подозрение что у 3080 что-то срабатывает если время
> вычисления шейдера больше чем рефреш экрана
это может срабатывать в DX12 и/или винде

Логично былоб переписать все что у тебя есть на Вулкан, и запустить под линуксом так хотяб от влияния Винды и DX12 избавишься, чуть чище тест станет. Код драйверов Нвидии одинаков на Линуксе и Винде.
Ну и все что ты описал - очередной повод задуматься о "пользе" закрытых драйверов.
На открытых драйверах такого быть не может, а если просадка происходилаб ее можно отследить.

#6
0:56, 14 янв. 2022

san
> Что до "антимайнерской защиты" то тут я не в курсе как она работает, но мне
> казалось там ограничение только на размер кеша.
И Нвидия продолжает выпускать "новые драйвера" под релиз каждой ААА игры чтоб засунуть эту новую ААА игру в "разрешенный список"... (подмена шейдеров не сработает, они хеши шейдеров сохраняют тоже)
Когда этаже ААА на старых драйверах работает с 2-х кратным снижением ФПС... совпадение да.

#7
1:17, 14 янв. 2022

melvy
> упирается в размер кеша... очевидно
Гм, зачем фракталу кэш, если он ничего ниоткуда не читает?

#8
1:23, 14 янв. 2022

melvy
>упирается в размер кеша... очевидно (размер быстрой памяти очевидно)
Что очевидно? Фрактал не кешируется по определению, это не текстура. Он вычисляется для каждой точки отдельно.

> чел тыже в курсе что больше секунды ты там ничего не посчитаешь и Винда офнет весь твой графический драйвер?
Чел, ну я как бы бы вчера родился. Во первых TDR не секунда а две, во вторых я говорил о 100-200 мс. Это как то далеко до 2 секунд.
Короче если ты не знаешь в чем дело, то не надо делать пустые предположения.

>Логично былоб переписать все что у тебя есть на Вулкан
Ага, щас. Ты вообще читаешь что я пишу или сразу даешь советы? Я же сказал, что то же самое наблюдается на OpenGL.  Где DX12 а где OGL, куда уж дальше то?

>Когда этаже ААА на старых драйверах работает с 2-х кратным снижением ФПС.
А это тут при чем? Для моей программы Нвидиа заплат не выпускала. Оптимизация драйвера под конкретные игры не значит, что все остальные программы будут работать медленнее.

#9
(Правка: 1:36) 1:35, 14 янв. 2022

>Столкнулся с проблемой которая привела меня в ступор.
>У меня аппликация считает очень тяжелые шейдера (DX12). В компе стоят две видеокарты - 3080 LHR и Titan V. По идее 3080 должна работать раза в 2 быстрее чем Titan - у нее больше ядер и частота выше. Так вот фиг вам... 3080 работает в 3-4 раза медленнее (!!!).

Может и в 40 раз медленнее работать, если ещё больше функционала не подключится к работе. То, что на видеокарте заработало что-то заумное, воспринимай почти как чудо, а не как данность, тогда и в ступор не будешь впадать. А если на неё драйвер vesa натянуть, то ты просто поразишься производительности! (в хреновом смысле, но поразишься)

> Что за фигня тогда творится с шейдерами?

Программная несовместимость. Нужен патч на драйвер, которого у тебя нет. Или какой-то другой драйвер, которого наверно тоже нет.

#10
(Правка: 2:19) 2:07, 14 янв. 2022

Skvoznjak
> Программная несовместимость. Нужен патч на драйвер, которого у тебя нет.
Несовместимость чего с чем? Драйвер то тут при чем?

Все что я запускаю, это вычислительный (или пиксельный - проверял оба) шейдер который считает для каждой точки значение по некой формуле. Формула сложная и вычислений много, поэтому весь расчёт занимает порядка 100 мс. Я пробовал разные формулы и разные платформы (DX12 и OGL) и каждый раз получал один и тот же результат - 3080 считает в несколько раз медленнее чем Titan V, чего быть не должно. Должно быть в 2 раза быстрее Титана.

Но когда я попробовал похожую программу которую я делал для VR то обнаружил, что там 3080 работает раза в полтора быстрее чем Титан. Разница там в том, что в VR я не могу тормознуть вывод на 100 мс, нужно обновлять экран каждые 16 мс. Поэтому мне пришлось считать не весь экран целиком, а отдельными кусками из которых собирается все изображение. Одним куском разумеется было бы быстрее, но тут уж никуда не деться. И вот при таком алгоритме 3080 работает быстро. Точнее как и должно быть по теории. А вот если считаешь весь экран одним чохом, то тогда тормозит. Причем это только 3080, на других картах такого поведения никогда не наблюдалось.
Теперь встает вопрос - что это за фигню они выпустили?

#11
(Правка: 2:40) 2:30, 14 янв. 2022

гадание на кофейней гуще Сезон 1
...

у меня были разные случаи тормозов изниоткуда на Нвидии в 2020 и 21, и с десяток я багрепортил, в том числе и в шейдерах (остались только слишком сложные где я не уверен это мои проблемы или драйвера, я их не багрепортил) и все пофиксили в драйверах

очевидно ты можешь пойти на форум нвидии и там спросить (их форум может и кажется мертвым, но там разрабы(из нвидии) довольно часто отвечают если тема составлена нормально)
может там тебе дадут какойто ответ...

san
> Но когда я попробовал похожую программу которую я делал для VR
я вижу слишком много подводных камней которые ты затрагиваешь, и с VR их еще больше чем с десктопом...

лично мое мнение про весь современный софт - все криво и невероятно поломано, и я уже упоминал про преимущество опенсурса - там хотяб причину можно выяснить, а не гадать как в твоем случае

#12
2:54, 14 янв. 2022

san
> Я ничего не хеширую.
А Nvidia с тобой не согласна)

ЗЫ: Вобще интересно, это они и обучение нейронок так зарубят что ли...

#13
(Правка: 3:18) 3:16, 14 янв. 2022

san
>Несовместимость чего с чем? Драйвер то тут при чем?
Несовместимость программных интерфейсов, один из которых и предоставляет драйвер видухи. Дрова именно что причём, они могут такой интерфейс предоставить, что даже перетягивание окошка по экрану будет происходить кусками и с тормозами. Есть всего 3 варианта действий: ты или достаёшь правильный драйвер, или пытаешься его починить, или методом тыка узнаёшь какие операции на нём не тормозят и пользуешься только ими.

> и каждый раз получал один и тот же результат - 3080 считает в несколько раз медленнее чем Titan V, чего быть не должно. Должно быть в 2 раза быстрее Титана.

Должно быть только если дрова такой задачей не подавятся. А что за лабуду могли в дрова запихнуть производятлы - узнавай у экстрасенсов. Раскладывай задачу на мелкие фрагменты, тестируй и выясняй на чём дрова тормозят. А когда найдёшь - переписывай свои шейдеры так, чтобы они работали на большем количестве видух.

>Теперь встает вопрос - что это за фигню они выпустили?

Вопрос не только в железе, но и в дровах. Если некоторые производители не осиливают написать нормальный биос (в одном биосе температуру неправильную показывает, обновляешь и часть функционала пропадает, третий биос виснет при просмотре частоты вращения дополнительного вентилятора и нужно резать "лишний" провод чтобы не висло), то с чего ты решил, что дрова для видух будут безглючные?

#14
3:40, 14 янв. 2022

Skvoznjak
Я бы мог с этим согласиться, если бы не одно но: это вообще то рутинная операция - заполнение текстуры компьют шейдером. Не трассировка кучей, не deep learning или еще какая экзотика. Такие вещи обнаруживаются и исправляются еще на этапе тестирования, до выхода в продакшн. Ну и то, что при заполнении текстуры кусками тормоза не возникают, скорее всего говорит о том, что это сделано специально. Возможно это побочный эффект борьбы с майнерами. Других карт 3000 серии у меня нет, но у моего сына есть 3090. Я на следующей неделе попрошу его на ней проверить. Если там все будет нормально, то тогда это скорее всего специально введенное в драйвер ограничение у карт с LHR. Тогда полезно об этом знать.

Самое неприятное если это дефект самой карты. Мне не хотелось бы в это верить, поскольку карту я получил непосредственно от EVGA, но кто его знает...

Страницы: 1 2 3 4 5 Следующая »
ПрограммированиеФорумГрафика