Настраиваю карточку для тестов (шутка)

Продолжаем статьи про практические тесты актуальных картонок от Nvidia (A5000 Ada, A100, 3090 и A10). В этот раз мне предложили (не реклама) денёк погонять Nvidia RTX 5090 в хостинге (себе такую брать я бы не стал), и я не мог отказаться от такого предложения.

За день что-то стоящее натренировать нынче уже проблематично, поэтому будем "снимать" уже привычных обратно совместимых «попугаев» через gpu-burn и также замерим скорость инференса одной нашей довольно прожорливой сетки в продакшене.

Все шутки про Nvidia давно уже не шутки, санкции и торговые войны идут своим чередом, но тем не менее в России новинки появляются с завидной регулярностью несмотря на все запреты.

На фоне сильно негативного новостного фона со стороны игрового сообщества про новый релиз Nvidia и своеобразных «успехов» Nvidia по наращиванию своей капитализации продвинутой «сегментации» рынка (все уже пошутили про новый коннектор, огромный рост TDP и размера карт), мне лично было интересно, а есть ли рост 50* поколения карт для наших задач против 40* поколения.

Если верить техно- и игровым блоггерам, их новое поколение совсем не впечатлило. Меня зато так впечатлило 40* поколение, что мы даже не рассматривали апгрейд 3090. Давайте разбираться!

Вопрос цены

Тут, как ни странно всё прозаично. Nvidia окончательно закончила сегментацию рынка на игровые карты с огромным размером и TDP (GeForce RTX), профессиональные относительно доступные для бизнеса (очень «удачно» именованная серия A*0, в прошлом Quadro) и доступные «не только лишь для всех» космические карты Tesla (особенно поколения начиная с Hopper и Blackwell).

MSRP выросла до двух тысяч долларов, а реальная цена в России до 300 тысяч рублей. И если на пике майнингового бума 3090 (очень удачные карты) тоже можно было найти по похожей цене, то вне пиков бума я помню цены в районе даже 100–150 тысяч рублей. Ещё держим в голове, что 3090 были с турбиной от нормальных производителей.

Получается, что сейчас смотреть чисто на использование карточки для игр, то по сути цена на топовую карточку стала безумно высокой, но если раньше цену «раздувал» майнинговый пузырь, то сейчас Nvidia увеличила свои аппетиты + присутствует санкционная составляющая. Анализ адекватности цен на остальные игровые карты линейки оставим за скобками для комментариев.

Если смотреть на карточку для расчётов, то несмотря на впечатляющий рост показателей из‑за двукратного роста размера и энергопотребления карточек, стоковые карточки дают приблизительно такой же суммарный результат, как и 2 штуки 3090 (в комментариях к прошлой статьей кто‑то писал, что существуют «пиратские» турбо карточки с большим числом VRAM из якобы «отбракованных» чипов). Естественно, могут быть приложения, для которых важна именно скорость одной конкретной карточки.

Сравнение рекомендуемых цен каждого нового поколения GPU Nvidia:

Рекомендуемая рыночная цена 5090 — U$1999. Фактическая цена в России — около 300 тысяч рублей, хотя есть отдельные предложения за 500 тысяч рублей.

Слон в комнате 2.0

3090 vs 4090, карты на 3 кулера
3090 vs 4090, наглядное фото из интернета
Карта выглядит очень комично
Проклятый коннектор и эклектика внутри серверной платформы
Внутри брутального корпуса
Искусство
Блестит

Не обойдем и его. Не вижу смысла повторять прошлую статью, меньше новое поколение карт не стало.

Карточка занимает 3.5 слота, и в серверную платформу SuperMicro, куда обычно входит 8 2-х слотовых GPU тут впритирку входят 4 карточки. По питанию нет проблем, так как там 4 блока питания (по схеме 2+2, каждый на 2 киловатта).

Думаю занятную арифметику, сколько каких карт какой мощности можно поставить куда, вы сделаете самостоятельно. Но в этот раз хотя бы однослотовые карты уже лучше представлены в линейке A*0. Стоит разве что отметить, что если вы будете собирать сервер только из консьюмерского железа для «энтузиастов», вы будете ограничены материнскими платами куда скорее всего войдет 2 такие карточки и блоками питания на 2 киловатта.

На мой взгляд довольно печально, что продолжают использовать довольно неудачный коннектор. Карты стали огромными, а коннектор — маленьким и хрупким.

Коннектор

Проблемы на старте

Первый раз в жизни драйвера встали не с первого раза. Оказалось, что нужно для карт серии 50* обязательно ставить драйвера из ветки *open (sudo apt install nvidia-driver-570-open), а не обычные проприетарные. При этом нигде про это особо не написано, кроме форумов.

Скрытый текст
Драйвера вроде поставились
Но вот карточки не нашлись
Как обычно, спасибо анониму из интернета

Сухие характеристики

Время идёт, но конкуренция в сфере ускорителей для расчетов всё еще не позволяет рассматривать всерьез какие-то другие решения кроме Nvidia. Может я плохо слежу, но я не слышал, чтобы много кто гонял сетки на карточках от AMD, и есть ощущение, что кроме игрового сегмента, AMD смотрит в первую очередь на HPC и hyperscaler-ов, что немного не про нас.

Появились решения от Intel и китайцев, но я не слышал, чтобы на них кто-то что-то тренировал. В любом случае кажущийся огромный прогресс игрового сегмента карт сильно нивелируется ростом их физического размера.

Если даже банально сравнить 5090 с RTX A5000 Ada, то с использованием тензорных ядер она не особо и проигрывает, имеет низкий TDP, выдувает воздух наружу сама. Но, конечно, ценник там уже корпоративный.

Спасибо хоть, что не зажали VRAM топовой карточке в этот раз, в отличие от стартовых!

Сухие характеристики, цена была зафиксирована на момент когда карточки были актуальными "новинками"

Сравнение попугаев

Для совместимости с прошлыми тестами, воспользуемся простой утилитой gpu-burn, которая вообще по идее предназначена для стресс-тестирования серверов с видеокартами. Билд опять будем делать через готовый докерфайл, заботливо предоставленный разработчиками библиотеки:

git clone https://github.com/wilicc/gpu-burn
cd gpu-burn
docker build -t gpu_burn .

Далее документация просит ввести такую команду: docker run --rm --gpus all gpu_burn, но она запустит дефолтный тест сразу на всех картах. Как по мне лучше сделать вот так, чтобы иметь возможность выбирать дивайсы и запускать разные тесты (с и без тензорных ядер):

docker run --rm -it --gpus '"device=0"' --entrypoint bash gpu_burn 
./gpu_burn 120 
./gpu_burn -tc 120
Температура карты в простое:

Как ни странно, несмотря на огромный TDP и высокую температуру карты «на старте», карта не очень «горячая» при полной нагрузке, примерно на уровне карт поколения Ampere. Какая‑либо настройка тактовой частоты, потребления питания или скорости вращения «фенов» — не производилась. Указывать буду максимальные попугаи и максимальную температуру карты во время теста, когда карточка выходит на «плато» после некоторого «прогрева».

Температура карточки на "плато"

И тут нас ждёт вот такой сюрприз. Карточка выдает 20 тысяч Glop/s что на FP32, что при использовании тензорных ядер! Хм странно. Как минимум тензорные ядра должны давать хоть какой-то прирост, верно? И тут опять какие-то проблемы с Nvidia? Санкции по географическому признаку?

Нет причина оказалась прозаичной, при билде надо было поменять CUDA 11.8 на CUDA 12.8 в этой строчке (карточка вышла месяц назад) и всё просто взяло и заработало. Итоговые метрики:

Glop/s как в FP32, так и с использованием тензорных ядер
Аналогичные показатели для A100 при "шинковке" её на кусочки с помощью MIG

После установки «правильной» CUDA, карточка показала такое потребление и тактовые частоты «из коробки»:

TDP и тактовая частота
Никакого "разгона" карты не производилось

Тест на реальном продуктовом инференсе

Итак, мы сняли абстрактные гигафлопсы и убедились, что карточка реально работает, драйвера поставлены верно и метрики как-то коррелируют с заявленными маркетологами.

Давайте теперь перейдем ближе к реальности. У нас есть одна моделька, для которой важна «скорость» карточки (но VRAM не особо важна). В отличие от большинства наших моделей, которые прекрасно работают даже на 1080 Ti, конкретно эта имеет ряд характеристик:

  • Загружает карточку на 100% в течение длительного времени;

  • Работаетсильно быстрее реального времени, но текущая итерация конкретно этой модели всё ещё чуть медленновата (в 10–20 раз быстрее реального времени);

  • Мы также ожидаем и её «математического» ускорения в ближайшем будущем ещё где‑то в 3–4 раза, но хотели бы измерить как она себя ведёт на разном железе, чтобы просчитать разные опции по хостингу.

Итак, вот результаты замера. Попугаи на данном графике — это насколько моделька быстрее реального времени в числе раз:

Сравнение пропускной способности карточек

Как ускорим эту сетку, цифры станут совсем вкусными.

Вывод

Что касается «неудачности» нового поколения среди игроков — если использовать карту для расчётов, по цифрам всё просто прекрасно! Но тут на нас смотрят четыре огромных нюанса:

  • Цена почти «такая же» как у профессиональных решений. При этом размер и потребление энергии в два раза выше;

  • По метрикам карточка примерно равна двум 3090. Но при этом жрёт она и занимает места как две 3090;

  • Она всё ещё дешевле профессиональных решений и решений для избранных, но разница сокращается. При рекомендованной цене в US$2000 за 100–150 тысяч рублей мы не увидим эти карточки никогда;

  • Похоже, что это и неудачный новый коннектор питания с нами «навсегда».

TLDR статьи в 1 картинке

Получается, что по сути уже второе поколение карт выходит таким, чтобы целенаправленно и постепенно закрывать окошко возможности для демократичной тренировки моделек на топовом железе. При этом в этот раз, кажется, основные факторы это уже жадность Nvidia и санкции, а не крипто‑бум.

При этом, конечно есть опция найти две живые б/у 3090 с «турбиной», или поднять пиратский флаг и на свой страх и риск попробовать «пиратские» 4090 собранные умельцами с интересными показателями VRAM.

Что касается жалоб игроков, думаю там в первую очередь наблюдается дефицит топовых карт, которые разбирают ML‑энтузиасты и майнеры и неадекватность «подрезанных» характеристик «народных» карточек.

Благодарность

Выражаем благодарность сервису IQ Host и Максиму Сухомлину в частности за возможность протестировать карточку. Идея данной публикации родилась в процессе обсуждения, какой сервер собрать под задачу определенного клиента, и Максим предложил дать нам её для снятия непосредственных метрик для клиента, когда в графике аренды образовался «пробел» на 1 сутки.