Тестируем лучшие видеокарты для расчетов на конец 2021 года: 3090 Turbo и A10

wan0icuypynolo8stmsh5cqsjcw.jpeg

Недавно на Хабре была статья про сравнение карточек для вычислений. На мой взгляд статья получилась очень даже неплохой, но в ней никак не отразили позиции RTX 3090 Turbo и как-то подозрительно мало времени уделили А10.

На мой взгляд среди карточек с «большим» объемом памяти (более 12 гигабайт) по рекомендованной рыночной цене (РРК) 3090 является лидером хит-парада, а по рыночной цене — скорее уже А10. Детальный разбор почему и как я подходил к выбору карточек и тестированию — прошу под кат.

Также так случилось, что у меня под рукой оказалось большое количество рейзеров разной степени говённости. И сначала я замахивался, чтобы поставить некую точку в вечных дебатах про райзеры (а мнения разнятся от такого до банального «не работает» или «для DL нельзя использовать»), но в итоге все получилось чуть более сумбурно. Но я постарался подойти к тестированию райзеров тоже структурированно и аналитически.

И последнее — в прошлой статье я сокрушался, что мол нет на рынке большого выбора однослотовых решений по вменяемой цене. Теперь на выбор решений много, но с доступностью и ценами ситуация лучше не стала (есть как минимум 2 поколения карточек Quadro и Tesla A10, но геймерских нет, насколько я знаю).


Выбор карточек и теоретические цифры

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

Простыми словами — физической и финансовой возможности (и мотивации) протестировать абсолютно все карточки у меня нет, но если верить вышеописанной статье, все-таки какая-то корреляция между спецификациями карточек и тестами прослеживается. Я собрал характеристики всех более менее свежих и интересных карточек (пожалуй кроме однослотовых прошлого поколения, которое не было очень удачным, да и Амперы уж очень сильно приросли по сравнению с прошлым поколением). Цены на момент публикации статьи могли уже поменяться.

Пока в глаза бросается пожалуй лишь то, что на первый взгляд кроме рекомендованной рыночной цены на 3090, все карточки стоят сравнимое количество денег, кроме флагманской A100 (которая еще бывает с 80 GB памяти). Обратите еще внимание, что при переходе на последнее поколения Nvidia «увеличила» число CUDA-ядер в 2 раза, но они стали как бы в »2 раза меньше». Еще стоит обратить внимание на низкий TDP и однослотовость у A4000 и A10. Что грустно и закономерно (вставить комментарий про майнеров), 3090 «доросла» за год по цене примерно до своих серверных коллег.


Рост цен на 3090

3090_price

Так, получается очень много цифр! А если открыть полные таблички, то и мозг можно сломать. Плюс все это мягко говоря теоретические цифры, скорее всего из спецификаций или маркетинговых материалов. Давайте пойдем от противного — выберем какой-то бюджет, допустим 900 т.р. (чтобы влезла хотя бы одна A100, ха!) и посмотрим, что можно получить за эти деньги.

(*) Еще важная ремарка состоит в том, что хотя якобы кто-то и «разгонял» 3090 до 500+ Ватт, в реальности лично у меня они потребляют в районе 300 Ватт (я вставлю именно эту цифру в следующую таблицу).

Да, при обучении нейросетей не всегда FP32 это самый важный индикатор, но с другими форматами данных в спецификациях больше непонятностей и маркетинга. По факту вы или будете учить в FP32, или использовать что-то вроде AMP (в тестах дальше мы попробуем и тензорные ядра).

Давайте проанализируем табличку. У карточек А20, А30 и A40 получается маловато «мощности», но есть вариант с большим количеством VRAM. A100 явно является флагманом и кажется, что даже относительно серверных карт ее цена завышена раза в 2 (не считая ситуации когда вам реально нужны 80 GB VRAM на карту или какие-то особые вычисления и выбора тогда по сути нет).

A10 и A4000 кажутся сильно интереснее с точки зрения наполнения сервера (они однослотовые и мало кушают), но тут получается, если вы хотите оптимизировать мощность вычислений — вам нужна A10, а A4000 получается как бы равной «половине» A10. Но если вы захотите поставить 5 или 6 карточек A10, 10–12 A4000 уже будет проблематично впихнуть. Держим в уме, что обычно слотов в материнских платах не более 7, и в лучших БП обычно не более 9 VGA кабелей. Вариант с колхозом и синхронизацией 2 БП мы опустим для простоты.

Чисто по характеристикам и размерам, A5000 кажется более энергоэффективным «собратом» 3090, а A6000 и RTX 6000 (прошлое поколение) — уже сильно послабее или для нишевых применений (на рубль конечно, не в вакууме).

Итак, постараемся подвести итоги. Дорогие и узкоспециализированные варианты отметаем. В сухом остатке остаются A5000 (лидер хит-парада из статьи по ссылке), 3090 и A10.

По цене, они к сожалению все более менее равны (по РРК у 3090 конкуренции вообще нет). Но тут получается, что 3090 даже по рыночной цене является более «быстрой» и горячей, чем A5000, но она все равно занимает 2 слота. А A10 получается несмотря на свою цену занимает нишу для билдов, где вы хотите поставить более 4 карточек. И да, как ни странно A5000 еще тоже относительно тяжело купить.


Тестируем карточки

Приведу результаты тестирования 3090 и A10. У 3090 есть один нюанс. На рынке есть две модели 3090 с турбиной — ASUS и Gigabyte. У решения от ASUS как-то криво проставлены заводские настройки скорости вентилятора и он не крутится быстрее 45–50%. У решения от Gigabyte такой проблемы нет. Поэтому я приведу результаты сравнения A10 и 3090 от Gigabyte «в стоке» (у A10 вообще нет движущихся частей) и 3090 от ASUS с заводским и автоматизированным управлением скоростью «фенов».

Чтобы лишний раз не возиться с компиляцией, установкой CUDA и прочего, тестировать будем вот так:


Скрипты для тестирования
# image
docker run --rm --gpus 0 -it --entrypoint bash nvidia/cuda:11.4.2-devel-ubuntu20.04
# gpu cooling (on host)
pip install coolgpus
sudo $(which coolgpus) --kill --temp 20 55 80 --speed 5 30 85
# git
apt update
apt install git
# gpu burn
git clone https://github.com/wilicc/gpu-burn.git
cd gpu-burn
make
./gpu_burn 120
./gpu_burn -tc 120
cd ../

То есть по сути просто берем официальный образ с CUDA 11.4 (девелоперская версия), собираем gpu-burn и вперед.

Получается, что по умолчанию решение от ASUS перегревается, но если крутить кулер хотя бы на 70%+, то все уже становится хорошо. Посмотрим теперь, что выдает A10:

Тут важно отметить, что для первых тестов кулер DELTA стоит просто приклеенный к корпусу на двусторонний скотч. Поток воздуха никак на «направлялся», он просто дул в примерном направлении A10. Про управление воздушными потоками, дельтами и сборку оптимальных серверных билдов я наверное напишу как-нибудь потом, если эта статья наберет хотя бы +50, уж очень там много деталей и тонкостей, и не хочется это все вспоминать.

В итоге получается интересная картина. Без использования тензорных ядер A10 сильно уступает 3090, но с ними — они почти уже равны. А разница в TDP наблюдается почти в два раза (!). Как себя поведут карточки в реальной работе, еще конечно предстоит узнать. Я довольно сильно намучился с железом и сейчас пока нет моральных сил гонять тесты на реальных задачах. Скорее всего когда это произойдет, мы что-то напишем в нашем телеграм-канале.


Тестируем райзеры и пропускную способность

Итак, у меня был целый ассортимент разного рода райзеров. Фирменных и говённых, коротких и длинных, красивых и облезлых. Пару лет назад при более неформальном тесте, я приходил к выводу, что только райзер от TT работал. Изменилось ли что-то в этот раз? Если посмотреть видосики как люди делают 10-метровые удлинители (понятно, что это проплаченная постановочная реклама и райзеры там были заранее выбраны и вообще это скорее шоу для неискушенной публики), втыкая райзеры один в другой, хочется верить, что все будет хорошо.

И да, важная ремарка, я хочу, чтобы все просто работало из коробки. Без каких-либо настроек ОС, BIOS и чего-то подобного. Это дискуссионный момент, но как раз по этой причине я в итоге опять отказался от использования райзеров совсем.

risers

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


Скрипты для тестирования
# image
docker run --rm --gpus 0 -it --entrypoint bash nvidia/cuda:11.4.2-devel-ubuntu20.04
# git
apt update
apt install git
# bandwidth test
git clone --depth 1 --branch v11.4  https://github.com/NVIDIA/cuda-samples.git
cd cuda-samples/Samples/bandwidthTest
make
./bandwidthTest --memory=pinned --mode=quick --htod
./bandwidthTest --memory=pinned --mode=quick --dtoh
./bandwidthTest --memory=pageable --mode=quick --htod
./bandwidthTest --memory=pageable --mode=quick --dtoh
cd ../

Итоги теста получатся такие:


Зануда-mode on

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

Подведем итоги. Райзер от TT по прежнему работает. Остальные скорее не работают. Райзер от TT почти не влияет на пропускную способность.


Когда райзеры не работают, выглядит это примерно так.

Да, я осознанно не занимаюсь всяческими настройками BIOS, не переключаю PCIE режимы, итд итп.

kwjzyzpn5jqg8_ji0jvz73xmevg.jpeg

cysxwg0ntf11togdnqsruqfaod4.jpeg


Вместо вывода

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

Я пока морально не готов писать продолжение статьи про сбор суперкомпьютера, но в серверном форм-факторе, но если эта статья наберет +50, то думаю в начале января я сделаю над собой моральное усилие.

Всех с наступающими праздниками и Новым Годом!


PS Пара слов про сами карточки

Я нахожу своеобразную красоту в том, как выглядят утилитарные вещи. Карточки PNY выглядят очень просто, они очень утилитарно и экономично упакованы в коробки из обычного картона. Карточки от ASUS пытаются выглядеть немного как арт-объект, но при более близком рассмотрении все эти «красивости» это просто бесполезные пластиковые обвесы. A карточки от Gigabyte визуально сочетают в себе и какой-никакой промышленный дизайн, профессионализм, утилитарность и строгость внешнего вида (и очень хорошо стоят одна за другой, что конечно важнее!). Этого же я не могу сказать про упаковку карточек, коробки как обычно отталкивающе-аляпистые и налицо пустая трата ресурсов.


Смотреть картиночки

© Habrahabr.ru