{"id":14271,"url":"\/distributions\/14271\/click?bit=1&hash=51917511656265921c5b13ff3eb9d4e048e0aaeb67fc3977400bb43652cdbd32","title":"\u0420\u0435\u0434\u0430\u043a\u0442\u043e\u0440 \u043d\u0430\u0442\u0438\u0432\u043e\u043a \u0438 \u0441\u043f\u0435\u0446\u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432 \u0432 vc.ru \u2014 \u043d\u0430\u0439\u0434\u0438\u0441\u044c!","buttonText":"","imageUuid":""}

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

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

Спойлер, сэкономлено почти 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 рублей, по сравнению, если закупать аналоги в России.

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

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

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

0
58 комментариев
Написать комментарий...
Виталий Тиханов

Мам, это для учебы.

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

К счастью.
/fixed

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

Ответить
Развернуть ветку
Гала Перидоловна
Взял 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 все же.

Ответить
Развернуть ветку
Аполлон Степанов
Автор

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

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

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

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

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

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

Ответить
Развернуть ветку
5 комментариев
Аполлон Степанов
Автор

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

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

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

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

Ответить
Развернуть ветку
15 комментариев
Вася Пражкин
Но самое большое отличие в том, что у серверов два блока питания, если это не лезвие.

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

Ответить
Развернуть ветку
1 комментарий
Margarita Shostak

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

Ответить
Развернуть ветку
Вася Пражкин
К сожалению, аппаратного RAID для M2 SSD у меня сделать не удалось

Наверное потому, что его там в принципе нет? ))
А вообще статья - сборник лулзов. Вместо нормального серверного харда чел тупо собирает десктоп. Вот и вся «экономия».

Ответить
Развернуть ветку
Аполлон Степанов
Автор

Есть смысл чтобы собирать его именно в таком форм-факторе.

Если делать серверное решение как таковое, что-то вроде того, что показано ниже на картинке, то там есть требования по эксплуатации.

И меня понимающие люди наоборот отговорили от подобного решения.

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

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

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

Ответить
Развернуть ветку
2 комментария
Генератор случайных мыслей

Есть какие то толковые учебные материалы по нейросетям?

Ответить
Развернуть ветку
Аполлон Степанов
Автор

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

В нейронных сетях больше научного подхода, нежели инженерии/ИТ с точки зрения создания самих нейронных сетей.

Для создания нейронных сетей на низком уровне и учиться не нужно. Открыл пример, сделал fit-predict и получил результат.

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

Ответить
Развернуть ветку
Max Kuznetsov

Поздравляю с открытием для себя китайских десктопов на интеловских серверных процах и чипсетах. Уже 4 года похожая машинка на балконе трудится.
Windows на такой машинке мягко говоря удивляет, у меня ubuntu server вполне справляется.

Ответить
Развернуть ветку
Kostya B

я верно понял, что комплектующие, в основном, покупались на алиэкспресс?

Ответить
Развернуть ветку
Аполлон Степанов
Автор

Да, верно.

Ответить
Развернуть ветку
VR

1. Где в подсчёте стоимость ВК?
2. Закупить все это за 1 месяц можно только с пошлиной. Не говоря уж о 3090.

Ответить
Развернуть ветку
Аполлон Степанов
Автор

Сейчас беспошлинный ввоз подняли до 10 000 долларов. Налоги при закупке комплектующих по указанным выше ценам платить не нужно.

Чтобы сложить несколько цифр расчет не нужен. Здесь все взрослые люди.

Ответить
Развернуть ветку
3 комментария
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Аполлон Степанов
Автор

С видеокартой, разумеется, можно сверху 100+ накидывать за штуку. Если быть точным, то 155.

Ответить
Развернуть ветку
Аполлон Степанов
Автор

Видеокарта не входит в комплект. Возможно, я не совсем верно написал статью и ввел в заблуждение.

В данном случае у меня уже была видеокарта + сборка это возможность использования топовых карт с точки зрения модернизации и улучшения производительности.

Ответить
Развернуть ветку
Roman Pravuk

А нужен ли сервер для обучения? По опыту современный игровой комп с cuda вполне себе нормальное решение. Raid 0 тоже сомнительно - больше всего нагрузки при обучении идёт именно на видеокарту. Если грамотно построить датагенератор (класс sequence в keras) на какой либо БД, то вы будете загружать следующий batch в момент когда учится текущий обычного ssd хватает. Если вам важно размер, ну так база данных поможет - строите кластер, ну или ручной шардеринг. Ну а если не хочется тратиться на видеокарту то google colab за $50 в месяц вполне может хватить.
Для выполнения вашей обученной модели нужен cpu с поддержкой avx3 и fma, ну или например coral ускорители

Ответить
Развернуть ветку
Аполлон Степанов
Автор

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

GPU это только часть. Сколько вы будете генерировать датасет?? Сколько вы будете его предобрабатывать?? Читать?? Может быть вам и ГРУ то не нужно, а нужно нечто другое.

Ответить
Развернуть ветку
10 комментариев
HOL VaR

Кто нибудь скажет как это добро пустить в работу ?

Ответить
Развернуть ветку
55 комментариев
Раскрывать всегда