Обновлено 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 распространенных ловушек

Просмотрите этот список, чтобы убедиться, что ваша сборка прошла проверку.

  1. Графические процессоры перегревают мой компьютер. Убедитесь, что у вас есть графические процессоры в стиле нагнетателя (версия 2080 Ti называется Turbo от Asus), потому что они выходят через заднюю часть корпуса. Карты типа «Overclock» и «OC» будут иметь 2 больших вентилятора, которые дуют в компьютер и перегреваются. Вам также понадобится вентилятор, который подает холодный воздух прямо на вход графического процессора. Вы можете установить один Titan RTX в нижний слот, если у вашего корпуса есть вентиляционное отверстие внизу, как у O11AIR.
  2. Недостаточно линий PCIe: вам потребуется как минимум 8 линий PCIe на графический процессор (лучше 16x). Если у вас 4 графических процессора с диском M.2 и Gigabyte Ethernet, это как минимум 40 линий PCIe.
  3. Моя модель не помещается в память моего графического процессора: большие сверточные сети и LSTM используют много памяти графического процессора, 8 ГБ против 11 ГБ - большая разница.
  4. Материнская плата не подходит для 4-х графических процессоров: на вашей материнской плате должны быть слоты для 4-х графических процессоров, и между ними должно быть пространство, чтобы использовать все 4. Лучше всего проверить это визуально в Картинках Google. или ищите людей, которые это сделали.
  5. В корпус не помещается 4 графических процессора: в большинстве корпусов среднего размера в корпусе Tower есть только 7 слотов расширения, поэтому вы не сможете установить 4-й графический процессор двойной ширины в нижний слот. Я нашел только Lian Li и Corsair как варианты.
  6. Блок питания не имеет достаточной мощности / работает слишком громко: необходимо учитывать графический процессор (~ 250 Вт каждый), ЦП (~ 180 Вт), прочее (~ 150 Вт, материнская плата, вентиляторы и т. д.). Разгон также требует много энергии. Некоторые блоки питания громкие, читайте обзоры в Интернете, чтобы узнать о тишине. Обычно модели с рейтингом 80+ Platinum тише.
  7. Мой кулер ЦП блокирует первый слот графического процессора. Большие воздушные кулеры, такие как 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.

Спасибо моим друзьям Эвану Дарк, Еве Гласрад, Джеймсу Чжану и Джордану Силлу за то, что они прочитали черновики этого документа.