Как сказал бы ныне великий классик. Собственная рабочая станция для 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 версии 3.
Мало линий 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 31×33 см.
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. Помимо цены самой платы и второго процессора с кулером, это позволит также неплохо сэкономить на корпусе.