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

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

Страницы: 1 2 3 4 5 Следующая »
#30
11:10, 14 янв. 2022

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

samrrr
> LHR скорее всего. Этож специально урезанные видеокарты.
Но это сделано в драйвере, для линукса вроде уже есть патченые дравера. Вообще нвидиа много полезного зарезает в игровых картах(

san
А в чем проблема с множеством вызовов компьют шейдера? Если между ними не ставить барьеров, то они должны паралелиться.


#31
(Правка: 11:28) 11:24, 14 янв. 2022

автор упоминает какие-то multi-gpu замутки. прозреваю, что среди прочего он мог выделить память на одном девайсе, а читать его с другого, поэтому и медленно. если бы целью стояло действительно решить проблему, а не просто взболомутить ситуацию якобы необъяснимыми фактами, я бы попробовал исключить из эксперимента вообще всё что можно. например, упростил бы шейдер до минимального, с которым бы проблема по-прежнему воспроизводилась, оставил бы одну видюху, минимальную инициализацию и выложил бы код. но для этого, конечно, что-то делать нужно, оно само едва ли сделается.

/A\
> В DX12 передается байткод, есть конечно вероятность что в драйвере происходят
> оптимизации, но шансы крайне малы.
в драйвере даже юниформы могут инлайниться. то есть для разных значений юниформов могут создаваться разные инстансы скомпиленного шейдера. это происходит совершенно скрыто от тебя и это при очень большом старании можно отключить где-то в реестре, но по умолчанию оно включено. поэтому "байткод", который ты даёшь dx12 после компиляции шейдера — это вовсе не исполняемый код для шейдера, это так, промежуточный язык вроде spirv, который драйвер вертит, оптимизирует и компилирует (при байндинге пайплайна с дескрипторами) как ему вздумается.

#32
(Правка: 11:38) 11:37, 14 янв. 2022

san
> Да! Если тут есть кто с 3000 серией - я могу кинуть программу.
Давай. У меня как раз 3080 не лхр.

#33
(Правка: 14:47) 14:21, 14 янв. 2022

san
> Про перегрев я уже отвечал - обе карты с водяным охлаждением, блок питания 1.2
> KW. Температура там выше 65 градусов не поднимается вообще никогда. Да и
> проявляется это сразу, не надо долго гонять.
какой такой перегрев? читай сообщение суслика целиком, а не по диагонали.
Он там рассказывает о проблеме на 3ххх семействе с которой столкнулся лично,
а не про перегрев.
samrrr
> 3000 серии, как и просил. Но вообще тут недавно была перепись железа, 3000
> серия много у кого есть.
intel HD Graphics 3000? :)

#34
14:39, 14 янв. 2022

Suslik
> поэтому "байткод", который ты даёшь dx12 после компиляции шейдера — это вовсе
> не исполняемый код для шейдера, это так, промежуточный язык вроде spirv,
> который драйвер вертит, оптимизирует и компилирует (при байндинге пайплайна с
> дескрипторами) как ему вздумается.

повтори это для Andrey

#35
14:57, 14 янв. 2022

У меня есть ноутбучная 3060 на 130 ватт. Если такая интересует, то могу запустить. Но вряд ли ноутбучная версия низшей карты серии будет особо интересна :)

#36
(Правка: 15:19) 15:19, 14 янв. 2022

Suslik
> при байндинге пайплайна с дескрипторами
Лол, я думал такая дичь только в дх11- и огле. А в 12м и вулкане компилится вызовом vkCreateGraphicsPipeline и аналога.

#37
(Правка: 15:37) 15:36, 14 янв. 2022

HolyDel
> , я думал такая дичь только в дх11- и огле. А в 12м и вулкане компилится
> вызовом vkCreateGraphicsPipeline и аналога.
Про dx12 не знаю, но в Вулкане так и должно быть - при создании конвейера. А иначе как могут работать specialization константы?

#38
16:19, 14 янв. 2022

HolyDel
> Лол, я думал такая дичь только в дх11- и огле. А в 12м и вулкане компилится
> вызовом vkCreateGraphicsPipeline и аналога.

поддерживаю тебя

#39
(Правка: 18:48) 17:33, 14 янв. 2022

К 7 утра ситуация разрешилась, Nvidia реабилитирована, я посрамлен!
Оказалось в код шейдера затесался один double. Титан это разумеется глотал не поперхнувшись, а вот 3080... короче понятно.

Если кому интересно измерить производительность своих карт, то вот программа: FractalMaker
А это заплата к ней Engine. Сначала скачайте FractalMaker а потом замените там Engine.exe на тот что в заплате. Если у вас CUDA стоит то заплату можно не ставить.
Буду благодарен если опубликуете результаты.

#40
(Правка: 18:08) 18:08, 14 янв. 2022

san
>FractalMaker
просит nvrtc64_91.dll

#41
18:11, 14 янв. 2022

Ruslan
> создавал буфер, и внутри шейдера читалась хрень из него
Ты знаешь как делаются фракталы?

#42
(Правка: 18:21) 18:18, 14 янв. 2022

HolyDel
> просит nvrtc64_91.dll
Хм... А у тебя Nvidia карта?
Ой, блин... Это CUDA. Надо будет ее вычистить из этой сборки. Тогда через час, это мне надо весь сорс прочесать.

#43
(Правка: 18:39) 18:36, 14 янв. 2022

san
> А у тебя Nvidia карта?
RTX 3080 и AMD 6600xt. Монитор подключен к 6600xt, может пытается запуститься на ней?

#44
18:42, 14 янв. 2022

HolyDel
> просит nvrtc64_91.dll
Значит мне нет смысла скачивать, всеравно у меня нет CUDA.

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