Pull to refresh

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

Reading time9 min
Views14K


Статья не про майнинг и не для майнеров.

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


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


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


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


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


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


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


Карточка VRAM, G Bwidth, Gb/s Цена, т.р. CUDA ядра Тенз. ядра TDP, W Слоты Кулер Арх. FP32 PCIE
RTX 3090 Turbo 24 936 300 (150) 10496 328 350 2 Есть 8nm 35.6 4.0
Tesla A10 24 600 300 8192 ? 150 1 Нет 8nm 31.2 4.0
Tesla A30 24 933 430 3804 224 165 2 Нет 8nm 31.2 4.0
Tesla A40 48 696 550 10752 336 300 2 Нет 8nm 37.4 4.0
Tesla A40 48 696 490 10752 336 300 2 Нет 8nm 37.4 4.0
Tesla A100 40 1555 900 6912 432 250 2 Нет 8nm 19.5 4.0
RTX A4000 16 448 150 6144 192 140 1 Есть 8nm 19.2 4.0
RTX A5000 24 768 280 8192 256 230 2 Есть 8nm 27.8 4.0
RTX A6000 48 768 500 10752 336 300 2 Есть 8nm 38.7 4.0
RTX 5000 16 448 190 3072* 384 230 2 Есть 12 nm 11.2 3.0

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


Рост цен на 3090

3090_price


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


Карточка Штук VRAM, G FP32 TDP
RTX 3090 TURBO 3.0 72 107 900 (*)
Tesla A10 3.0 72 94 450
Tesla A30 2.1 50 66 347
Tesla A40 1.6 77 60 480
Tesla A40 1.8 86 67 540
Tesla A100 1.0 40 20 250
RTX A4000 6.0 96 115 840
RTX A5000 3.2 77 89 736
RTX A6000 1.8 86 70 540
RTX 5000 4.7 75 52 1081

(*) Еще важная ремарка состоит в том, что хотя якобы кто-то и "разгонял" 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 и вперед.


Карточка Команда В начале, Gflop/s В конце, Gflop/s Макс. темп., C Комментарий
ASUS 3090 ./gpu_burn 120 20,258 17,900 85 Кулер макс. 45% (сток)
ASUS 3090 ./gpu_burn 120 19,700 19,700 73 Кулер макс. 70% (кастом)
ASUS 3090 ./gpu_burn -tc 120 48,084 39,530 90 Кулер макс. 45% (сток)
ASUS 3090 ./gpu_burn -tc 120 48,215 48,215 74 Кулер макс. 70% (кастом)
Gigabyte 3090 ./gpu_burn 120 19,858 19,225 75 Кулер макс. 80%, 1 карта
Gigabyte 3090 ./gpu_burn 120 20,283 19,234 75 Кулер макс. 80%, 2 карты
Gigabyte 3090 ./gpu_burn 300 19,755 18,936 77 Кулер макс. 85%, 2 карты
Gigabyte 3090 ./gpu_burn -tc 120 49,359 47,142 75 Кулер макс. 80%, 2 карты

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


Команда Gflop/s Макс. темп., C Комментарий
./gpu_burn 120 13934 74 Кулер DELTA, 90%, нет управления потоком
./gpu-burn -tc 120 41225 77 Кулер DELTA, 90%, нет управления потоком
./gpu-burn -tc 120 41225 77 Кулер DELTA, 50%, нет управления потоком
./gpu-burn -tc 300 37877 87 Кулер DELTA, 50%, нет управления потоком
./gpu-burn -tc 300 40251 81 Кулер DELTA, 100%, нет управления потоком

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



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


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


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


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


risers


Райзер Фирма Длина Разъемы Комментарий
1 Phanteks 200 мм x16 Угловой
2 Noname 500 мм x8 => x16 Угловой
3 Thermaltake 300 мм x16 Прямой
4 Noname 600 мм x16 Угловой

Тестировать пропускную способность будем с помощью утилиты, которую предоставляет 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 ../

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


Карточка Тест GB/s Соединение
ASUS 3090 ./bandwidthTest --memory=pinned --mode=quick --htod 26.2 Напрямую
ASUS 3090 ./bandwidthTest --memory=pinned --mode=quick --dtoh 23.1 Напрямую
ASUS 3090 ./bandwidthTest --memory=pageable --mode=quick --htod 11.5 Напрямую
ASUS 3090 ./bandwidthTest --memory=pageable --mode=quick --dtoh 12.1 Напрямую
Gigabyte 3090 ./bandwidthTest --memory=pinned --mode=quick --htod 26.2 Напрямую
Gigabyte 3090 ./bandwidthTest --memory=pinned --mode=quick --dtoh 23.1 Напрямую
Gigabyte 3090 ./bandwidthTest --memory=pageable --mode=quick --htod 11.3 Напрямую
Gigabyte 3090 ./bandwidthTest --memory=pageable --mode=quick --dtoh 11.9 Напрямую
A10 ./bandwidthTest --memory=pageable --mode=quick --dtoh 26.2 Напрямую
A10 ./bandwidthTest --memory=pageable --mode=quick --dtoh 23.2 Напрямую
A10 ./bandwidthTest --memory=pageable --mode=quick --dtoh 11.4 Напрямую
A10 ./bandwidthTest --memory=pageable --mode=quick --dtoh 11.7 Напрямую
Любая Система не видит карточку NA Райзер №1
ASUS 3090 ./bandwidthTest --memory=pinned --mode=quick --htod 1.7 Райзер №2
ASUS 3090 ./bandwidthTest --memory=pinned --mode=quick --dtoh 1.7 Райзер №2
ASUS 3090 ./bandwidthTest --memory=pageable --mode=quick --htod 1.7 Райзер №2
ASUS 3090 ./bandwidthTest --memory=pageable --mode=quick --dtoh 1.7 Райзер №2
ASUS 3090 ./bandwidthTest --memory=pinned --mode=quick --htod 26.2 Райзер №3
ASUS 3090 ./bandwidthTest --memory=pinned --mode=quick --dtoh 23.3 Райзер №3
ASUS 3090 ./bandwidthTest --memory=pageable --mode=quick --htod 8 Райзер №3
ASUS 3090 ./bandwidthTest --memory=pageable --mode=quick --dtoh 8.9 Райзер №3
Любая Система не видит карточку NA Райзер №4

Зануда-mode on

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


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


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

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




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


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


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


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


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


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


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







Tags:
Hubs:
Total votes 30: ↑28 and ↓2+33
Comments57

Articles