Обновлено 11.12.2019

Вы уже знаете, что создание собственного компьютера для глубокого обучения в 10 раз дешевле, чем использование AWS. Но выбрать правильные детали нетривиально, поэтому давайте подробно рассмотрим то, что вам следует учитывать, плюсы и минусы моей сборки, инструкции по сборке и то, как вы экономите по сравнению с покупкой.
Это часть 2 из 3 серии статей о компьютерах с глубоким обучением. Часть 1 - Почему строительство в 10 раз дешевле, чем аренда в AWS, а часть 3 - Производительность и тесты. Смотрите новые фото и обновления: Следите за мной в Medium и Twitter! Оставляйте мысли и вопросы в комментариях ниже.
Выбираем 4 самые важные части: ЦП, графический процессор, хранилище и память.
В сборке всего 8 компонентов: GPU, CPU, Storage, Memory, CPU Cooler, Motherboard, Power, Case. Первые 4 - самые важные. Во время обучения данные передаются из хранилища в память к графическому процессору, а ЦП помогает на этом пути (манипулирует пакетами и т. Д.). Итак, вы хотите убедиться:
- Ваш процессор может поддерживать все ваши графические процессоры
- Ваш графический процессор достаточно быстр и может вместить модель и пакет данных в памяти
- Память DDR4 достаточно велика, чтобы хранить большинство наборов данных без сжатия.
- Хранилище M.2 PCIe и достаточно большое
Сделайте свой компьютер расширяемым до 4 графических процессоров с правильным процессором
Трудно сказать, сколько графических процессоров вам понадобится, потому что для обучения некоторых моделей требуется 10 часов (CNN Vision, LSTM для обработки естественного языка, Capsule Auto Encoders и т. Д.). Итак, одна из лучших идей - начать с 1 или 2 графических процессоров и добавлять больше графических процессоров по мере продвижения.
Для каждого графического процессора требуется как минимум 8 линий PCIe (официально это 16x, но есть данные, для которых 8x достаточно хорошо, если вы не проводите эксперименты с кросс-графическим процессором). Вам понадобится 4 полосы PCIe для твердотельного накопителя M.2 (который подключается прямо к сети и в 5 раз быстрее, чем SATA3) и еще 4 полосы PCIe для Gigabit Ethernet. Всего это 40 линий PCIe, что немного ограничит выбор вашего процессора. Ваш процессор будет определять, какая материнская плата вам нужна. (Например: ЦП AMD Threadripper = материнская плата с набором микросхем X399, ЦП Intel 7900X = материнская плата с набором микросхем X299 и т. Д.).
Вам понадобится ЦП с 8+ ядрами / 16+ потоками и 40+ линиями PCIe, поскольку это позволяет проводить 4 эксперимента на каждый графический процессор (16 экспериментов, если у вас 4 графических процессора). Обычно модели занимают не менее пары гигабайт памяти графического процессора, поэтому редко можно проводить более 4 экспериментов на каждом графическом процессоре. Наконец, убедитесь, что линии PCIe действительно направляются к слотам расширения.
ЦП AMD дешевле, чем Intel
По состоянию на декабрь 2019 года AMD предлагает более высокую производительность за меньшие деньги. AMD 1920X с 12 ядрами / 24 потоками / 60 линиями PCIe стоит всего 199 долларов! Intel 7900X с 10 ядрами / 20 потоками / 44 линиями PCIe стоит 1000 долларов. Тесты показывают сопоставимую производительность, так что AMD кажется легкой задачей. Второе поколение 2920x от AMD стоит всего 400 долларов. (Раскрытие информации: у меня длинные акции AMD.)
Ваш GPU должен иметь достаточно памяти и быть достаточно быстрым
Память графического процессора работает иначе, чем оперативная память компьютера, поэтому, если у вас недостаточно памяти для вашей модели, вы не сможете тренироваться (а не тренироваться медленно). Время от времени у меня есть модель, для работы которой требуется 10 ГБ +, поэтому, если сомневаетесь, выберите модель с большим объемом памяти.
Графические процессоры Nvidia проще в использовании, чем другие платформы, потому что они имеют большую поддержку инструментов сообщества (Tensorflow, PyTorch и т. Д.). Покупайте карты с вентиляторами типа «обдувка» вместо больших двойных вентиляторов, потому что, если у вас несколько графических процессоров, вам нужно выпускать воздух за пределы коробки. (например, 1080 Ti Founder Edition или 2080 Ti Asus Turbo)
Ваш выбор в основном:
- Сверхвысокий уровень: Titan RTX (24 ГБ / 4608 ядер / 576 тензорных ядер / 2500 долларов США). Вы можете установить только одно из них в нижний слот, потому что Titans не используют нагнетательные вентиляторы.
- Высокий уровень: 2080 Ti (11 ГБ / 4352 ядра / 544 тензорных ядра / 1149 долларов США), 1080 Ti (11 ГБ / 3584 ядра / 500 долларов США используется), 2080 Super (8 ГБ / 3072 доллара США). Ядра / 384 Тензорных Ядра / 730 $)
- Средний: 2070 Super (8 ГБ / 2560 ядер / 320 тензорных ядер / 530 долларов США)
- Младший (лучшее соотношение цены и качества): 2060 Super (8 ГБ / 2176 ядер / 272 тензорных ядра / 410 долл. США)
- Инвентарь GPU очень ограничен, поэтому вам, возможно, придется поискать инвентарь.
Titan RTX - это карта-монстр, которая на ~ 55% быстрее, чем 1080 Ti при 32-битном обучении, и на 135% быстрее в режиме половинной точности из-за дополнительных тензорных ядер и дополнительной памяти, которая позволяет обрабатывать партии гораздо большего размера. 2080 Ti на ~ 40% быстрее 1080 Ti при 32-битном обучении и на ~ 65% быстрее при использовании в режиме половинной точности. Отсюда быстродействие линейно зависит от количества ядер CUDA, поэтому ожидайте, что 1080 Ti будет на ~ 40% быстрее, чем 1080, а 1080 - на 33% быстрее, чем 1070.
Хранение и память должны быть максимально быстрыми
Поскольку вы будете перемещать много данных из хранилища в память, а затем на графические процессоры, вы хотите, чтобы этот конвейер работал как можно быстрее. Используйте M.2 SSD NVMe, который подключается прямо к материнской плате и памяти DDR4.
Важные компромиссы в моей сборке и распространенные ошибки

Вот мой список запчастей с обновленными ценами и инвентарем.
GPU: я изначально выбрал 1080 Ti, потому что прирост скорости на 40% по сравнению с 1080 является значительным, когда вы говорите о 10-часовом времени поезда, а дополнительные 3 ГБ памяти важны при работе с большими моделями. или увеличение скорости обучения с большими размерами пакетов. 1080 Это сейчас сложно найти, поэтому загляните на eBay. Позже я добавил 2080 Ti и Titan RTX в нижний слот. По состоянию на 2020 год 2060 Super - лучшее соотношение цены и качества для стартовой карты.
ЦП: AMD 1920X имеет 12 ядер и 38 МБ кэш-памяти и стоит на 150 долларов дороже, чем у 1900X с 8 ядрами и 20 МБ кеш-памяти. Выделив 2 ядра / 4 потока на каждый графический процессор, а также тот факт, что я мог бы захотеть, чтобы позже машина использовалась в качестве промежуточного сервера, 1920X дает мне немного больше места для передышки.
Хранилище. Я использовал один SSD M.2 емкостью 1 ТБ, мне не нравится хранить данные на разных дисках, а 500 ГБ кажутся маленькими, учитывая, что наборы данных часто составляют десятки гигабайт. Позже я мог бы добавить сверхбольшой вращающийся жесткий диск для «холодного» хранения.
Память: используется четырехканальная память, поскольку 1920X работает быстрее с четырехканальной памятью, чем с двухканальной. Выбрано 4 x 16 ГБ, потому что максимальная поддерживаемая память составляет 128 ГБ, поэтому это простой способ обновления без необходимости удаления микросхем позже. 3000 МГц - это самая быстрая память, совместимая с материнской платой (она разогнана с базовой частоты 2667 МГц).
Блок питания: 1600 Вт P2 достаточно, чтобы покрыть 4 графических процессора по 250 Вт + ЦП 180 Вт + 150 Вт для всего остального и небольшой запас для разгона. Вы не хотите максимально использовать блок питания, потому что вентиляторы включаются как сумасшедшие, когда он работает с высокой нагрузкой.
Корпус: Lian-Li PC-O11AIR, потому что мне нужен корпус с 8 слотами расширения (в большинстве корпусов Mid-Tower их 7, что означает, что вы не можете разместить 4 графических процессора двойной ширины). В сравнении с этим корпусом и Corsair Air этот чехол выглядит лучше и поставляется с пылевыми фильтрами.
Избегайте этих 7 распространенных ловушек
Просмотрите этот список, чтобы убедиться, что ваша сборка прошла проверку.
- Графические процессоры перегревают мой компьютер. Убедитесь, что у вас есть графические процессоры в стиле нагнетателя (версия 2080 Ti называется Turbo от Asus), потому что они выходят через заднюю часть корпуса. Карты типа «Overclock» и «OC» будут иметь 2 больших вентилятора, которые дуют в компьютер и перегреваются. Вам также понадобится вентилятор, который подает холодный воздух прямо на вход графического процессора. Вы можете установить один Titan RTX в нижний слот, если у вашего корпуса есть вентиляционное отверстие внизу, как у O11AIR.
- Недостаточно линий PCIe: вам потребуется как минимум 8 линий PCIe на графический процессор (лучше 16x). Если у вас 4 графических процессора с диском M.2 и Gigabyte Ethernet, это как минимум 40 линий PCIe.
- Моя модель не помещается в память моего графического процессора: большие сверточные сети и LSTM используют много памяти графического процессора, 8 ГБ против 11 ГБ - большая разница.
- Материнская плата не подходит для 4-х графических процессоров: на вашей материнской плате должны быть слоты для 4-х графических процессоров, и между ними должно быть пространство, чтобы использовать все 4. Лучше всего проверить это визуально в Картинках Google. или ищите людей, которые это сделали.
- В корпус не помещается 4 графических процессора: в большинстве корпусов среднего размера в корпусе Tower есть только 7 слотов расширения, поэтому вы не сможете установить 4-й графический процессор двойной ширины в нижний слот. Я нашел только Lian Li и Corsair как варианты.
- Блок питания не имеет достаточной мощности / работает слишком громко: необходимо учитывать графический процессор (~ 250 Вт каждый), ЦП (~ 180 Вт), прочее (~ 150 Вт, материнская плата, вентиляторы и т. д.). Разгон также требует много энергии. Некоторые блоки питания громкие, читайте обзоры в Интернете, чтобы узнать о тишине. Обычно модели с рейтингом 80+ Platinum тише.
- Мой кулер ЦП блокирует первый слот графического процессора. Большие воздушные кулеры, такие как Noctua, иногда блокируют первый слот графического процессора. Найдите других, кто использовал комбо.
Компьютер для глубокого обучения с расширяемым бюджетом за 2 тыс. Долларов
Зная все это, вы можете увидеть, как это расширяемый бюджетный компьютер для глубокого обучения, который стоит 2 тысячи долларов и также может быть расширен до 4 графических процессоров.

Сэкономьте тысячу долларов по сравнению с покупкой
Если вы рассматриваете покупку системы вместо ее создания, вы можете получить систему 4x2080 Ti от Exxact за 7 999 долларов, что является лучшим предложением, которое я нашел ». Система 2x2080 Ti стоит 5 899 долларов. Создание собственной системы с 4 GPU в 2020 году обойдется в общую сумму 6600 долларов: 3000 + 500 долларов (обновление до 2080 Ti) + 3 x 1200 долларов (еще 3 2080 Ti) - 500 долларов (NVMe и RAM в 2020 году дешевле). Так что это на 1400 долларов (~ 20%) дешевле в сборке.
Тем не менее, покупка предварительно созданного программного обеспечения дает такие преимущества, как 3-летняя гарантия, поддержка и предустановленное программное обеспечение. Если вы занятой человек или делаете покупки для академии / компании и хотите упростить себе жизнь, об этом стоит подумать.

Заказ и сборка деталей
Создайте свою сборку на PCPartPicker.com
PCPartPicker очень полезен, потому что он позволяет вам выбирать детали и сообщает вам, есть ли несовместимости, а также дает вам лучшую цену среди нескольких уважаемых продавцов.
Bandh, Adorama, Newegg и Amazon - все они являются авторитетными торговыми посредниками. Если сомневаетесь, проверьте Рейтинги реселлеров.
Сборка деталей занимает несколько часов
Сборка разбивается на следующие 4 этапа: 1) Подготовка корпуса 2) Подготовка материнской платы 3) Установка материнской платы 4) Установка памяти, графического процессора и завершение работы.
Вот короткое видео, как я собираю свой компьютер:
Я также смотрел это видео сборки для X399 / Threadripper, вы, вероятно, найдете похожее видео для своего списка запчастей.
Установите программное обеспечение с помощью онлайн-скриптов и руководств
Если вы будете следовать руководствам, сравнительно легко набрать стек. Если вы не воспользуетесь учебным пособием или неправильным, это будет очень неприятно!
Я установил Ubuntu 16.04 и использовал этот учебник для установки CUDA / CuDNN / Tensorflow. Я думаю, что для Tensorflow уже есть готовый вариант, поэтому вам не нужно компилировать его с нуля.
Расширение до большего количества графических процессоров
Я добавил Titan RTX, 2080 Ti и еще 1080 Ti, и это было действительно просто. Вам нужно будет обновить драйвер Nvidia до nvidia-410, чтобы запустить 2080 Ti.

Тестирование вашего компьютера с глубоким обучением
Перейдите к следующему посту: Почему ваш персональный компьютер для глубокого обучения может быть быстрее, чем AWS, чтобы узнать, что влияет на производительность глубокого обучения и как ваш компьютер будет работать в облаке.
Смотрите новые фото и обновления: Следите за мной в Medium и Twitter!
часто задаваемые вопросы
Почему расширяемость важна для компьютера с глубоким обучением?
Если вы не знаете, сколько мощности графического процессора вам понадобится, лучше всего создать компьютер для глубокого обучения с 1 графическим процессором. и добавляйте больше графических процессоров по мере продвижения.
Вы поможете мне создать его?
С радостью ответим на вопросы в комментариях или по электронной почте. Я также веду www.HomebrewAIClub.com, некоторые из наших членов могут быть заинтересованы в помощи.
Как я могу это изучить?
Стэнфорд раздает большую часть своей учебной программы по компьютерной науке. Так что смотрите туда. Здесь также есть отличные статьи о более передовых исследованиях.
Какие модели я могу обучать?
Вы можете обучать любую модель, если у вас есть данные. Графические процессоры наиболее полезны для глубоких нейронных сетей, таких как CNN, RNN, LSTM, GAN. Некоторые примеры с кодом и наборами данных перечислены на моем сайте thisisjeffchen.com.
Улучшение зрения и фотографий сейчас действительно хорошее, что делает новый iPhone 11 потрясающим.
Больше FAQ: находится внизу страницы здесь.
Во время исследования сборки мне очень помогли другие статьи. Если вам интересно читать дальше, я перечислил их здесь: Сообщение Майкла Рейбеля Боэсена, Сообщение Гоккульната TS, сообщение Юсаку Сако, блог Тима Деттмера, сообщение Винсента Чу, Пьюджет Системные PCIe 16x vs. 8x post, Анализ аренды и покупки QuantStart, Статья Tom's Hardware.
Спасибо моим друзьям Эвану Дарк, Еве Гласрад, Джеймсу Чжану и Джордану Силлу за то, что они прочитали черновики этого документа.