Сегодня ты никого не удивишь своими достижениями искусственный интеллект машинное обучение (ML) в различных областях.
В то же время доверчивые граждане редко задаются двумя вопросами: (i) какова реальная стоимость экспериментов и конечной системы и (ii) имеет ли то, что было сделано, какую-либо практичность? Важнейшей составляющей такой цены является, как ни странно, цена оборудования и зарплаты людей.
Если все это работает в облаке, то стоимость оборудования тоже нужно умножить в 2-3 раза (промежуточная маржа).
И тут мы неизбежно приходим к выводу, что несмотря на то, что сейчас даже в официальных сборках PyTorch добавить поддержку бета-версии для ROCm , Nvidia де-факто остается монополистом в этом цикле обновления оборудования (и, скорее всего, в следующем).
Понятно, что есть TPU от Google и мифические IPU от Graphcore, но реальной альтернативы не в облаке пока нет и не предвидится (первая версия CUDA вышла 13 лет назад!).
Что делать и какие есть варианты, когда по каким-то причинам хочется построить свой «суперкомпьютер», но при этом не хочется платить заложенную в продуктах наценку для сверхбогатых [мысленно вставить комментарий о госдолг США, горнодобывающая промышленность, крах Бреттон-Вудской системы, цены на здравоохранение в странах ОЭСР]? Чтобы попасть в топ-500 суперкомпьютеров, вам достаточно купить DGX Superpod, в котором установлено от 20 до более 100 видеокарт. Из моей практики де-факто серьезное машинное обучение сейчас предполагает карты Nvidia в количестве примерно 8-20 штук (понятно, что карты разные).
Главный нюанс заключается в том, что в этой статье речь пойдет о сборке, в которой нужно проделать множество стандартных операций (для чего обычно используются видеокарты), но не нужен астрономически большой объем оперативной памяти (в общем, она вроде даже топовые процессоры ThreadRipper от AMD поддерживают много оперативной памяти, но такие материнские платы Нет).
В целом все эти вещи достаточно очевидны и просты, но я ни разу не видел, чтобы они были собраны в одном месте без сокращений.
Видеокарта
Итак, нам стало ясно, что для вычислений нам нужны карты Nvidia. Но не спешите покупать карты Quadro или Tesla или покупать официальные сборки, ведь зачастую в сборки заложена 50-60% маржа.Также обращаю ваше внимание на то, что все «метрики» в этой статье очень приблизительны и условны (скорее, они коррелируют с нашей повседневной работой; цены меняются постоянно, а тренды — нет), потому что всегда будет какой-то тип нейронные сети на какой-то особой модной форме тензоров от Google, где всё будет работать неправильно.
Опустим еще тот факт, что из-за короны и бума майнинга розничные цены неадекватны, но как говорится «На этот раз все по-другому» и вы всегда можете купить на дне пузыря.
Как ни странно, с точки зрения потребителя с картами все просто.
В общем, есть довольно популярный и давний способ.
статья о выборе и сравнении карт , неплохо, но автор явно в силу своего прошлого упускает некоторые административные вопросы и сравнивает реализуемость вариантов только с точки зрения первичного рынка США (а букв много).
Я уже написал полезное резюме этой статьи.
здесь и для целей этой статьи резюме является более подробным и выглядит следующим образом:
- Карты для обучения:
- По критерию цена/качество, при прочих равных условиях, игровые карты всегда лучше «специализированных».
Например я лично сравнивал самые мощные карты доступны 3090 против A100. А100 «быстрее» 3090 примерно в 2 раза… но по официальной цене он дороже в 5-6 раз;
- Стоит рассмотреть игровые карты начиная с поколения «Паскаля» (серия 10 ), серия 20 считался всеми неудачным и дорогим, даже базовые карты архитектуры Ampere (серия 30*) превосходили флагманы предыдущего поколения (спасибо AMD, которая «почти» догнала Nvidia);
- Лучшая карта всех времен - б/у 1080 Ti с Авито .
Не нужно бояться отсутствия гарантии или годового пробега (два-три года постоянной отработки - я бы не взял, что касается игр - здесь все проще).
Просто внимательно осмотрите и тест карты при покупке погонять "пушистый бублик" не менее 20 минут, проверить маркировку на карте, просто прочитать, что выдают дрова и бенчмарки.
При правильном обращении срок службы карты составляет примерно 3-4 года постоянного использования (в прохладном сухом помещении, периодически выдувая пыль);
- На пальцах топовые карты Ampere примерно в 2 раза быстрее 1080 Ti (а иногда и в 3).
Мы даже не рассматривали покупку 3080 по той банальной причине, что Nvidia ужимала для них память (вероятно, мотивируя пользователей 4К-мониторов либо использовать DLSS, либо покупать 3090).
Более того, до меня доходили странные слухи про 3080 с 16 или 20 ГБ памяти( в ноутбуках? );
- Немаловажно и то, что тензорные ядра появились в 20* поколении, и хотя в игровых картах они в первую очередь предназначены для таких вещей, как DLSS и почему-то обрезаны, тем не менее, для некоторых задач вкупе с использованием AMP или APEX они позволяют чтобы получить еще больше прибыли в два раза быстрее.
Это объемная тема, я описал свои мысли здесь и, конечно же, прочитайте документацию от Nvidia;
Кто знает, уточните, пожалуйста - что это вообще такое? Какие-то секретные склады Nvidia?
- С 3090 с «турбиной» действительно вышел инцидент , он оказался настолько успешным, что, по слухам, из-за того, что «серьёзные» люди стали предпочитать его дорогим картам Tesla, под давлением Nvidia несколько производителей сняли его с производства;
- По критерию цена/качество, при прочих равных условиях, игровые карты всегда лучше «специализированных».
- Карты для производства:
- Я столкнулся с множеством заблуждений относительно развертывания на картах и отразил большинство из них.
здесь ;
- В целом, если нет особых требований со стороны администраторов (или, например, система собрана в супербашенном корпусе, который вставляется в стойку), то можно использовать те же игровые карты;
- Но если вам по каким-то причинам очень нужны карты с низким TDP или действительно однослотовые или пассивные, то есть интересные однослотовые решения из линейки Quadro RTX и старенькой Tesla T4, цена которых хоть как-то адекватна (до пузыря).
Единственным недостатком Quadro является слегка завышенная эталонная цена;
- Я столкнулся с множеством заблуждений относительно развертывания на картах и отразил большинство из них.
- Охлаждение :
- Карты серии Ampere «холодные» — 3-4 3090, стоящие рядом, без каких-либо настроек не нагреваются выше 70-75 градусов, когда 80-85 — это норма для 1080 Ti;
- Если карты ставятся на «углы» (без корпуса) или в корпус для майнинга, то по сути не имеет значения, какая там система охлаждения;
- Если карты расположены рядом, то неизбежно придется покупать карты с «турбиной» (центробежным вентилятором, выталкивающим воздух из корпуса);
- Карты стоят отдельно этот форм-фактор — гибрид водянки и аира, но раньше их было практически невозможно купить.
Я ими немного пользовался у друга, они действительно особо не нагреваются выше 50 градусов;
- Отдельно стоит упомянуть кастомные однослотовые версии обычных карт с водянкой ( пример ).
Понятно, что их тоже практически невозможно купить.
А если делать самому, то сборка сразу становится нетривиальной (интересовал кастомная вода, установка радиатора, реболлинг почему-то, кастомная водянка, знатоки - проверьте проблемы таких сборок);
- PCIE-линии :
- Чем больше, тем лучше, но насколько PCIE 4.0 помогает — пока не понимаю, вроде ничего никогда не тормозило;
- До 4-х карт на 1 сервере, на 1 карту обязательно нужен PCIE 3.0 8x;
- По рассказам людей, на 6-8 картах этого тоже в принципе достаточно;
- Я не собирал сервер с кастомной водой на 7-8 карт, поэтому мне сложно сказать;
- Прочтите документацию по процессору и материнской плате;
- Питание :
- То, что нормальных потребительских блоков питания на 4 3090 не существует, это миф.
Есть блоки питания Super Flower и Platimax на 1500-2000 Ватт, которые отлично зарекомендовали себя.
И если завтра вы не выберете оборудование для обслуживания задач ML на условном уровне VC, то есть большая вероятность, что 1 сервера вам хватит для производства (с исследованиями сложнее).
Также для проведения исследований нет необходимости в двойном источнике питания;
- Если по каким-то причинам вы не можете купить один блок на 2000 Вт, то можно просто купить плату для синхронизации двух блоков по 1000 Вт;
- В целом утилиты Nvidia позволяют регулировать потребление карт, но можно просто рассчитать мощность из расчета 300 Вт пиковая на карту + 30% запаса мощности блока питания;
- То, что нормальных потребительских блоков питания на 4 3090 не существует, это миф.
Диски
Источник: WDC: нет кроссовера SSD/HDDВ общем, можно наглядно привести старый график, показывающий, что цены по-прежнему падают и на SSD, и на HDD, но никак не пересекутся.
Но самое адекватное описание ситуации, которую я видел, можно найти здесь .
Вкратце и немного с добавлением ML:
- SSD, скорее всего, никогда не догонят по цене HDD;
- Ниже определенного размера нет смысла НЕ покупать SSD NVME;
- Для медленной очистки и резервного копирования, конечно, нельзя НЕ использовать HDD (или даже внешний накопитель);
- Точка «перехода» от быстрого хранилища к медленному у всех будет разная, но сейчас на рынке есть довольно дешевые SATA3 SSD на 1-4 терабайта;
Тогда, в принципе, можно даже сделать замену SSD на RAID-массив стандартными средствами Linux (пока для наших задач я ограничился десятым RAID в сети 10 Гбит).
Единственный момент — нужно недорого найти оборудование 10 Гбит/с, это может быть сложнее, но многие топовые материнские платы сейчас имеют 2 порта 10 Гбит/с и на рынке есть парочка недорогих PCIE-решений.
Материнская плата, шасси
Допустим, мы определились с выбором карт. И тут мы переходим к самому интересному – шасси, на котором предстоит осуществлять сборку.В общих чертах для обычных граждан и не только легко доступны 4 основных типа систем:
- Нвидиа ДГХ и его аналоги от менее пафосных производителей.
Там все отлично, кроме цены.
Если прикинуть очень грубо, там самые дорогие комплектующие, а сверху еще наценка примерно в два раза дороже этих комплектующих;
- Нестандартные сборки из нестандартных магазинов .
Самый яркий пример вот этот офис .
В принципе, с их помощью можно даже конструировать свои сборки (хотя, скажем, в десктопном сегменте могут быть старые материнские платы).
Также видно, что там доступны более новые сборки с 3080 и 3090. Минус такого подхода в том, что опять же такая компания хоть и на бумаге, но формально оказывает "поддержку", но как ни странно, эта поддержка естественно не глобальная и решение проблем требует времени.
Проще говоря, вам все равно придется администрировать это самостоятельно; никто не придет решать вашу проблему в воскресенье в вашей стране.
Единственная экспертиза таких ребят, которая не валяется на дороге, это взять на себя геморрой по сборке кастомной воды на 8 карт и дать на нее гарантию, но опять же, по народным анекдотам, воду (и особенно в свете « холодный» Ампер) не стоит выделки.
Внешний вид таких кулеров как Ледяной великан делает воду в целом менее привлекательной в долгосрочной перспективе;
- Сборки на базе серверных платформ от СуперМикро или Гигабайт (или любая крупная подобная компания).
Раньше моя претензия к таким платформам заключалась в том, что по разумным ценам у них никогда не было NVME-накопителей и были очень устаревшие процессорные разъемы Intel. Сейчас появились новые серверные решения на базе AMD, минусом которых по сути является только цена.
Естественно, «официально» поддерживаются только карты Tesla и нужны только ECC-память и серверные процессоры (обычно в 2-3 раза дороже);
- Сборки на базе «профессиональных» и «экстремальных» материнских плат на обычном потребительском оборудовании.
В качестве корпуса можно просто использовать любой качественный большой корпус ATX или даже чехол для добыча ;
Вторая и четвертая категории по сути идентичны, но мы не хотим платить 50% наценку за гарантию (которую производитель и так предоставляет при покупке новых деталей) и «поддержку» (а некоторые детали проще купить б/у, т.к.
например ту же 1080 Ti впервые).
Получается, что выбор фактически стоит между специализированными серверными платформами и самостоятельной сборкой.
Есть еще пятый вариант – собрать на базе б/у или «пустого» серверного корпуса, проявив смекалку, но по сути этот вариант является просто адаптацией четвертого варианта для установки в стойку, но либо нужно иметь под рукой такое оборудование или знать где купить и как проверить (пару раз мне предлагали какие-то старые салазки по цене металлолома - но всегда либо мест для PCIE не было в нужном количестве, либо были вопросы по питанию - но я не хотел заниматься фармом).
Если внимательно посмотреть характеристики серверных шасси и «профессиональных» материнских плат, то можно обнаружить несколько интересных закономерностей (собственно, именно они и размер вашего бюджета будут определять ваш выбор):
- Intel сейчас любит бросаться камнями, но процессоры AMD ThreadRipper по номинальной цене просто замечательны и привнесли новый дух на рынок.
Серверные решения на базе EPYC с той же мощностью процессора.
просто стоят в 2-3 раза дороже;
- Существует множество профессиональных материнских плат с 6–7 слотами PCIE или плат для энтузиастов с 4 двойными слотами PCIE. Но все современные интересные карты (без кастомной воды) с турбиной занимают 2 слота.
А производители карт (судя по буквальному наличию всего одной-двух таких карт в течение нескольких лет) не заинтересованы в выпуске однослотовых карт (почему? Геймеру никогда не нужно больше 2-4 карт).
Никто не запрещает взять материнскую плату с 6-7 слотами от ASUS, майнерский корпус (или просто уголки от Ikea) и собрать все как майнер на райзерах (найти райзер, работающий на х8-х16, это другое дело).
развлечение ).
Но у такой системы будет ряд недостатков - ее невозможно вставить в стойку, стояки лично у меня постоянно выходили из строя и отваливались, некий колхоз, отсутствие удобной фурнитуры и повышенный уровень шума (при прочих равных условиях).
Не все DC принимают такие системы на хостинг;
- Получается, что если совсем абстрагироваться от конкретных цен на данный момент, то есть только 3 интересных варианта: (i) или полностью потребительская сборка, желательно на неповрежденных картах со вторичного рынка, реально рисующая 4-6 карт (вопрос готовы ли вы к геморрою по райзерам, уголкам и/или корпусам для майнеров) (ii) очень похожая сборка, но скажем на базе супер-башни от Gigabyte или SuperMicro (будет вставлена в стойку - это основная особенность здесь, но некоторые детали будут дороже) (iii) сборка на базе серверной платформы;
- Вариант (i) наиболее выгоден, если можно собрать N машин по 4-6 карт в каждой и может стоить в 3-5 раз меньше, чем вариант (iii) за счет цены самого шасси, возросшей цены процессора и увеличения цена ECC RAM;
- Вариант (ii) или (iii) неизбежен, если у вас есть обязательные требования к установке стойки (колхозные варианты с переоборудованием старых шасси мы здесь опускаем, т.к.
у меня нет опыта, но, возможно, это делал кто-то из сообщества).
Вы, скорее всего, получите дублирующий блок питания для нагрузки, но для исследования это просто не нужно;
- Я бы предположил, что вариант (iii) становится привлекательным, если по какой-то причине вы хотите поставить на один сервер сразу 8-12 видеокарт;
Просто пример базовой конфигурации на базе серверного шасси.Обратите внимание, что само шасси стоит столько же, сколько может стоить целая коробка, если карты покупаются б/у!
Процессор и шасси
На самом деле здесь все просто.По сути, при выборе материнской платы вы выбираете процессор (я описал основные моменты, которые мне кажутся важными).
Если вы выбираете серверную платформу, вы сразу получаете шасси с блоком питания.
В случае самостоятельной сборки еще нужно найти корпус, куда все поместится, но благо для 4-х карт это не сложно.
Сеть
У меня еще не было необходимости (или скажем так, нам всегда удавалось оптимизировать наши расчеты), чтобы мне нужно было соединить несколько нод для расчетов, используя, скажем, DistributedDataParallel от PyTorch (на одной ноде, конечно, все работает прекрасно ).Не могу оценить, хватит ли ему «стандартных» 10 Гбит/с без установки дорогих сетевых карт на 40+ Гбит/с.
Отдельный вопрос, конечно, что с этим делать, ведь.
Такая плата, скорее всего, будет занимать еще один слот PCIE. Пока могу рассказать только об одном хаке — «профессиональные» и «экстремальные» материнские платы часто имеют 1-2 разъема 10 Гбит/с (а иногда и третий гигабитный).
В очень дешевом варианте (только цена патч-корда высокой категории, но на небольшом расстоянии даже «плохие» патч-корды показывают 10 гигабит) две такие материнские платы можно соединить напрямую друг с другом и получить «суперкомпьютер».
Если таких разъемов два, то в мастер-ноду уже можно подключить два патч-корда.
А вот чтобы подключить сеть побольше, придется найти 10-гигабитный свитч (вдруг найти б/у Микротик не проблема, но их обычно очень сложно настроить).
Заключительные замечания и исправления ошибок
Буду очень рад, если знающие люди, строившие подобные системы и сети, поделятся в комментариях своим опытом, проблемами, результатами своих экспериментов и мотивацией при выборе своей платформы!Об авторе
Александр Вейсов — основатель/владелец Silero (silero.ai), небольшой независимой компании, занимающейся разработкой продуктов в области распознавания, синтеза речи и НЛП.Хабр Силеро может быть известен публике по датасету Открыть СТТ , модели бесшумные модели или ВАД серебро-вад .
На российском рынке компания распространяет свои решения через прямые продажи/проекты и поставщиков программного обеспечения/системных интеграторов.
В опросе могут участвовать только зарегистрированные пользователи.
Войти , Пожалуйста.
Сколько боксов/серверов для ML вы собрали? 5,24% 1 12 9,17% 2-5 21 0,44% 5-10 1 3,49% 10+ (собрал целый дата-центр) 8 14,85% нет, только планирую 34 66,81% см.
ответ 153 проголосовали 229 пользователей.
94 пользователя воздержались.
Теги: #Машинное обучение #gpu #nvidia #Разработка стартапов #Компьютерное оборудование #суперкомпьютер #Обработка изображений
-
Ближний И Средний Восток
19 Oct, 24 -
Gmail Своими Руками!
19 Oct, 24 -
О Правильном Сидении На Стуле
19 Oct, 24 -
Яндекс Оцифрует Словари
19 Oct, 24