Конфигурация компьютера для машинного обучения. Бюджетный и оптимальный подбор.

Искусственный интеллект уже не первый год наступает на пятки естественному и делает это не в последнюю очередь за счёт роста мощности железа. Поэтому для создания современных алгоритмов ML вам скорее всего потребуется производительный компьютер. В данном посте будет предложена 2 сборки:
первая сборка ПК для ML: начинающая, рассмотрим минимальную систему с которой относительно комфортно работать, стоимостью до 30 тысяч рублей.
вторая сбалансированная цена/производительность: подороже, мощнее, позволяющая решать широкий круг задач. стоимостью 60-90 тысяч рублей.
Изначально думал выделить ещё и сборку для энтузиастов, но потом решил что те, кто готов выкладывать большие деньги на ML, те точно знают что они хотят и скорее всего будут собирать под конкретную задачу.

Процессор:
Основные показатели — количество ядер и производительность одного ядра. У Intel более быстрые ядра, зато у AMD за те же деньги вы получите больше ядер. Что важнее и где найти балланс, зависит от задач. Если будете гонять нейронки на видеокартах, то берите интел. Если хотите решать широкий круг задач, то AMD т.к. в конечном итоге при правильном распараллеливании программы расчёты будут идти бысрее. Но учтите, не всё можно распараллелить. По поводу гипертрэйдинга — он немного ускоряет систему, но в реальности не так значительно, поэтому ядра первостепенней.
Бюджетный вариант: 4-6 ядер
Средний вариант: 6-8 или более ядер с хорошим бустингом на одно ядро.

Оперативныя помять:
Бюджетный вариант: 16Gb
Средний: 32Gb двумя планками по 16, чтобы иметь возможность расшириться до 64 в случае необходимости. Больше 64Gb сокеты 1151-v2 и AM4 не поддерживают. Если хотите получить несколько дополнительный процентов производительности от AMD — берите более быструю память и обязательно 2ух канальную.
Много где в AI советуют чтобы количество оперативной памяти было в 2 раза больше чем видео памяти, у меня пока не сложилось конкретной рекомендации на эту тему, но оставлю это здесь.

Видеокарты:
В бюджетной сборке предлагаю обойтись вообще без видекарты (если в процессоре есть встроенная графика) или с самой дешевой, которую найдёте. Так можно сэкономить, приобретя более мощные остальные компоненты и оставляя возможность апргрейда. На ней Вы считать не будете — она только для вывода изображения на монитор и всё! Как же так, возможно кто-то спросит? Ответ простой — GPU в первую очередь нужна для нейронных сетей, но на слабой видеокарте вроде geforce 1050 скорость расчётов будет в большинстве случаев такой же как на мощном CPU. Некоторые алгритмы градиентного бустинга также умеют использовать мощь GPU, но на опыте — в сравнении с 1050 выигрыша никакого нет. А при покупке карты дороже, уже вылезем из бюджета в 30т.р.
В средней сборке видеокарта однозначно нужна и желательно помощнее. Выбор производителя однозначе — это nvidia. Стоит сразу отметить важную деталь — SLI вам никак не понадобится, tensorflow c cuda отлично распараллелены и вы можете использовать разные типы карт nvidia, вовсе не обязательно одинаковые. Однако в нейронных сетях есть такое понятие как батч (batch) и чтобы он был больше — нужно больше памяти на видеокарте. Чем больше batch тем лучше и дабы не быть ограниченным снизу слабой видеокартой по размеру batch — лучше брать видеокарты с одинаковым объёмом памяти.
Времена майнинга прошли и купить карту стало легче, брать ли БУ или нет — каждый пусть решит для себя самостоятельно. Чтобы облегчить выбор, напишу сравнительную производительность разных карт, за базу (1X) пусть выступит 1050. Это позволит вам лучше соотнести мощность с ценой и подобрать оптимум.
1050 1X
1050Ti 1.12X
1060 3Gb 1.95X
1060 6Gb 2.09X
1070 2.91X
1070Ti 3.39X
1080 3.7X
2070 3.9X
1080Ti 4.42X
2080 4.45X
2080Ti 5.79X
Меньше 4 Gb лучше не брать, может оказаться мало даже для простых задач.

Материнская плата:
В выборе материнской плате надо знать следующее — будете ли вы разгонять процессор и сколько видеокарт планируете подключать. Я не являюсь сторонником разгона, но если Вы планируйте выжимать из системы максимум — то обратите внимание на возможность разгона. Более тонкий момент с количеством видекарт, а точнее с количеством PCI-E линий. практически все материнки поддерживают 16 линий для одной видеокарты. Проблемы начинаются при использовании большего количества видеокарт для машинного обучения. Конфигурация 8PCI-E на 8PCI-E для двух видеокарт мне кажется оптимальной для среднего решения. Но если в планах использование только одной видеокарты, то можно и сэкономить не покупая более дорогой сокет.

Жесткий диск:
Бюджетная сборка: берите HDD, скажем на террабайт. Конечно система будет загружаться медленнее чем с ssd. но его можно будет потом докупить. А если сразу выложиться на ssd — то есть опасения что не влезут большие датасеты. Учтите, что на установку всех нужных библиотек и программ вполне может уйти под 100Gb жесткого диска.
В оптимальной сборке предлагается взять SSD + HDD. Некоторые модели SSD-M2 имеют повышенную скорость чтения и записи, по сравнению с обычными SATA3 ssd но с пользовательской стороны значительного ускорения не заметно, однаком любителям топчика — SSD-M2 советую, особенно если оперативной памяти маловато — будет очень быстрый swap.

Охлаждение и корпус:
В бюджетной версии можно обойтись самым простым корпусом, а вот в оптимальном уже стоит задуматься об охлаждении видеокарт/ы и процессора. Если видеокарты всё же две и между ними мало места — то верхняя будет греться ощутимо сильнее. Одно из самый простых и действенных решения — поставить вентилятор аля 140мм сбоку, дующий сразу на видеокарты. Ещё один лайфхак — дабы пыли внутри скапливалось поменьше — рекомендуется вентиляторы на вдув ставить мощнее вентиляторов на выдув.

Блок питания:
Основной параметр — мощность в ватах. Чтобы понять на сколько ватт нужен вам блок, рекомендую в поисковике вбить «power supply calculator» и Вы найдете несколько приятных интерфейсов для расчетов. Для самого бюджетного варианта вполне подойдёт блок на 400-500W, для систем с двумя видеокартами блока на 850W будет достаточно, 850W хватит даже для двух 2080Ti. Для одной 1080Ti или 2080Ti будет достаточно 600W. Для двух средних карт вроде 1070/2070 650/700W тоже будет достаточно. Цены на разные блоки питания скачут существенно, и параметров у них много, но обычно более дорогой блок питания оснащается большим количеством защит и если начинка стоит дорого, лучше взять блок качественнее.

Большинство компонентов можно приобрести на вторичном рынке — это будет заметно дешевле. Конечно, в покупке БУ комплектующих есть некоторый риск, но за те же деньги вы сможете получать результат вычислений быстрее. Меньше всего опасаться можно за процессоры и оперативную память, если они работают — то почти наверняка, при нормальной эксплуатации, они ещё будут работать лет десять.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>