Главная > Программирование > Как я собирал комп для Deep Learning (год 2017)

Как я собирал комп для Deep Learning (год 2017)

Выиграв конкурс и получив призовые, встал вопрос о втором компе, который будет играть роль сервера для расчёта нейронных сеток. На своём 980 Ti с 6 GB памяти мне стало тесновато. И например на 3Д свёртках в задаче с раком лёгких я утыкался в лимиты. Да и при запуске расчётов работать за компом становилось не комфортно из-за тормозов интерфейса, да и Youtube особо не посмотришь.

Итак после небольшого изучения рынка и опыта товарищей по цеху, было принято решение собирать компьютер из 4 GPU. Для этого было выбрано 4 видео карты, 2 свежие NVIDIA 1080 Ti 11 GB + 1080 8 GB + 1070 8 GB. Две последние из-за относительной дешевизны. За это решение, впрочем, меня критиковали.

Сразу оговорюсь, что компы я собираю редко и не люблю тратить на это время. Плюс я не знаю много тонкостей в сочетании разных комплектующих. Поэтому я заказывал все комплектующие в одном месте вместе со сборкой. Артур (n01z3) мне посоветовал Регард. Я и до этого там покупал что-то из комплектующих, но не знал что они занимаются и сборкой, которая кстати бесплатная. К тому же у них шикарный конфигуратор: http://www.regard.ru/cfg  Там правда возможно выбрать только 2 видеокарты, но ещё 2 можно написать в комменте к заказу (что я и сделал).

Тонкости
1) Крайне мало материнских плат поддерживают 4 видеокарты, прежде всего из-за их размеров. Топовые видеокарты занимают сразу два слота.
2) Соответственно из-за больших размеров комплектующих лучше заказать корпус максимального размера. Я ориентировался на XL-ATX
3) В пике каждая видеокарта может потреблять более 250W, соответственно 4 это уже 1000W. Не забываем что энергию едят и другие устройства. Поэтому блок питания нужен минимум на 1200 W. Я взял с запасом на 1500 W.
4) Ожидаемо, что при таких потреблениях энергии всё это хозяйство будет сильно греться. Дополнительно в корпус я запихнул 4 вентилятора.
5) Для того что бы комп не вырубался при перепадах энергии я заказал UPS, который держит 1500W, мой стандартный начинал жалобно пищать от перегруза во время работы всех 4 карточек.
6) Изначально я решил не тратиться сильно на процессор, из-за того что одна и та же серия при небольшой казалось бы разнице в производительности может различаться по стоимости в разы. Однако для поддержки 4 видеокарт надо брать процессор с 40 линиями PCI, первый который я выбрал был только на 28.
7) У процессоров есть ограничение на количество поддерживаемой памяти. В моём ограничение было 64 GB (это я выяснил уже постфактум на этапе сборки), однако каким то чудом видно все заказанные 128 GB и я проверил их скриптом, что всё записывается и читается. Вообще я не уверен что для DL нужно 128 ГБ, потому-что я уже давно перешёл от модели зачитки всех изображений в память к работе с отдельными батчами, а там обычно много оперативной памяти не требуется. Batch Generator наше всё.

Бюджет на подобный компьютер порядка 350-400 тыс. рублей. Мой конфиг ниже:

Использование
Комп реально сильно греется если используются все 4 видеокарты. Но вроде бы выше 90 градусов температура не поднималась.

Прогнал мультиГПУ тест на MXNet:

На паре тестов наблюдается провал на двух GPU. Это связано с тем что вторым подключалась в работу самая слабая NVIDIA GTX 1070, а MXNet не справился с полноценным распараллеливанием.

Несколько фоток корпуса с разных ракурсов:

  1. 3 июля 2017 в 23:55 | #1

    Эх мне о таком только мечтать приходится. Скажи пожалуйста, а на GT 630 (2 несчастных Гб) вообще реально ResNet 50 обучить? Пусть даже и медленно.

    Поделюсь полезностью:
    Список книг, видео и курсов по машинному обучению и математике, всё на русском языке. Большая, качественная подборка. Почти все pdf’ки книг гуглятся.
    https://ru.stackoverflow.com/a/683632/1084

  1. Пока что нет уведомлений.