Как сказал бы ныне великий классик. Собственная рабочая станция для 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 канального режима работы оперативной памяти.
Были выбраны самые производительные процессоры под этот сокет 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 рублей.
Тесты в синтетике
В целом результатам синтетических получились достойные результаты.
Общая стоимость системы составила: 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)
ShaggyCat2
09.10.2022 11:48+1Два процессора-то зачем были изначально? Другими словами в чем была идея поставить двухпроцессорную мать?
Slava715 Автор
09.10.2022 11:49Во-первых хотелось восьми канальную память и серверный чипсет, на однопроцессорных платах Китайцы часто его от декстопа лепят.
Во вторых много разъемов pci-e и nvme, с большим количеством выделенных на них линий, потому что часть слотов относиться к первому процессору, а часть ко второму. Есть планы добавить еще карт и накопителей.
Shado_vi
09.10.2022 12:13не раз встречалось упоминание, в том числе на хабре, что L3 кеш процессорных в многопроцессорных сборках общий. а это наверняка просадки производительности.
у msi нахваливают систему охлаждения у моделей gaming x и разрыв цены с Ventus не такой большой. почему конкретно был выбран Ventus?
какие процессоры вы рассматривали к покупке под сокет?Slava715 Автор
09.10.2022 12:36+1До этого была однопроцессорная сборка с e5-2678v3, в сравнении с ней замелил только явный прирост без просадок.
Одна карта уже была и к ней была куплена вторая такая же, в целом охлаждения им хватает больше 70 градусов не нагреваются.
Лучше брать e5v4, они существенно холоднее и немного быстрее по скорости на ядро, из недорогих Xeon e5-2650v4 за 2000 рублей вполне неплохой вариант.
Shado_vi
09.10.2022 14:16если не путаю то avx-512 на v3 если задействуется то сразу на всех ядрах, на v4 процессоры умеют использовать только на нужных ядрах. задействуя avx-512 в не профильных вычислениях могут вызвать просадку. какие ещё тонкости существуют?(риторически)
прирост может быть вызван в частности за счёт памяти.
меньшая частота и меньшая пропускная способность памяти.
если проанализировать ситуацию то именно за счёт этого получается выжать большую производительность фактически на некоторых операциях.
и в брендовых материнках вроде доступен разгон памяти.конкретна по видеокартам Ventus и gaming x то там интересно как покрывает и отводит тепло радиатор. на Ventus как и у др. производителей на этом сильно экономят.
e5v4 чем v3 больше кеша, доступна более быстрая память(более дорогая), оптимизирована использование avx-512, меньше TDP, больше ядер и меньшая частота на ядро.
Alexsey
09.10.2022 12:28+2Для поиграться - сойдет, но покупать китайскую мать для решения на котором именно работать надо и получать нормальные результаты - ну такое себе. Не знаю что там на 2011v3 сейчас, но б/у supermicro для оригинального 2011 я года 4 назад на ебей взял баксов наверное за 250 вместе с процессорами.
Такое бешеное количество вентиляторов опять же абсолютно не нужно и еще не факт что хорошо влияет на охлаждение.
n_bogdanov
10.10.2022 16:42Поддержку. Не знаю зачем нужен хуанан, если даже на авито можно купить новый supermicro, причём даже оптимизированные для ml в пределах 40000. При том, что там не будет никаких проблем, а лок турбобуста у них заявлен с завода.
zartdinov
09.10.2022 23:59Тоже решил собрать, но на RTX 2060 12GB, не знаю насколько хорошая идея. Понятно, что разница по цене c RTX 3060 небольшая и архитектура прошлая. Но вроде тензорных ядер в 2 раза больше и материнская плата тоже все равно не поддерживает PCI-e 4. Посмотрим, купил пока одну штуку, может куплю еще одну из 3000 серии для сравнения.
Процессор собираюсь один серверный LGA 2066 и материнку 8 PCI-e слотов, дорого, но хочу с запасом, если другие видеокарты буду покупать. Для моих моделей 12 GB это много, хочу именно проводить опыты на нескольких видеокартах.
shamash
10.10.2022 08:31+1Простите за нубский вопрос, но вы не прикидывали водяное охлаждение насколько оно оправдано или вам не критичен шум поэтому вы даже не считали?
Slava715 Автор
10.10.2022 08:44+1Я думаю водяное охлаждение это хорошая идея, под нагрузкой даже пара 3060 неплохо подогревает вышестоящие процессоры.
Особенно актуально оно будет если ставить пару горячих 3090, в не турбо исполнении.
В идеальном варианте конечно собрать общий контур водяного охлаждения для карт и процессоров, но это уже совсем не бюджетно.
webwork
Здравствуйте, хотел бы вопрос задать по этой теме. Я еще совсем новичок, возможно, вопрос некорректен.
Я знаю, что существуют удаленные решения. Возможно ли обучить подобное на удаленных решениях и будет это дешевле, если использовать это не так часто, скажем 2-3 в месяц?
Areso
в перспективе это будет всегда дороже, чем иметь своё
Другой момент, что при таком профиле нагрузки своя сборка окупится через год-полтора, а денег требует уже сейчас.
Вот, к примеру, один из вариантов с посуточной арендой:
https://selectel.ru/services/gpu/?section=dedicated
Вообще, я вижу как перспективное направление совместное владение серверами в будущем. Как сейчас яхтами и домами выходного дня можно совместно владеть
WondeRu
Мы используем AWS Batch с GPU-серверами. Платим поминутно, тк для задачи создается виртуалка, а потом сразу грохается. Из хорошего: можно параллельно поднять 20 машин, если пришло много запросов. Из плохого: временные затраты на поднятие виртуалок, закачивание на них докер-образа (а для ML они все по 4-6Гб) и запуск этого образа.
vconst
Не получается держать одну виртуалку и масштабировать ее новомодными обычными технологиями по необходимости?
WondeRu
Нет, это сложнее, все уже придумано за нас)
DonAgosto
Пару лет назад на Google за одну машину с 8CPU, Tesla A100 и нагрузкой <10 час в месяц набегало что-то около 30 USD. После каждой работы машинку конечно сохраняли в образ и прибивали. Хранили там же в облаке, но за хранение образа вобще какие-то копейки платили.
Плюс у многих есть бесплатный период (Free Tier, обычно год) — не все ресурсы подпадают, но для некоторых задач вполне хватает и можно прилично сэкономить
Hardcoin
Если вы хотите обучить что-то готовое, которое точно заработает, то удаленные решения подходят. Если проводить эксперименты с архитектурами и вообще учиться ML, то запускать/останавливать несколько раз в день (что бы не капали деньги, пока дописываешь код) менее удобно.
К слову, для экспериментов сборка в статье менее удобна, чем один быстрый проц и одна более быстрая видеокарта, т.к. запуск кода на двух GPU во многих случаях связан с дополнительными усилиями.