Бюджетный сервер для обучения нейронных сетей

Всем добрый день. В этой статье я расскажу как собрать сервер для обучения нейронных сетей и сэкономить кучу денег.

Спойлер, сэкономлено почти 400 000 рублей.

Немного предыстории.

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

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

Если посмотреть в сторону облачных решений, то все они стоят как крыло от боинга.

Не в рамках рекламы, а в рамках примера я приведу сервис:

Вы сами можете убедиться в стоимости цен.
Вы сами можете убедиться в стоимости цен.

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

Как вы видите, 50+ к в месяц заставляют задуматься о покупке своего сервера.

Логика решения

Когда вы создаёте сервер, то ваши действия должны быть целесообразны.

Например, мне нужно создать ансамбль нейронных сетей. В ансамбле от 9 до 12 нейронок. Допустим каждой из них нужен датасет по 100 Гб. У вас может быть больше или меньше. Главное, вы можете посчитать, сколько у вас должен быть размер хранилища.

Следующим немаловажным фактом является наличие RAID 0 уровня под PCI-E для максимизации производительности работы с данными. В моём случае это ключевой фактор как с целью генерации датасетов, так и работы с ними.

Другой фактор, возможность масштабирования ресурсов.

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

Всё это и многое другое накладывает ограничения на ваш выбор.

Другим супер важным фактором является текущий финансовый кризис. Поэтому закупка и сборка должна быть такой, чтобы сэкономить очень много денег.

Материнская плата

В качестве материнской платы была выбрана двухсокетная материнская плата X99 D4X8

Бюджетный сервер для обучения нейронных сетей

Материнская плата имеет 2 сокета 2011-3, 256 Гб максимальный объем оперативной памяти, два NVME m2 слота и 3 PCI-E слота по 16 линий на каждом, что является важным фактором с точки зрения вычисления на GPU.

Куплена материнская платы была на aliexpress за 11500.

Для примера ссылка:

На момент написания статьи она стоит 7200. Упал доллар к рублю, стало дешевле.

В качестве аналога можно привести:

Материнская плата Supermicro MBD-H11DSI-O Socket SP3 16xDDR4 2xPCI-E 16x 3xPCI-E 8x 10 EATX Retail.

Цена: 57 тысяч рублей.

Или вот:

Серверная материнская плата ASUS Z10PE-D8 WS.

Цена: 59 тысяч рублей.

Итого, сэкономлено 45 тысяч рублей.

Здесь я скажу ДВА очень важных момента, на которые вы должны обратить внимание!!!

Если вы будете покупать подобные платы, то осознавайте её размер. Об этом я дополнительно скажу ниже.

Например, размер этой платы 33 на 30,5. Заявляется EATX, что в принципе правда. Но ей нужен ООЧЕНЬ большой корпус, желательно EEATX.

Бюджетный сервер для обучения нейронных сетей

Выбирайте верно блок питания. Посмотрите, у материнской платы 2 гнезда для подключения питания CPU на 8 пинов.

Бюджетный сервер для обучения нейронных сетей

Если у кого то не работают SSD под M.2 слоты, то около слота есть переключатели, которые я обозначил на картинке выше. Их нужно переключить.

К сожалению, аппаратного RAID для M2 SSD у меня сделать не удалось, поэтому пришлось довольствоваться программным через Windows. Для SATA портов разумеется всё в порядке.

Другим важным моментом является разгон. Имеется возможность прошить BIOS и сделать анлок Turbo Boost и андервольтинг. Turbo Boost и андервольтинг дают возможность поднять частоту на ядрах до 3 ГГц, что является важным с целью повышения производительности.

На просторах интернета есть решения на эту тему. Но я пока себе не делал.

CPU

Процессоры подбирал здесь:

Смотрел по соотношению цены и характеристик. Взял топовый по производительности, но хороший по цене.

Бюджетный сервер для обучения нейронных сетей

Взял 2 XEON 2693v3 по 18 ядер на каждом.

Оба они мне обошлись в 25500

В России они продавались дорого, по 70 тысяч за штуку.

Итого сэкономлено порядка 130 тысяч.

Оперативная память

Большая часть датасетов у меня порядка 100 Гб. И на текущем этапе было принято установить на борт 128 Гб. 4 планки по 32 Гб DDR4 фирмы Samsung обошлись мне в 12 тысяч каждая планка, итого 48.

ВАЖНО! Когда вы покупаете память, обращайте внимание на её тип в спецификации материнской платы и её поддержку процессором. Потому как часть китайских плат поддерживают DDR3.

Бюджетный сервер для обучения нейронных сетей

Обращаю внимание на то, что данная память серверная. Она подойдет в х99, но не подойдет в обычные компьютеры.

Для сравнения взял Самсунг 32 Гб с яндекс маркета: 42 тысячи рублей за планку. Итого: 168 за комплект.

Сэкономлено: 120к.

Блок питания

Бюджетный сервер для обучения нейронных сетей

Взял Taifast на 1800 Вт за 8,5к. В Росси такой мощности стоят порядка 55к.

Разница порядка 47к.

Здесь есть важный момент, в выборе блока питания я немного ошибся. Точнее ошибся не я, а заявлено было неверно, что якобы есть 2 ветки питания CPU на 8 пинов, по факту оказалась 1. В итоге мне пришлось покупать переходник 2xPATA->8-pin 12В.

Бюджетный сервер для обучения нейронных сетей

Всё отлично работает, особенно с учётом того, что веток питания в принципе на данном блоке великое множество.

Важным фактором выбора данного блока была возможность наращивания мощности сервера с точки зрения обучения на GPU.

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

х145 Вт CPU уже 300 Вт. + 60 Вт Материнская плата.

+ Видеокарта 3090 ti 450 Вт.

Бюджетный сервер для обучения нейронных сетей

Итого, если вы ставите 2 топовые карты объединенные по SLI, то вам и 1800 Вт может хватить впритык.

SSD и HDD

HDD взял Seagate на 4 Тб. На первое время достаточно для хранения датасетов.

Цена вопроса 7 тысяч. В ДНС такой стоит порядка 10к. +3к экономии

SSD KingSpec 2 штуки по 512 Гб работают в RAID 0 для ускорения производительности. Обошлись оба за 8,5 к. В России за 2 можно отдать порядка 14к. +6к экономии.

Бюджетный сервер для обучения нейронных сетей

В будущем планирую поставить что-то такое. Это переходник PCI-E под M2, чтобы сделать RAID 0 уровня под несколько SSD. Например данный под 4 SSD.

Система охлажедения

Здесь есть важный нюанс для рассматриваемой платы, для которой я купил процессор 2693v3.

Бюджетный сервер для обучения нейронных сетей

Можно рассмотреть какого-то рода башенные куллеры (с 6 трубками), как представлено на рисунке выше. Проблема в том, что 2-х вентиляторных куллеров не достаточно по рассеиваемой мощности для охлаждения, нужно радиатор как на рисунке ниже. Однако он не помещается в материнскую плату. И это очень важно!

Поэтому, было принято решение об установке водяного охлаждения с показателями рассеиваемой мощности порядка 200Вт, что вполне хватит на наши 145 Вт процессоры.

Бюджетный сервер для обучения нейронных сетей

Цена вопроса системы охлаждения для 2 CPU: 6,5K. Цена в России примерно одинаковая.

На корпус было установлено 3 куллера по 120 - 140 мм.

Корпус

Корпус это очень больная тема. Я перепробовал несколько. Покупал в России, пришлось относить в магазин.

Если посмотреть на размер плат:

То E-ATX точно соотносится с тем, что заявляет производитель материнской платы: E-ATX305 × 330.

Однако, корпуса, которые заявляют поддержку E-ATX делают это опрометчиво. Я перепробовал несколько, ни в одну он не вошел.

Бюджетный сервер для обучения нейронных сетей

Он поддерживает EE-ATX, и наверное в него войдет материнская плата, но подобные корпуса стоят 35к+.

Поэтому было принято решение купить самый большой корпус с поддержкой E-ATX и немного допилить его напильником, чтобы установить туда материнскую плату.

Бюджетный сервер для обучения нейронных сетей

Был куплен: корпус Cougar PANZER MAX-G [106AMK0015-00] черный

Цена вопроса 12к. +30к экономии.

Бюджетный сервер для обучения нейронных сетей

Для того, чтобы выпилить часть задней панели как на рисунке выше, а также для доработки мест крепления материнской платы был куплен инструмент: пилки для электролобзика, свёрла 2,5 мм, метчики М3, вороток. В качестве упоров для материнской платы использовались пластиковые скобы высотой 5 мм.

Бюджетный сервер для обучения нейронных сетей

После удаления лишнего, материнская плата встала.

Бюджетный сервер для обучения нейронных сетей
Бюджетный сервер для обучения нейронных сетей

Упоры для крепления материнской платы дорабатывались как показано на картинке ниже.

Бюджетный сервер для обучения нейронных сетей

Как итог, часть корпуса под материнскую плату после установки упоров выглядела вот так:

Бюджетный сервер для обучения нейронных сетей

Для поддержки материнской платы сверху пришлось делать пластиковый прихват:

Бюджетный сервер для обучения нейронных сетей

Тем не менее, всё отлично встало и работает:

Бюджетный сервер для обучения нейронных сетей

Итог

Всё отлично работает.

Цена сборки (с учётом доработки): порядка 130 000 рублей.

Экономии 380 000 рублей, по сравнению, если закупать аналоги в России.

Под конец хочу сказать, что не призываю никого покупать на Алике. Следует понимать, что это риск в разных смыслах слова. + Качество. Каждый делает свой выбор сам.

Однако, в кризис порой не бывает выбора, и приходится искать решения.

Всем всех благ и успешного бизнеса.

2828
58 комментариев

К сожалению, аппаратного RAID для M2 SSD у меня сделать не удалось, поэтому пришлось довольствоваться программным через Windows.

К счастью.
/fixed

Когда развалится программный RAID - поматеришься, но восстановишь. А вооот когдааа развалится аппарааатный...

6

Взял 2 XEON 2693v3 по 18 ядер на каждом.Это Хасвелл почти 10 летней давности

Обращаю внимание на то, что данная память серверная. Она подойдет в х99, но не подойдет в обычные компьютеры.Все Ryzen поддерживают ECC. Как минимум часть плат ASRock поддерживает комбинацию ECC + Ryzen. Но в целом это конечно бессмысленно, т.е. память с ECC дороже.

Взял Taifast на 1800 Вт за 8,5к. В Росси такой мощности стоят порядка 55к.Это унылое говно, а не блоки питания. У той же supermicro блоки питания под сервера с видюшками от 2 кВт, хотя можно 3 кВт+ купить. Но самое большое отличие в том, что у серверов два блока питания, если это не лезвие. Лезвия по-другому резервируют питание в случаях выхода из строя одного из блоков питания.

+ Видеокарта 3090 ti 450 Вт.Не серверная видеокарта. И нужно понимать, что есть обучение, есть инференс. Надо смотреть на то что там с тензорными ядрами. Велика вероятность что в ваших задачах v100 скорее всего будут сильно производительнее 3090 ti.

SSD KingSpec 2 штуки по 512 Гб работают в RAID 0 для ускорения производительности. Обошлись оба за 8,5 к. В России за 2 можно отдать порядка 14к. +6к экономии.Никогда не стоит использовать RAID0. Во-первых, это не надежно. Во-вторых, встроенные контроллеры обычно очень плохие по производительности. Смысла брать SSD и объединять их - нет. Если уж хочется RAID0, то надо брать внешний PCI-E контроллер, но с Intel могут быть проблемы. Лучше собирать коробку на AMD EPIC, у AMD PCI-E линий раза в 3-4 больше, чем аналогичных конфигурациях у Intel. Вообще любые конфиги на видеокартах типа A100 сейчас собирают на AMD из-за PCI-E.

Цена сборки (с учётом доработки): порядка 130 000 рублей. Экономии 380 000 рублей, по сравнению, если закупать аналоги в России.Это не экономия. Собрали +/- нормальный игровой комп со старыми процами, которые будут медленнее современных десктопных процов. Тем более SIMD инструкции в новых десктопных процах возможно превзойдут старые Xeon. Не могу оценить, т.к. нет десктопных вариантов и некуда их вставить. На сервер это все не тянет, скорее воркстейшен. Ну и я бы лучше брал б/у v100 все же.

4

А вообще, есть такая вещь как исследования: https://benchgame.com/ru/compare-cpu

Можно сравнить производительность процессоров.

У него одинаковые показатели производительности с core i9, как это показано на картинке.

Да вы меня конечно извините, но я за него отдал в 5 раз ниже, а у меня их 5.

Поэтому, лично я считаю подобный выбор разумностью в современных условиях.

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

4

Там есть смысл райда 0 уровня. Он используется ТОЛЬКО с целью максимизации производительности.

Само собой, хранить проекты на нем опасно. Поэтому для хранения проектов нужно создавать отдельный райд, например 5 уровня.

По поводу говна согласен. Проблема только в том, что сейчас на дворе кризис, а жить как то нужно. Поэтому, некоторые вещи это неизбежность.

По поводу игрового компа не согласен.

Но самое большое отличие в том, что у серверов два блока питания, если это не лезвие.Ващет по-разному бывает, какой конфиг соберете. Но 2 БП большого смысла нет. Проще собирать с одним и резервировать нодами.

Полезно, спасибо за такую подробную инструкцию

2