Соберите 3 мощные рабочие станции с 2080Ti всего за 6200 долларов США.

машинное обучение глубокое обучение

Из L7 Кертиса Норткатта, составленного Heart of the Machine.

Если вы хотите сделатьглубокое обучениеДля обучения RTX 2080Ti — самая экономичная карта в новом поколении графических процессоров Nvidia (см.:Опубликованы результаты первого обзора глубокого обучения Titan RTX: какой графический процессор выбрать в 2019 году?). Но даже если его нет на Титане, GPU за 9000 юаней — это очень дорого. В этой статье Кертис Норткатт из Массачусетского технологического института находит самый простой способ построить рабочую станцию ​​для глубокого обучения с тремя процессорами 2080Ti.

В его конфигурации вся система стоит 6 200 долларов (около 41 700 юаней), что составляет половину стоимости всей машины, предоставленной поставщиком оборудования для искусственного интеллекта Lambda Labs. Как собрать мощнейший компьютер для лаборатории, давайте посмотрим, как он это сделал.

Я построил рабочую станцию ​​глубокого обучения с несколькими графическими процессорами в лаборатории квантовых вычислений Массачусетского технологического института и лаборатории цифрового обучения. При поиске в Интернете я обнаружил, что нет статьи, подробно описывающей все детали установки.

Тем не менее, я нашел поставщиков «под ключ», таких как рабочие станции Lambda GPU. Единственная загвоздка: такая машина стоит 12 500 долларов. Это идеальная установка для первоклассных исследований в области глубокого обучения, но ничего, если вы не можете себе это позволить. В этом посте я собираюсь представить версию моей сборки — с той же или лучшей конфигурацией и с экономией более половины: всего 6200 долларов. Чтобы помочь всем исследователям, в этом посте я поделюсь всеми деталями конфигурации.

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

В конце статьи я привожу сравнение времени и затрат на самосборную машину и виртуальную машину глубокого обучения Google Compute Engine (GCE). В качестве эталона я использовал обучение PyTorch ImageNet/ResNet50.

Идеальная конфигурация?

Идеальной конфигурации не существует, потому что потребности у всех разные. Даже если она появилась в прошлом, оптимальная конфигурация будет меняться по мере внедрения нового оборудования. Итак, в этой статье мы попытаемся дать наилучшую возможную конфигурацию.

Все компоненты рабочей станции для глубокого обучения

Ниже приведен весь список.

Все компоненты, которые я заказал, были куплены онлайн в Newegg, хотя другие источники, такие как Amazon, нас вполне устраивали. Если вы хотите пойти в Electronic City, чтобы найти что-нибудь подешевле, попробуйте и это.

Все компоненты рабочей станции для глубокого обучения.

По состоянию на 31 января 2019 года каждый компонент и его цена следующие:

  • 3 графических процессора EVGA Nvidia RTX 2080 Ti

  • EVGA GeForce 2080 Ti, 3570 долларов (1190 долларов за штуку)


  • 20-поточный ЦП (центральный процессор)

  • Intel Core i9 9820X ​​Skylake X 10 Core 3,3 ГГц, 850 долларов


  • Материнская плата X299 (все остальные компоненты подключены к материнской плате)

  • ASUS WS X299 SAGE LGA 2066 Intel X299, 492 доллара


  • Шасси

  • Коллекция Corsair Carbide Air 540, 130 долларов.


  • Твердотельный накопитель M.2 емкостью 2 ТБ

  • Intel 660p Series M.2 2280 2 ТБ PCI-Express, 280 долларов США


  • Механический жесткий диск емкостью 3 ТБ (для хранения файлов, не чувствительных к скорости)

  • Seagate BarraCuda ST3000DM008 3 ТБ, 7200 об/мин, 85 долларов


  • 128 ГБ памяти

  • 4 Corsair Vengeance LPX 32 ГБ, 740 долларов (185 долларов за штуку)


  • блок питания 1600Вт

  • EVGA SuperNOVA 1600 Вт P2, 347 долларов (цикл питания 1300 Вт во время тестов ImageNet/ResNet50)


  • радиатор

  • Corsair Hydro Series H100i PRO Low Noise Edition, $110

Приобретенный с членской учетной записью на Newegg, общая стоимость всех компонентов, за исключением GST, составляет 6200 долларов США (еще 107 долларов США за модернизированный блок питания).

Представление рабочей станции глубокого обучения.

Рекомендации по каждому компоненту

При выборе таких компонентов, как графический процессор, оперативная память, процессор и материнская плата, необходимо помнить о трех целях:

  1. Максимальная скорость и мощность

  2. Избегайте узких мест между компонентами

  3. стоит меньше

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

GPU

  • По результатам тестирования RTX 2080 Ti — лучший графический процессор в ценовом диапазоне 2500 долларов.

  • Пожалуйста, купите неоригинальный графический процессор (например, EVGA или MSI) вместо Nvidia Founders Edition.

  • Остерегайтесь проблем с перегревом RTX 2080 Ti.

  • Рабочая станция не использует графический процессор с вентилятором (который дешевле), но графический процессор с турбовентилятором может работать лучше.

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

Если вам нужен высокопроизводительный GPU, рекомендую не отвлекаться на маркетинг и сразу брать RTX 2080 Ti. Если вы хотите провести собственное исследование и выбрать недорогой графический процессор, вы можете выполнить поиск на сайте videocardbenchmark.net и выбрать самый производительный графический процессор в своем ценовом диапазоне. Если ваш бюджет не превышает 2500 долларов, RTX 2080 Ti — лучший вариант. Если производительность упадет на 30%, вы можете купить более дешевую RTX 2080 или более старую GTX 1080 Ti. Для лучшего глубокого обучения я рекомендую покупать графический процессор с оперативной памятью не менее 11 ГБ, что и есть у RTX 2080 Ti.

При покупке RTX 2080 Ti вы заметите на рынке множество соответствующих брендов: EVGA, Gigabyte, Asus, MSI и другие. Это так называемые послепродажные графические процессоры (непубличные версии). Вы также можете сразу купить Nvidia's Founders Edition. В общем, если вам нужна лучшая производительность, не покупайте версию для основателей. Чтобы оптимизировать производительность, такие компании, как EVGA, разрабатывают графический процессор на заказ и иногда разгоняют его. Издание Founders — это первая попытка, а не лучшая. Непубличные графические процессоры обычно имеют от одного до трех вентиляторов, предположительно, чем больше вентиляторов, тем выше производительность. Некоторые из них — просто маркетинговые уловки, и обычно достаточно двух вентиляторов. Главный совет здесь: купите непубличный GPU от EVGA, Gigabyte, Asus или MSI.

Обратите внимание, что существует множество брендов неоригинальных графических процессоров с разной ценой. Разогнанные графические процессоры, как правило, дороже, но обычно идут на некоторые компромиссы, которые на самом деле не улучшают производительность. Обычно можно просто купить самый дешевый.

Некоторые клиенты жаловались на проблемы с перегревом RTX 2080 TI. Я построил свою рабочую станцию ​​только с тремя графическими процессорами, чтобы увеличить поток охлаждающего воздуха. Если нет проблем, я бы добавил четвертый графический процессор RTX 2080 TI.

Я использую графические процессоры с открытыми вентиляторами (вентиляторы находятся в нижней части каждого графического процессора) на моей сборочной станции, потому что они стоят дешевле. Турбовентиляторный графический процессор отводит поток воздуха от боковой части корпуса для повышения производительности. В случае материнской платы, которую мы использовали, графический процессор был сильно сжат, что не позволяло открытому вентилятору графического процессора направлять поток воздуха. Если вы приобрели турбовентиляторный графический процессор, вентиляторы могут направлять поток воздуха сбоку корпуса.

Твердотельный накопитель SSD

  • Миграция данных SSD GPU является основным узким местом для обучения и прогнозирования глубокого обучения.

  • Твердотельные накопители m.2 в 6 раз быстрее, чем стандартные твердотельные накопители.

  • Если у вас достаточно бюджета, купите SSD m.2. Вам нужна материнская плата, совместимая с m.2.

Миграция данных с жесткого диска на GPU — основное узкое место глубокого обучения, которое может сильно замедлить скорость обучения и тестирования. m.2 SSD может решить эту проблему. Самый дорогой SSD имеет скорость записи 3500 МБ/с, а стандартный SSD имеет скорость записи 500 МБ/с.

Я купил более дешевый твердотельный накопитель m.2 для создания рабочей станции со скоростью записи около 1800 МБ/с, но большей емкостью — 2 ТБ. Возможно, вам будет полезнее купить твердотельный накопитель m.2 меньшего размера на 256 МБ, поскольку он быстрее записывает и стоит дешевле. Это действительно отличный способ получить лучшую производительность за меньшие деньги. Единственное предостережение заключается в том, что вы хотите убедиться, что все тренировочные данные могут поместиться на твердотельном накопителе m.2.

системная плата

  • Для поддержки нескольких графических процессоров необходимо достаточное количество линий PCI-E.

  • Это означает, что вам нужна материнская плата x299 (процессор Intel) или x399 (процессор AMD).

  • Вы можете выбрать более дешевую, но если у вас ограниченный бюджет, подумайте о материнской плате для рабочей станции.

Материнские платы трудно купить, потому что существует так много вариантов, что многие люди не знают, почему одни материнские платы намного дороже других. Для глубокого обучения наиболее важным аспектом материнской платы является количество линий PCI-E. В рабочей станции, которую я построил, материнская плата имеет 44 линии PCI-E. Это означает, что если есть 3 графических процессора (по 16 каналов каждый), я могу запустить два графических процессора на 32 каналах (по 16 каналов на каждом) и 1 графический процессор на 8 каналах (всего требуется 40 каналов). Большинство тестов показывают незначительную разницу в производительности при работе графического процессора на 8 и 16 каналах, но в будущем эта разница может быть больше. По крайней мере, убедитесь, что на вашей материнской плате достаточно линий PCI-E для минимального количества, необходимого для каждого графического процессора. Таким образом, для 3 графических процессоров RTX 2080 TI требуется не менее 24 линий PCI-E.

Еще одно соображение заключается в том, какую материнскую плату выбрать: x299 (процессор Intel) или x399 (процессор AMD). Процессоры Intel быстрее на поток обработки, но процессоры AMD, как правило, дешевле, чем процессоры Intel для того же количества потоков обработки. Я выбрал процессор Intel (20 потоков и более быстрая обработка), поэтому мне нужна была материнская плата x299.

Более надежные (и более дорогие) материнские платы часто называют материнскими платами для рабочих станций. Стоит ли повышенная надежность высокой цены, все еще обсуждается. При сборке я выбрал материнскую плату для рабочих станций, но если вы ищете более дешевый вариант, рассмотрите материнскую плату SUPERMICRO x299. Он делает все, что мне нужно, но стоит на 100 долларов дешевле.

CPU

  • Выберите между Intel X-Series (материнские платы x299) или AMD ThreadRipper (x399).

  • Процессоры Intel быстрее на поток, но процессоры AMD поддерживают больше потоков при той же стоимости.

Выберите ЦП в зависимости от ваших вычислительных потребностей, ответив на следующие вопросы:

  1. Вам нужно выполнить много многопоточной работы?

  2. Вам нужно, чтобы каждый поток работал быстро?

Если (1) — «да», а (2) — (нет), то вы можете выбрать AMD Ryzen Threadripper 2950X с 32 потоками по более низкой цене. Если ответ на второй вопрос «нужно», то вы можете выбрать процессор Intel.

Для процессоров Intel необходимо выбрать основной процессор Intel серии X для глубокого обучения с несколькими графическими процессорами. Только процессоры серии X поддерживают материнские платы x299, и только материнские платы x299 имеют достаточно линий PCI-E для поддержки нескольких графических процессоров. Если вы используете только 2 графических процессора, вы можете снизить стоимость материнской платы + процессора и выбрать более дешевый процессор Intel 300-й серии и материнскую плату LGA 1151 (вместо x299). Это позволяет вам запускать один графический процессор на 16 линиях PCI-E, а затем другой графический процессор на остальных 8 линиях (большинство материнских плат LGA 1151 имеют 24 линии PCI-E, но перепроверьте при покупке).

Шасси

  • Выберите корпус, подходящий для вашей материнской платы (ATX — стандартный размер, mini-ATX — меньше).

  • Выберите корпус с местом для вентиляции, чтобы ваш графический процессор оставался прохладным.

  • Корпус Carbide Series™ Air 540 High Airflow ATX Cube — это хорошая рабочая станция для глубокого обучения.

Для рабочих станций с несколькими графическими процессорами первостепенное значение имеют воздушный поток и охлаждение. Выберите корпус, который подходит для вашей материнской платы. Большинство материнских плат, использующих несколько графических процессоров, имеют формат ATX, поэтому вы можете выбрать корпус, подходящий для материнской платы ATX. Если вы не знаете, какой корпус купить, корпус Carbide Series™ Air 540 High Airflow ATX Cube — отличный выбор.

Накопитель на жестком диске

Если твердотельный накопитель m.2 не может удовлетворить ваши потребности в хранении, купите механический жесткий диск на 7200 об/мин.

Если твердотельный накопитель m.2 слишком мал для ваших потребностей в хранении, вы можете купить механический жесткий диск. Он дешевле и поставляется с двумя скоростями: 5400 об/мин (медленнее) и 7200 об/мин (быстрее). RPM означает обороты в минуту, эти диски физически вращаются внутри компьютера, поэтому будет шум. Механические жесткие диски дешевле, вы можете купить 7200 RPM.

ОЗУ

  • Купите память с малым интервалом (ОЗУ) и убедитесь, что она подходит для вашего корпуса.

  • Не покупайте бренды, о которых вы не слышали.

Что касается оперативной памяти, вам необходимо учитывать ее емкость, физический размер и задержку. Созданная мной рабочая станция использует 128 ГБ ОЗУ, но вы можете уменьшить объем до 64 ГБ или 32 ГБ в зависимости от размера набора данных. Если у вас достаточно денег, я рекомендую купить 128 ГБ ОЗУ, чтобы при обучении модели глубокого обучения вы могли загрузить весь набор данных в память и избежать узких мест жесткого диска ОЗУ в каждой эпохе.

Для рабочих станций с несколькими графическими процессорами обязательно покупайте оперативную память с малым зазором (меньшее шасси), где зазор — это высота оперативной памяти. На материнской плате происходит много всего, и иногда большая оперативная память корпуса может блокировать другие компоненты. Corsair Vengeance — хорошая оперативная память с малым зазором.

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

Блок питания (блок питания)

  • Убедитесь, что ваш блок питания может обеспечить достаточную мощность. Справочный калькулятор блока питания: https://outervision.com/power-supply-calculator

  • Каждой RTX 2080 Ti требуется около 300 Вт потребляемой мощности.

  • Выбирайте полные моды, потому что меньше кабелей означает больший поток воздуха.

  • Мой блок питания 1300 Вт заставляет рабочую станцию ​​перезагружаться при максимальной нагрузке, 1600 Вт лучше для этой рабочей станции.

Вы можете увидеть золотой блок питания против платинового блока питания. Это относится к металлу, используемому блоком питания, платина> золото> серебро> бронза> основной, и это связано с производительностью блока питания. Например, блок питания из бронзы потребляет больше энергии, чем блок питания из платины при том же объеме вычислений. Если вам нужно подумать об экономии энергии (и в то же время об экологичности), подумайте о покупке платинового или золотого блока питания.

Что касается рабочей станции, описанной в этой статье, я изначально купил блок питания Seasonic PRIME мощностью 1300 Вт, но когда я провел распределенное обучение PyTorch ImageNet/ResNet50 и максимизировал все графические процессоры, рабочая станция была на грани перезапуска. Поэтому я перешел на EVGA SuperNOVA 1600 P2, и эти проблемы были решены. Обратите внимание, что блок питания мощностью 1300 Вт можно было использовать, когда я использовал sudo nvidia-smi -pl 180, чтобы снизить мощность графического процессора с 250 Вт до 180 Вт. Тем не менее, я по-прежнему рекомендую блок питания мощностью 1600 Вт, иначе он будет ограничивать скорость графического процессора.

система охлаждения

  • Как правило, для охлаждения графического процессора достаточно приличного воздушного потока и правильной прокладки кабелей.

  • Высокопроизводительное (i9 X-серия) охлаждение ЦП с Corsair h100i в порядке.

  • Тем не менее, по возможности держите машину в прохладном помещении с кондиционером.

От охлаждающих вентиляторов до полносистемного водяного охлаждения — у вас есть множество вариантов. Как правило, если корпус большой и укладка кабелей правильная, то вам не нужно слишком много причудливых вещей. Я построил рабочую станцию ​​без процессорного кулера, я использовал Corsair h100i, который входит в стандартную комплектацию рабочих станций глубокого обучения. Менее дорогой вариант — процессорный кулер Noctua NH-U9S. Причина, по которой я не купил его, заключается в том, что он слишком большой и может заблокировать некоторые слоты оперативной памяти. Если вам нужно только 32 ГБ оперативной памяти, вы можете выбрать этот охлаждающий вентилятор.

Сравнение с Google Compute Engine

Я сравнил эту машину с виртуальной машиной глубокого обучения Google Compute Engine (GCE). Говорят, что эти виртуальные машины созданы специально для оптимизации глубокого обучения. Виртуальная машина глубокого обучения GCE использует версии CUDA и драйверы, созданные из исходного кода и оптимизированные для ее аппаратной архитектуры. Виртуальная машина GCE не имеет графического процессора Nvidia RTX 2080 Ti, поэтому вместо нее я использовал Tesla K40. В зависимости от тестовой задачи Nvidia RTX 2080 Ti может превзойти GPU Tesla K40 в 2–4 раза. Честно говоря, я сравнил одну RTX 2080 Ti на этом устройстве с 4 Tesla K40 на виртуальной машине GCE.

Для бенчмаркинга я использовал распределенный случай PyTorch ImageNet. Я загрузил обучающие и проверочные наборы ImageNet 2012 и запустил следующий код на своем личном компьютере и виртуальной машине глубокого обучения GCE:

python examples/imagenet/main.py -a resnet18 --lr 0.1 --dist-url 'tcp://127.0.0.1:FREEPORT' --dist-backend 'nccl' --multiprocessing-distributed --world-size 1 --rank 0 "/location/where/I/stored/imagenet/"

Спецификации виртуальной машины глубокого обучения GCE

Спецификации виртуальной машины, которую я создал, следующие:

  • Архитектура: 64-битная, x86_64

  • Количество графических процессоров K40: 8

  • Память: 394 ГБ

  • Оперативная память: 172 ГБ

  • Количество потоков процессора: 24

Контрольный показатель времени обучения ImageNet

Сравнение времени обучения для 1 эпохи:

  • Время обучения 1 эпохи на 1 RTX 2080 TI на рабочей станции, которую я построил: 37,5 минут.

  • Время обучения 1 эпохи с 4 графическими процессорами Tesla K40 на виртуальной машине GCE: 86,3 минуты.

Эти значения усреднены по 50 эпохам обучения. Код для запуска такой же, как и выше, никакие другие процессы не запускаются ни на одной машине.

Стоимость обучения GCE за эпоху

Архитектура GCE, которую я использую, не является самой экономичной, а затраты на обучение составляют:

4 графических процессора Tesla K40 стоят 12,77 долларов США для обучения 1 эпохи

Таким образом, обучение ImageNet на 100 эпох с графическими процессорами Tesla K40 будет стоить около 1277 долларов. А для всей виртуальной машины это будет стоить около $21/час.

Сравнение с рабочей станцией Lambda с 4 GPU

Рабочие станции, которые я создаю, предназначены для оптимизации соотношения цены и производительности. Если вы хотите создать рабочую станцию, которая лучше подходит для Lambda 4-GPU, вот несколько советов, которыми поделился генеральный директор Lambda Стивен Балабан на Reddit:

  • Добавьте дополнительный турбовентиляторный графический процессор (1349 долларов США)

  • Добавьте 159 долларов США, чтобы обновить все 3 графических процессора до турбовентиляторных графических процессоров (всего 477 долларов США).

  • Добавьте отсек для дисков с возможностью горячей замены (50 долларов США)

  • Добавьте блок питания 1600 Вт (107 долларов США)

  • Обновите свой процессор с 10 ядер до 12 ядер (189 долларов США)

  • Оригинальная рабочая станция, указанная выше, стоила 6200 долларов.

После внесения вышеуказанных корректировок общая стоимость всей рабочей станции составляет около 8372 долларов, что примерно на 4000 долларов меньше, чем у рабочей станции Lambda.

разное

Я использую ОС Ubuntu Server 18.04 LTS, и я использую TensorFlow Cuda 10.1 (установлен из исходного кода) и PyTorch. Когда я использовал эти три графических процессора на максимальной мощности в течение длительного периода времени, я обнаружил, что верхний графический процессор перегревается и тормозит, что приводит к падению производительности на 5-20%. Это может быть связано с конструкцией графического процессора с двумя вентиляторами. Если вас это беспокоит, рекомендуется использовать турбовентиляторный графический процессор, чтобы избежать перегрева и дросселирования.