Внешний вид готовой сборки
Внешний вид готовой сборки

Как сказал бы ныне великий классик. Собственная рабочая станция для Ml - это не роскошь, а средство для обучения. Да и к тому же арендованный сервер - это не всегда удобно, быстро и безопасно.

Начнем с обзора недорогих вариантов платформ для сборки

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

AMD TR4 - Платформа для энтузиастов предыдущего поколения, вышедшая в 2017. Несмотря на солидный возраст, остаётся пожалуй, самым производительным решением за вменяемую цену. Поддерживает процессоры Ryzen Threadripper 1-го и 2-го поколений.

  • Плюсы:

    Много ядер, до 32 на AMD Threadripper 2990WX.
    На материнских платах, как правило, множество всевозможных слотов расширения.
    Линий PCI-e до 64 на процессор.
    Неплохая однопоточная производительность.

  • Минусы:

    PCI-e версии 3.
    Цена выше десктопных платформ.
    Максимальный объем памяти 128ГБ.

AMD AM4 - Актуальная десктопная платформа, вышедшая в 2017. Поддерживает процессоры Ryzen с 1-го до 5-го - поколений.

  • Плюсы:

    Хорошая однопоточная производительность у процессоров 5-го поколения.
    PCI-e версии 4 у процессоров 5-го поколения на 500 чипсетах.

  • Минусы:

    Мало линий PCI-e до 24 на процессор.
    Максимальный объем памяти 128ГБ.

Intel LGA 2011v3 - Серверная платформа, вышедшая в 2014. Поддерживает процессоры Xeon E5 3-го и 4-го поколений. Не смотря на почтенный возраст, остаётся весьма актуальной из - за наличия недорогих Китайских материнских плат и процессоров.

  • Плюсы:

    Низкая цена. как процессоров, так и материнских плат.
    Возможность 2х процессорной конфигурации.
    Линий PCI-e до 40 на процессор.
    Максимальный объем памяти до 512 ГБ, на двухпроцессорных китайских платах.

  • Минусы:

    Не смотря на то, что китайские материнские платы кажутся новыми, чипсет на них, как правило, б/у.
    Низкая однопоточная производительность.
    PCI-e версии 3.

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

Рассмотрим подробнее состав собранной системы

*Цены комплектующих округлены для простоты подсчета.

В качестве материнской платы была выбрана Huananzhi X99 F8D Plus за 12000 рублей.

Внешний вид материнской платы
Внешний вид материнской платы
  • Из особенностей платы можно выделить:

    Большие размеры EATX 31x33 см.
    6 полноценных слотов pci-e.
    3 слота nvme.
    10 sata портов.
    Хорошая подсистема питания  процессора.
    Поддержка 8 канального режима работы оперативной памяти.

Xeon 2696v4
Xeon 2696v4

Были выбраны самые производительные процессоры под этот сокет 22 ядерные Xeon 2696v4 (аналог 2699v4) за 2 штуки 24000 рублей.

Память приобретена б/у 8 планок по 16Gb DDR4 ECC Reg за 8 планок 16000 рублей.

Итого стоимость основы для будущей ML станции составила: 52000 рублей.

Примерная стоимость двух других платформ со схожими характеристиками и объемом памяти:

AM4 с Ryzen 7 5950x: 90000 рублей.

TR4 с Threadripper 2990WX: 170000 рублей.

Перейдем к остальным компонентам сборки

В качестве корпуса за свои размеры и демократичную цену был выбран: Phanteks Enthoo Pro 2 Black за 12000 рублей.

Блок питания с запасом на будущее: Xilence Performance X XP1250MR9 1250W за 12000 рублей.

Накопитель m2 для быстрой подгруздки данных: Adata m2 XPG Gammix s11 pro на 1Тб за 9000 рублей.

Для длительного хранения данных: Жесткий диск WD Purple на 3Тб за 8000 рублей.

Охлаждение процессора: PCCooler GI-H58UB 2 х 2500 рублей.

Набор вентиляторов для корпуса Arctic P12 Value pack 5pc 2 х 2000 рублей.

Хаб на 10 вентиляторов: Arctic Case Fan Hub 10 Port за 1000 рублей.

В качестве видеокарт, наиболее подходящих для ML за соотношение цены к объему памяти, на мой взгляд, являются Nvidia RTX 3060 12Gb. Две RTX 3060 MSI Ventus 2 обошлись в 80000 рублей.

Вид готовой сборки внутри
Вид готовой сборки внутри
Тесты в синтетике
CPU-Z
CPU-Z
AIDA64 Memory
AIDA64 Memory
AIDA64 CPU Queen
AIDA64 CPU Queen
AIDA64 FPU Julia
AIDA64 FPU Julia

В целом результатам синтетических получились достойные результаты.

Общая стоимость системы составила: 183000 рублей.

Тесты на реальной ML задаче

Сравним производительность полученной сборки с сервером с двумя RTX 3090 в задаче обучения модели синтеза FastPitch от Nvidia.

Синтез обучался на 29 часах звука, разделенного на семплы от 1 до 15 секунд в течении 1000 эпох со смешанной точностью. Cуммарный BATCH был равен 256.

Параметры batch size для карт были следующими:

  • Для 3060:

    NUM_GPUS = 2
    BATCH_SIZE = 16
    GRAD_ACCUMULATION = 8

  • Для 3090:

    NUM_GPUS = 2
    BATCH_SIZE = 32
    GRAD_ACCUMULATION = 4

Собранная платформа получилось достаточно производительной. Переподготовка датасета с извлечением pitch и mels в 44 потока заняла около 2 часов.

  • Пара 3060 справились с задачей за 48 часов.

  • Пара 3090 справились с задачей за 21 час.

Пример получившегося синтеза (FastPitch + HiFiGAN):

В качестве заключения

3060 показали достойную производительность, оказавшись в 2.3 раза медленнее, чем 3090, что весьма не плохо, учитывая более чем 3х кратную разницу в цене между ними.

Пара 22 ядерных процессоров для обучения без онлайн аугментации и/или конвертации датасета, скорее всего, будет избыточна, и их мало где можно будет полностью нагрузить. Вполне можно сэкономить 20000 рублей, заменив процессоры на 12 ядерные Xeon e5-2650v4.

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

Комментарии (17)


  1. webwork
    09.10.2022 10:05

    Здравствуйте, хотел бы вопрос задать по этой теме. Я еще совсем новичок, возможно, вопрос некорректен.
    Я знаю, что существуют удаленные решения. Возможно ли обучить подобное на удаленных решениях и будет это дешевле, если использовать это не так часто, скажем 2-3 в месяц?


    1. Areso
      09.10.2022 10:14
      +1

      в перспективе это будет всегда дороже, чем иметь своё

      Другой момент, что при таком профиле нагрузки своя сборка окупится через год-полтора, а денег требует уже сейчас.

      Вот, к примеру, один из вариантов с посуточной арендой:

      https://selectel.ru/services/gpu/?section=dedicated

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


    1. WondeRu
      09.10.2022 10:38

      Мы используем AWS Batch с GPU-серверами. Платим поминутно, тк для задачи создается виртуалка, а потом сразу грохается. Из хорошего: можно параллельно поднять 20 машин, если пришло много запросов. Из плохого: временные затраты на поднятие виртуалок, закачивание на них докер-образа (а для ML они все по 4-6Гб) и запуск этого образа.


      1. vconst
        09.10.2022 11:29

        Не получается держать одну виртуалку и масштабировать ее новомодными обычными технологиями по необходимости?


        1. WondeRu
          09.10.2022 14:40
          +1

          Нет, это сложнее, все уже придумано за нас)


    1. DonAgosto
      09.10.2022 11:43

      на удаленных решениях и будет это дешевле
      У всех облачных провайдеров есть калькуляторы примерных расходов — не сложно прикинуть для своих требований.
      Пару лет назад на Google за одну машину с 8CPU, Tesla A100 и нагрузкой <10 час в месяц набегало что-то около 30 USD. После каждой работы машинку конечно сохраняли в образ и прибивали. Хранили там же в облаке, но за хранение образа вобще какие-то копейки платили.
      Плюс у многих есть бесплатный период (Free Tier, обычно год) — не все ресурсы подпадают, но для некоторых задач вполне хватает и можно прилично сэкономить


    1. Hardcoin
      09.10.2022 12:25
      +3

      Если вы хотите обучить что-то готовое, которое точно заработает, то удаленные решения подходят. Если проводить эксперименты с архитектурами и вообще учиться ML, то запускать/останавливать несколько раз в день (что бы не капали деньги, пока дописываешь код) менее удобно.

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


  1. ShaggyCat2
    09.10.2022 11:48
    +1

    Два процессора-то зачем были изначально? Другими словами в чем была идея поставить двухпроцессорную мать?


    1. Slava715 Автор
      09.10.2022 11:49

      Во-первых хотелось восьми канальную память и серверный чипсет, на однопроцессорных платах Китайцы часто его от декстопа лепят.

      Во вторых много разъемов pci-e и nvme, с большим количеством выделенных на них линий, потому что часть слотов относиться к первому процессору, а часть ко второму. Есть планы добавить еще карт и накопителей.


  1. Shado_vi
    09.10.2022 12:13

    не раз встречалось упоминание, в том числе на хабре, что L3 кеш процессорных в многопроцессорных сборках общий. а это наверняка просадки производительности.
    у msi нахваливают систему охлаждения у моделей gaming x и разрыв цены с Ventus не такой большой. почему конкретно был выбран Ventus?
    какие процессоры вы рассматривали к покупке под сокет?


    1. Slava715 Автор
      09.10.2022 12:36
      +1

      До этого была однопроцессорная сборка с e5-2678v3, в сравнении с ней замелил только явный прирост без просадок.

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

      Лучше брать e5v4, они существенно холоднее и немного быстрее по скорости на ядро, из недорогих Xeon e5-2650v4 за 2000 рублей вполне неплохой вариант.


      1. Shado_vi
        09.10.2022 14:16

        если не путаю то avx-512 на v3 если задействуется то сразу на всех ядрах, на v4 процессоры умеют использовать только на нужных ядрах. задействуя avx-512 в не профильных вычислениях могут вызвать просадку. какие ещё тонкости существуют?(риторически)


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


        конкретна по видеокартам Ventus и gaming x то там интересно как покрывает и отводит тепло радиатор. на Ventus как и у др. производителей на этом сильно экономят.


        e5v4 чем v3 больше кеша, доступна более быстрая память(более дорогая), оптимизирована использование avx-512, меньше TDP, больше ядер и меньшая частота на ядро.


  1. Alexsey
    09.10.2022 12:28
    +2

    Для поиграться - сойдет, но покупать китайскую мать для решения на котором именно работать надо и получать нормальные результаты - ну такое себе. Не знаю что там на 2011v3 сейчас, но б/у supermicro для оригинального 2011 я года 4 назад на ебей взял баксов наверное за 250 вместе с процессорами.

    Такое бешеное количество вентиляторов опять же абсолютно не нужно и еще не факт что хорошо влияет на охлаждение.


    1. n_bogdanov
      10.10.2022 16:42

      Поддержку. Не знаю зачем нужен хуанан, если даже на авито можно купить новый supermicro, причём даже оптимизированные для ml в пределах 40000. При том, что там не будет никаких проблем, а лок турбобуста у них заявлен с завода.


  1. zartdinov
    09.10.2022 23:59

    Тоже решил собрать, но на RTX 2060 12GB, не знаю насколько хорошая идея. Понятно, что разница по цене c RTX 3060 небольшая и архитектура прошлая. Но вроде тензорных ядер в 2 раза больше и материнская плата тоже все равно не поддерживает PCI-e 4. Посмотрим, купил пока одну штуку, может куплю еще одну из 3000 серии для сравнения.

    Процессор собираюсь один серверный LGA 2066 и материнку 8 PCI-e слотов, дорого, но хочу с запасом, если другие видеокарты буду покупать. Для моих моделей 12 GB это много, хочу именно проводить опыты на нескольких видеокартах.


  1. shamash
    10.10.2022 08:31
    +1

    Простите за нубский вопрос, но вы не прикидывали водяное охлаждение насколько оно оправдано или вам не критичен шум поэтому вы даже не считали?


  1. Slava715 Автор
    10.10.2022 08:44
    +1

    Я думаю водяное охлаждение это хорошая идея, под нагрузкой даже пара 3060 неплохо подогревает вышестоящие процессоры.

    Особенно актуально оно будет если ставить пару горячих 3090, в не турбо исполнении.

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