Pull to refresh

Comments 14

А вариант улучшить теплоотвод не рассматривали?

Корпус должен быть сильно продуваемым (сверзху вентиляторы на выдув), да и всё равно видюшка дует прямо в кулер проца. Так что часто надо ставить водянку на проц. Да и все равно вентили на 3090 будут шуметь, дабы отвести сво 400Вт тепла. Мне, например не сильна важно, за сколько там условный whisper сделает транскрибацию - за 2 мин или за 2.5 минут - зато тише.

В корпусе 3 вентилятора на вдув, 1 на выдув.
Поменял термопрокладки на Fehonda, термопасту на Thermal Grizzly Kryonaut Extreme
Стало лучше, но все равно слишком много тепла выделяется, решил понижать мощность

Имхо маловато, у меня 3080 под нагрузкой с такой конфигурацией как у вас (3 вдув - 1 выдув) грелась весьма хорошо, добавил сверху еще два вентилятора вдув-выдув (не уверен что оптимально) и стало сильно приятнее жить (на 10-15 градусов)

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

Прогнал несколько тестов на 4090:

Train fp32

Train tf32

Train fp16 amp

Train fp16 half

Интересно, что кривые tf32 и fp16 amp практически одинаковые.

Текстовые результаты
fp32_train = [(150, 1916.85302734375), (160, 1726.422119140625), (170, 1572.1138916015625), (180, 1442.38671875), (190, 1337.249755859375), (200, 1242.3446044921875), (210, 1172.5013427734375), (220, 1095.2509765625), (230, 1029.110595703125), (240, 971.7257690429688), (250, 921.0980224609375), (260, 875.9171752929688), (270, 826.3692626953125), (280, 786.3384399414062), (290, 752.35595703125), (300, 721.5491943359375), (310, 688.0049438476562), (320, 663.115478515625), (330, 647.8905029296875), (340, 627.601806640625), (350, 601.1165161132812), (360, 591.7486572265625), (370, 570.9195556640625), (380, 560.3616333007812), (390, 554.3623657226562), (400, 550.8558349609375), (410, 541.1676025390625), (420, 537.27685546875), (430, 533.3079223632812), (440, 534.1802368164062), (450, 525.8939208984375)]

tf32_train =[(150, 1130.47998046875), (160, 1045.67822265625), (170, 958.404052734375), (180, 872.135498046875), (190, 801.3380737304688), (200, 733.6597290039062), (210, 674.9171752929688), (220, 630.9574584960938), (230, 591.8206787109375), (240, 557.5418090820312), (250, 529.1500244140625), (260, 503.8023986816406), (270, 482.4733581542969), (280, 464.09136962890625), (290, 453.2052917480469), (300, 446.3533630371094), (310, 442.28253173828125), (320, 438.00335693359375), (330, 433.1138610839844), (340, 430.9553527832031), (350, 430.3887023925781), (360, 423.78192138671875), (370, 421.5494384765625), (380, 418.23504638671875), (390, 417.9413757324219), (400, 417.5173034667969), (410, 416.3753662109375), (420, 414.67138671875), (430, 414.67596435546875), (440, 415.1285095214844), (450, 415.0179443359375)]

fp16_amp_train = [(150, 713.5382080078125), (160, 644.8378295898438), (170, 582.9127807617188), (180, 531.542724609375), (190, 487.0350646972656), (200, 449.3820495605469), (210, 419.1130065917969), (220, 393.4111633300781), (230, 370.9094543457031), (240, 346.04071044921875), (250, 329.3534851074219), (260, 313.56951904296875), (270, 299.94134521484375), (280, 289.3700866699219), (290, 283.7044982910156), (300, 281.9547424316406), (310, 278.1085205078125), (320, 275.4595947265625), (330, 273.2633972167969), (340, 271.5821228027344), (350, 270.0470886230469), (360, 266.6712646484375), (370, 265.72222900390625), (380, 264.9597473144531), (390, 263.90924072265625), (400, 263.3031921386719), (410, 262.78692626953125), (420, 262.68572998046875), (430, 262.64483642578125), (440, 262.59173583984375), (450, 262.6723327636719)]

fp16_half_train = [(150, 432.8243103027344), (160, 380.8467712402344), (170, 346.6760559082031), (180, 312.84552001953125), (190, 287.2230529785156), (200, 266.4410400390625), (210, 248.6437225341797), (220, 235.57911682128906), (230, 225.4227752685547), (240, 218.5994415283203), (250, 215.1365509033203), (260, 212.386962890625), (270, 210.07582092285156), (280, 208.22596740722656), (290, 206.6107177734375), (300, 205.4788055419922), (310, 204.30592346191406), (320, 203.26885986328125), (330, 202.8826904296875), (340, 202.81948852539062), (350, 202.8431396484375), (360, 202.87684631347656), (370, 202.7930450439453), (380, 202.87242126464844), (390, 202.78543090820312), (400, 202.8188934326172), (410, 202.78146362304688), (420, 202.84884643554688), (430, 202.83177185058594), (440, 202.92153930664062), (450, 203.05181884765625)]

В прикладных задачах (инференс и обучение лор/dreambooth в SD, обучение моделей RVC (в большинстве случаев работа с fp16 и bf16)) работаю с лимитом мощности в 70%. Разница в производительности по сранению со стоковыми 450 Вт на уровне погрешности, но при этом тепловыделение меньше на 135 Вт, что даёт снижение температуры GPU на 10 градусов.

Спасибо за тесты!
А когда fp16 amp тестили, там tf32 было выключено?

Полезное исследование. Я даже свою 3060 переодически ограничиваю по ТДП. А тут столько мощи при 250 Вт. Тоже задумался о 3090.

"К сожалению, драйверы NVIDIA под Linux не поддерживают понижение напряжения. Поэтому единственным вариантом остается понижение лимита мощности (power limit)."

Можно снизить напряжение так:
nvidia-settings -a /GPUGraphicsClockOffsetAllPerformanceLevels=100

конкретно эта команда увеличит clock на 100, но да, есть такой метод, но он довольно костыльный
как я понял суть такая: сделать power limit, и затем разогнать частоты.
Мне он не понравился, решил просто лимит понижать

Да, так и есть, карта будет упираться в максимальные частоты.

Забыл добавить что вместе с этим можно зафиксировать максимальные частоты:
nvidia-smi -pm 1
nvidia-smi -lgc 100, 2000

Стоковый power limit составляет 390 Вт, но может быть увеличен до 480 Вт. GPU выделяет так много тепла, что начинает нагревать CPU.

Правильно понимаю, что у вас карты не выбрасывают воздух наружу?

subprocess.run(["nvidia-smi","-pl",str(pwr)])

Это делать надо делать просто при каждой загрузке?

>Правильно понимаю, что у вас карты не выбрасывают воздух наружу?
Выбрасывают, но окружение все равно нагревается


>Это делать надо делать просто при каждой загрузке?
ага, или можно какой-нибудь сервис сделать для systemd, чтобы он при загрузке запускался

Прикольно. Проблемы со сбросом тепла у нас не стоит, но запомню, слышал про эту фишулю, но пока надобности не было тестить.

Sign up to leave a comment.

Articles