Рабочие станции для ML и Data ScienceВнимание: опасный эксперимент! Когда я впервые решил собрать домашний ML-сервер, всё казалось простым: взять мощный ПК, всуРабочие станции для ML и Data ScienceВнимание: опасный эксперимент! Когда я впервые решил собрать домашний ML-сервер, всё казалось простым: взять мощный ПК, всу

Рабочие станции для ML и Data Science — как собрать сервер под столом

Рабочие станции для ML и Data Science
Рабочие станции для ML и Data Science

Внимание: опасный эксперимент! Когда я впервые решил собрать домашний ML-сервер, всё казалось простым: взять мощный ПК, всунуть две RTX 4090 – и вперед, нейросетки летят. Реальность быстро заставила меня попотеть. Оказалось, что сборка AI-фермы под столом – это совсем не то же самое, что собрать игровой ПК. Это отдельное приключение со своими подводными камнями. У меня до сих пор сохранился лёгкий тик от слова «TDP», а шрам на пальце напоминает о сгоревшем проводе. Но обо всём по порядк

Две RTX 4090? Легко сказать…

Идея поставить сразу две видеокарты RTX 4090 звучит шикарно: суммарно 48 ГБ видеопамяти, тысячи CUDA-ядер, мечта дата-сайентиста! На практике же вскрывается куча нюансов. Начнём с того, что RTX 4090 сама по себе – это 450-ваттный монстр, который в пике может жрать до 600 Вт. Две такие – это потенциально 1,2 кВт только на GPU. Добавьте горячий высокочастотный CPU, материнку, прочие компоненты – и вот вы уже питаете маленький обогреватель.

Кроме питания, есть вопрос совместимости и масштабируемости. SLI и NVLink в игровой сфере умерли (и у 4090 вообще нет NVLink-коннектора), так что две карты не сложатся магически в одну. Для задач ML их, конечно, можно задействовать параллельно (например, обучать две модели сразу или распределять батчи по картам), но объединить память двух 24-гигабайтных карт под одну огромную модель не выйдет – это вам не Tesla A100 с NVLink. К тому же, далеко не все ML-фреймворки из коробки эффективно масштабируются на мульти-GPU для каждой задачи. Новичкам бывает сюрприз: «Что, моя модель всё равно использует только одну карту?!». Нужно разбираться с DataParallel, Distributed DataParallel и прочими шутками. Впрочем, это тема для отдельного разговора.

Главное: просто вставить вторую 4090 и получить двойной профит – наивно. Вы столкнётесь с банальными физическими ограничениями. Например, размеры – современные видеокарты толщиной в три слота и длиной под 30-35 см. Не каждый корпус переварит две таких кирпичины. Плюс вес: одна 4090 весит под 2 кг, а то и больше с водоблоком. Две карты могут буквально согнуть вашу материнку без поддержки (представьте, как плата кряхтит под 4 кг металла). Словом, задача усложняется экспоненциально.

И всё же, я не хочу вас отпугнуть: две 4090 дома можно приручить. Но придётся учесть питание, охлаждение, “материнку”, корпус – обо всём этом дальше. Собираясь вставить вторую карту, я думал, это просто +1 GPU. Ха. На деле это +100 к хлопотам и +1000 к опыту.

Блок питания: 1600 Вт на обычной розетке

Первое, с чем я столкнулся – питание. Мой старый “игровой” блок на 850 Вт жалобно пиcкнул и выключился, стоило нагрузить две карты по полной. Пришлось срочно апгрейдиться до 1600-ваттного блока. Казалось бы, проблема решена? Ан нет, появились новые нюансы.

1600 Вт – это уже территория электрики, а не просто IT. В обычную квартирную розетку можно воткнуть и более мощный БП, но не любая проводка обрадуется. Если дом старый, проводка дохлая, или в фильтр-пилот воткнуто полдома, будьте готовы к выбитым пробкам или тому самому «запаху палёной изоляции». Поверьте, запах палёной изоляции — не то, с чего должен начинаться день дата-сайентиста. Мне хватило одного утреннего дыма из удлинителя, чтобы понять: шутки кончились. Пришлось перебросить сервер на отдельную линию, купить толстенный сетевой фильтр с доп. защитой и постоянно следить, чтобы ничего лишнего в ту же розетку не было включено.

Кроме того, блок блоком, а есть ещё пики нагрузки. Современные видеокарты коварны: их потребление скачет, как горный козёл. Помните те 450 Вт TDP? В доли секунды 4090 может потребовать резкий скачок, добираясь до 600 Вт. Два таких синхронных прыжка – и даже честный 1.6 кВт PSU может уйти в защиту. Кстати, в одном эксперименте 1650-ваттный блок питания «не вытянул» две 4090, пришлось менять на монструозные 2 кВт. Так что запас по мощности обязателен. Я бы целился минимум в 1.6–2 кВт для связки из двух топовых GPU + прожорливого CPU. Брать впритык – себе дороже.

Совет: ищите блок стандарта ATX 3.0 с разъёмами 12VHPWR (те самые 12+4 pin, которые напрямую к 4090 идут). Такие БП рассчитаны на большие кратковременные перегрузки и снабжены родными кабелями под 600 Вт на линию. Это лучше, чем использовать переходники «4х8-pin -> 16-pin», которые шли в комплекте с видеокартой – они громоздкие, греются, да и были случаи их оплавления (берегись с ними осторожно!). У меня, к счастью, ничего не оплавилось, но каждый раз, вручную впихивая эти четыре восьмиконтактных коннектора в адаптер, я чувствовал себя подрывником, подключающим взрывчатку. Особенно весело заталкивать всё это добро за боковую стенку корпуса.

Кстати, о проводах: будьте готовы, что толстенные кабели от блока (а их на две 4090 понадобится минимум восемь 8-pin линий, если без прямого 12VHPWR) будет очень трудно уложить. Они дубовые, не гнутся толком. Я прокачался в умении закрывать крышку корпуса с первого раза, придавливая торчащие жгуты – навык, о котором раньше не задумывался. Сейчас вспоминаю и вздрагиваю: а вдруг там, где-то под кожухом перетёрся провод… В общем, к питанию отнеситесь максимально серьёзно. Этим вы спасёте и своё железо, и свои нервы (и, возможно, квартиру от запаха пожара).

Перегрев верхней карты

Итак, питание побеждено, система запускается… и сразу новый босс: температуры. Если одна RTX 4090 в хорошо продуваемом корпусе грелась до, скажем, 70–75°C под нагрузкой, то с добавлением второй я увидел в MSI Afterburner цифры под 85–90°C на верхней карте. А вместе с ними – резкое повышение децибелов от вентиляторов, пытающихся охладить эту безумную печку.

Почему так? Я тоже сперва недоумевал: нижняя карта ведь должна перегреваться, на неё же сверху падает тепло от верхней… Ан нет, всё, наоборот. Законы физики: горячий воздух поднимается вверх. В итоге верхняя видеокарта всасывает уже разогретый воздух от нижней плюс греется от собственного чипа – замкнутый круг. Даже при одинаковых настройках она стабильно горячее на 5–10°C. У людей это обычная проблема: кто-то на форумах жаловался, что «что ни делай, а верхняя карта всегда на 5–7 градусов жарче, пришлось сбавлять её разгон». Я тоже с этим столкнулся.

Что делать? У меня было чувство, что я жарю видеокарты в духовке. Способов несколько (ни один не идеален):

  • Максимальный airflow. Придётся заставить корпус дуть как реактивный двигатель. Поставить дополнительные вентиляторы спереди, снизу, сверху – где возможно. Желательно, чтобы между двумя картами был хотя бы небольшой зазор и туда тоже шел поток воздуха. В одном кейсе я даже видел лайфхак: небольшой плоский вентилятор прямо между двумя GPU на распорке – выдувал горячий воздух вбок. Можно попробовать поставить одну карту вертикально через райзер (если корпус позволяет вертикальную установку) – тогда карты не вплотную, и верхняя сможет хватать прохладный воздух сбоку.

  • Андервольт и лимиты. Чуть прижать аппетиты карт – спасение для температуры. Например, я снизил power limit до ~85-90% для обеих GPU. Производительность в ML просела не критично (пара процентов в FP32, зачастую вообще без разницы, особенно если не упираться на 100% постоянно), зато температуры упали на 10°C, а шум – в разы. 4090 весьма эффективно работает на пониженном питании, там заложен большой запас. Если вы не выжимаете последние FPS в играх, ограничить питание – разумно.

  • Блоуеры или вода. Почти все кастомные 4090 – с открытым трехвентиляторным охлаждением, выдувают горячий воздух во все стороны. Для одиночной карты это ок, для двух – уже хуже. Альтернатива – референсный дизайн с турбиной (blower), который выдувает горячий воздух назад, за корпус. Проблема: у RTX 4090 официального референса нет, да и редкие турбины, которые делают некоторые бренды, шумят как реактивный самолет. Другой путь – водяное охлаждение. Можно найти версии 4090 с готовым СВО (например, с радиатором 240 мм на каждую карту) или вовсе снять воздух и поставить кастомные водоблоки. Уф, это уже высший пилотаж: нужен радиатор огромной площади, мощная помпа, грамотная сборка контура. Я всерьёз подумывал об этом, когда верхняя карта начала душить себя горячим воздухом. Но, поразмыслив, решил пока обойтись меньшей кровью – хорошим корпусом и вентиляторами.

К слову, о корпусах, которые «просто не продуваются»: некоторые модные кейсы с глухими стеклянными мордами или тесным интерьером – не вариант. Я сначала пытался впихнуть две 4090 в популярный красивый корпус (не буду называть модель, чтобы не делать антирекламу). Это была ошибка. Верхняя карта там прогревалась до троттлинга, горячий воздух фактически запирался внутри, а вентиляторы выли на максималке. Мой компьютер превратился в дорогущий фен. Решение пришло радикальное: я сменил корпус (о, это отдельная эпопея, см. далее). Но вывод тут простой: охлаждение – критичный момент. Придется сделать всё, чтобы горячему воздуху было куда деваться, иначе ваше дорогое железо будет постоянно работать на грани температурного потолка (а это троттлинг, повышенный износ и прочие радости).

Материнская плата: линии PCIe и расстояние между слотами

На чём у нас держатся две видеокарты? На материнской плате. И вот тут обнаруживается, что маркетинг – зло. Многие обычные ATX-платы рекламируют «две видеокарты? Легко, у нас 2 слота PCIe x16!». По факту же выясняется нюанс: сколько линий PCIe предоставляет ваш процессор и чипсет? У большинства массовых CPU (типа Intel Core i9, AMD Ryzen) напрямую от процессора идёт 16 линий PCIe. Если вставить две видеокарты, они поделят их: будет x8 + x8. А то и хуже – второй слот может оказаться подвешен на чипсет, что значит и х4, и задержки выше. В спецификациях материнок иногда пишут мелким шрифтом что-то вроде: «при установке двух GPU режим слотов x8/x8, при установке трёх – x8/x4/x4». x4 для 4090 – это почти издевательство, шины PCIe 4.0 x4 (~8 ГБ/с) может не хватить для кормления такого зверя данными, особенно если обе карты тренируют одну модель и обмениваются градиентами. Поэтому внимательно читайте спецификации платы. Ищите фразу вроде “PCIe 5.0 x16 + PCIe 5.0 x8 (x8/x8 Mode)” или хотя бы PCIe 4.0 x8/x8.

Если вы хотите выжать максимум и бюджет позволяет, вариант – платформа HEDT. Например, AMD Threadripper (или Threadripper Pro) дает процессору 64 или даже 128 линий PCIe: можно хоть четыре видеокарты повесить по полной x16 на каждую. Но это дорогой путь: сам проц как вся ваша ферма, и мать под него – как крыло от боинга. Для 1-2 GPU большинству хватает обычного Core i9/Ryzen, просто смиритесь с тем, что они поедут на x8. На практике разницы между x8 и x16 не так много, если это PCIe 4.0 или 5.0 – там пропускная способность сумасшедшая. В играх разница 1-3%, в ML тоже большинство времени загрузка идёт не через шину, а в видеопамяти. Я не заметил, чтобы моя вторая карта на x8 как-то страдала. Так что это не главный бич. Главное – не посадить карту на x4 через чипсет, вот этого избегайте.

Второй момент – физическое расположение слотов. Помните, мы говорили про перегрев? Чем дальше друг от друга стоят карточки, тем лучше для охлаждения. Матплаты различаются: на одних два слота x16 прям вплотную (разница в один слот между ними), на других – с большим интервалом. И ещё: RTX 4090 толстенная; если плата имеет, скажем, 3 слота между PCIe, но корпус позволяет только 7 карт-слотов по высоте – нижняя карта может уткнуться в блок питания или вообще не влезть. Я наступил на эти грабли, когда понял, что моя плата теоретически поддерживает две видеокарты (слоты есть), но физически в корпусе нижняя упирается кулером в кожух БП. Решение: либо брать больший корпус (что я и сделал), либо колхозить с райзерами. Некоторые умельцы берут гибкие PCIe-райзеры и размещают вторую карту вообще вне стандартных слотов – например, горизонтально внизу корпуса или даже снаружи. В майнерских кругах это давно отработано: фермы на райзерах, карты на каркасе. Кстати, при сборке 5-GPU сервера человек на Хабре как раз крепил видеокарты через райзер-планки к специальной раме внутри корпуса. Но для 2 карт до такого обычно не доходит.

И ещё про материнку: она тоже должна выдержать это безумие. Две топовые карты + мощный проц = огромная нагрузка на VRM. Плата должна быть качественная, с хорошим питанием. У некоторых энтузиастов возникали казусы, когда материнка начинала throttle по питанию или греться, потому что не рассчитана на постоянный выжим под 1000+ ватт тепла в корпусе. Мне повезло: моя Asus справилась, но я дополнительно обдуваю зону VRM вентилятором. И не ждите от производителя чудес: один автор сетовал, что «материнскую плату, которой можно доверять, искать очень тяжело (я так и не нашёл)» для подобной задачи. Так что рассматривайте workstation-класс платы или хотя бы топовый энтузиастский сегмент, у которых заявлена поддержка NVLink/SLI (это косвенно значит рассчитаны на 2 больших карты, даже если SLI вам не нужен).

Вывод по плате: убедитесь, что она а) помещает физически две ваши карты, б) даёт им достаточно линий PCIe, в) сама не перегреется и не прогнётся от веса. Не помешает поискать отзывы или кейсы сборок с двумя 4090 на той плате, что вы присмотрели.

Корпус и воздушный поток: большой, продуваемый, нежареный

С корпусом у меня была своя драма. Я изначально впихнул всё в MidiTower, который стоял у меня на полу под столом. Вписать-то вписал, но что толку, если внутри всё накаляется? Корпус – это ваш теплообменник, от него сильно зависит успех предприятия. По-хорошему, нужен большой корпус с отличной вентиляцией. Желательно FullTower или хотя бы MiddleTower, рассчитанный на E-ATX платы и длинючие видеокарты. Многие underestimate-ят (недооценивают) этот момент: мол, да мой Corsair/Fractal красивый, влезет же! Влезть-то влезет, но будет ли дышать?

Я прошёл через три корпуса, прежде чем нашёл оптимальный. Сначала был бюджетный Ginzu – туда влазило, но тесно, потом серверный Procase 4U – просторнее, но всё равно не хватало места. В итоге на AliExpress нарыл гигантский двухсекционный корпус-«китаец» – и вот он наконец дал простор. Это я к тому, что готовых решений немного. Найти корпус под много десктопных карт – тот еще квест, особенно если не хочешь майнерскую этажерку без кожухов.

На что обратить внимание при выборе корпуса для домашнего ML-сервера:

  • Габариты и совместимость. Длина видеокарт – ключевой параметр. Многие RTX 4090 имеют длину ~330 мм и больше. Корпус должен поддерживать такие длины (плюс зазор для коннекторов питания). Толщина – карты по 3-3.5 слота; стандартный корпус с 7 слотами расширения вместит две такие (3+3 слота = 6, один слот еще останется). Но если корпус, например, Micro-ATX (4 слота) – сразу нет. По высоте внутри тоже смотрите: иногда карта может упереться в что-нибудь на дне корпуса или сверху.

  • Продуваемость. Лучше, чтобы спереди и снизу была сетка и места под вентиляторы. Чем больше 120/140мм вентиляторов встанет – тем лучше. Mesh-панели рулез. Стекло красиво, но воздух через него не проходит. У меня сейчас корпус с сетчатым фронтом и тремя 140мм вентиляторами на вдув + два сверху на выдув + один сзади. И знаете, только при таком каркольном обдуве температуры стали приемлемыми. Некоторые корпуса позволяют ставить вентиляторы сбоку, прямо напротив видеокарт – highly recommended, если есть такая опция.

  • Расположение БП и прочего. Предпочтительно, чтобы блок питания стоял снизу, а не сверху (сейчас большинство таких). И желательно, чтобы внизу был запас места: у меня, например, БП 200мм длиной, еле влез с кабелями. Также было круто, что я мог убрать корзины для HDD, чтобы освободить тоннель для воздуха спереди к видеокартам. Снимаемые корзины, отсутствие лишних преград – плюс.

  • 4U rackmount? Некоторые идут путём серверных корпусов, укладывая их горизонтально под стол. Это вариант: 4U-шасси вполне способно вместить десктопные карты. Но учтите: не каждое 4U шасси рассчитано на 3-слотовые GPU – может потребоваться колхозить крепления или использовать райзеры, как в примере с ExeGate корпусом. Зато 4U-корпус из металла можно поставить куда-нибудь в угол и не переживать, что кошка его уронит. Минус – обычно шумнее (тонкий металл, рассчитан на серверные вентиляторы). Я думал про этот вариант, но отказался ради эстетики: всё же захотелось нормальный башенный корпус.

И ещё момент: сервер под столом = пылесос для пыли. На полу всегда пыли больше. А если он ещё и засасывает воздух активно – за месяц можете получить слой ковра на радиаторах. У меня после пары месяцев тестов фильтры на корпусе были забиты напрочь. Так что регулярная чистка – залог стабильности. Иначе сначала поднимутся температуры, потом начнут троттлить видеокарты, а потом – бац, выключение по перегреву. Не ленитесь раз в месяц пройтись пылесосом и кисточкой по сотам радиаторов и фильтрам.

d2dd4be65c7a07428d891a6309e21e89.png

Пример большого корпуса с усиленным воздушным охлаждением. На изображении показан корпус с сетчатой передней панелью и местом под множество вентиляторов (спереди, сверху и снизу). Именно такой дизайн помогает обеспечивать достаточный airflow для двух горячих GPU. В своём проекте я максимально заполнил корпус вертушками, чтобы ни один компонент не остался без потока воздуха. За счёт этого мне удалось удержать температуру верхней карты в разумных пределах и не слушать вой вентиляторов на полной громкости постоянно. Главное – не жалеть места: пусть лучше система будет громоздкой, чем спёкшейся от жары.

Сборка и запуск: «не влезает», греется и орёт как пылесос

Выбор комплектующих позади, корпус на столе – начинается самое интересное: физическая сборка. Тут меня поджидало несколько сюрпризов, о которых стоит предупредить.

Во-первых, всё еле-еле помещается. Пока не попробуешь, не узнаешь, где засада. В моём случае дополнительное пространство корпуса быстро съели кабели. Стоило уложить в плату обе видеокарты, как стало тесно тянуть к ним питание: жгуты 16-pin коннекторов упёрлись в стеклянную крышку сбоку. Я реально минут 30 переукладывал и изгибал кабели, пытаясь закрыть боковую стенку, чтобы ничего не пережать. Это был тот ещё Tetris с проводами. Совет: заранее продумайте, куда пойдут толстые кабели, возможно, имеет смысл купить гибкие удлинители или угловые переходники для 12VHPWR, чтобы не ломать провода с острыми перегибами (частая причина их перегрева). И обязательно проверьте надёжность контакта каждого кабеля – плохой контакт = нагрев и плавление. Я после каждого перевозки ПК заново проталкиваю коннекторы до щелчка, мало ли.

Во-вторых, тяжесть и крепления. Установить одну большую видяху – уже акробатика, а поставить вторую аккуратно под первую, не раздробив ничего – практически нужен третий и четвертый руки. Карты тяжёлые; обязательно воспользуйтесь поддержками (стойками) для видеокарт или хотя бы подпорками. Я первое время подкладывал под свободный конец карты обрезок пенопласта, пока не купил нормальную телескопическую подпорку. Без поддержки, особенно если таскать корпус, можно повредить слот (да и просто плата гнётся). К тому же, так меньше вибраций и нагрузок.

В-третьих, охлаждение всего остального. Мы много говорили про видеокарты, но ещё есть процессор. В закрытом корпусе, набитом горячим железом, CPU тоже становится жарче. Мой Core i9 с TDP 125W легко раскочегаривался до 200+ Вт под нагрузкой (привет, турбо буст), а в окружении двух «печек» это приводило к 90°C на ядрах, хотя башенный кулер до этого вроде справлялся. Пришлось заменить охлаждение CPU на более мощное и настроить агрессивнее кривую вентиляторов. Имейте в виду: охлаждение процессора должно быть топовым, особенно если он участвует в подготовке данных для ваших моделей. Либо, как вариант, можно слегка ограничить его PL1/PL2 (аналогично андервольту) – снизить выделение тепла в обмен на пару процентов производительности. В таком тесном сотрудничестве GPU-CPU иногда лучше чуть сбавить пыл у CPU, чтобы общая система чувствовала себя комфортнее.

Шум – отдельная песня. Когда я впервые запустил обучающий скрипт на полной скорости, мой «сервер под столом» издал рёв, сравнимый с промышленным пылесосом. Соседи снизу, наверное, подумали, что я запускаю летающую тарелку. Две видеокарты + CPU + куча вентиляторов – получается оркестр, и играет он fortissimo. Если вы цените тишину, готовьтесь к разочарованию. Мой путь: настроить все вентиляторы на разумный баланс (чуть пожертвовать температурой ради снижения оборотов) и… приобрести качественные наушники с шумоподавлением. Да, реально, иначе работать тяжело сидя рядом. Некоторые решают выносить такие серверы в коридор или кладовку и управлять по удалёнке. Я ограничился наушниками. Спустя время, правда, привыкаешь к постоянному гулу – мозг фильтрует. Но первое время это дико раздражает. Так что планируйте либо шумоизоляцию, либо размещение подальше, либо терпение и беруши.

Пара лайфхаков из моего опыта:

  • Тестовая сборка вне корпуса. Перед окончательной установкой я собрал систему на столе (материнка + БП + GPU) и прогнал бенчмарки. Это спасло меня от лишней разборки, когда выяснилось, что один кабель питания GPU был бракованный и не давал нужный ток – карта отваливалась под нагрузкой. Менять кабель внутри забитого корпуса было бы адом. Так что совет: проверьте всё «на открытом стенде», убедитесь, что обе видеокарты видятся, работают под нагрузкой, что блок тянет, что температуры хотя бы в допустимых рамках. И только потом стягивайте это всё стяжками внутри корпуса.

  • Кабель-менеджмент – не для красоты, а для airflow. Обычно укладка кабелей – это про эстетичность. В нашем случае – про температуру. Важно убрать толстые жгуты с пути воздушных потоков. Особенно в районе видеокарт: провод от верхней карты у меня сначала висел над нижней – и мешал вентиляции, создавал «подушку» из горячего воздуха. Я его оттянул к стенке и закрепил – нижняя карта задышала чуть легче. Такие мелочи влияют на пару градусов.

  • Мониторинг и тюнинг. Поставьте себе софт для мониторинга (MSI Afterburner, HWInfo) и следите первое время за датчиками. Температуры GPU, hotspots, обороты вентиляторов, потребление, температура VRM платы – всё это важно. Я поначалу вообще сидел, уставившись в графики, пока гонял нагрузочные тесты. Зато сразу увидел, что, например, SSD M.2 перегревается до 80°C (спойлер: он стоял прямо под нижней видеокартой). Решение – наклеил на него радиатор и организовал обдув. Так что мониторьте и выявляйте узкие места.

Ну и примите как данность: домашний сервер – это шумно, горячо и ярко (эти видеокарты же с подсветкой, зараза! Мерцают под столом всеми цветами, пришлось отключать). Комната будет нагреваться ощутимо: зимой, может, и приятно, а летом – кондиционер вам в помощь. Моя «машина» под столом греет комнату градусов на 5 выше остальной квартиры, если долго работает. Такие вот побочные эффекты.

eee316d7712509311f9beb7c3c68cc11.png

Пример самодельного GPU-сервера в форм-факторе 4U (горизонтальный корпус под столом). Здесь установлено несколько видеокарт GeForce RTX плотным рядком и мощный блок питания, спереди видны накопители и вентиляторы охлаждения. Обратите внимание на количество кабелей питания (белые и чёрные жгуты): при сборке подобной системы внутри корпуса образуется целый клубок проводов, которые нужно аккуратно уложить. В таком корпусе видеокарты закреплены через специальные стойки и райзеры, чтобы исключить провисание и обеспечить им равномерный обдув. Реальная сборка часто выглядит не как аккуратный геймерский ПК с подсветкой, а скорее как мини-датацентр под вашим столом – зато всё под контролем и всегда под рукой.

ECC-память, Threadripper vs Core i9 - а надо ли?

Часто спрашивают: «А может, сразу собрать на серверном железе? ECC память, Threadripper, Xeon…». Я тоже в какой-то момент задумался об этом, когда ловил глюки в долгих прогонах: а вдруг это из-за ошибки в оперативке, которой ECC бы исправила? Но трезво оценив, решил не заморачиваться с ECC-памятью. Почему:

ECC (Error-Correcting Code memory) действительно защищает от единичных битовых ошибок. Для серверов, которые считаются месяцами, это важно. Но в домашнем использовании шанс, что ошибка в памяти собьёт вам обучение модели, крайне мал. Плюс, многие потребительские платформы банально не поддерживают ECC. Intel i9 не умеет работать с ECC (нужен Xeon), AMD Ryzen частично умеет с небуферизованной ECC, но это надо искать совместимые планки и платы. Короче, мороки много. И цена вопроса выше. Если вы не строите прям научно-исследовательский стенд, где критична каждая точность – можно смело брать обычную DDR4/DDR5 хорошего качества. У меня не-ECC память, и никаких проблем не возникало. Главное – не гнать память в хлам, оставить частоты в разумных пределах, тогда она стабильна. А единичный сбой (если вдруг случится) скорее всего проявится как упавший процесс, что не так страшно. В общем, ECC – опционально и обычно избыточно для домашней станции.

Теперь про CPU: HEDT vs десктоп. На рынке энтузиастов два мира: Threadripper (или теперь Threadripper Pro) от AMD, и топовые Core i9/Xeon W от Intel. Threadripper заманивает: десятки ядер, куча линий PCIe, куча памяти… По сути, платформа создана для таких задач, как у нас. Но камень преткновения – цена. Серьёзно, современный TR Pro 5000-й серии стоит как подержанная иномарка, а материнская плата под него – как крыло самолёта. Если бюджет не безразмерный, покупать TR ради двух видеокарт невыгодно. Core i9 актуального поколения (будь то 13900K, 14900K или что там новое) прекрасно справляется с ролью мозгов для 2x GPU. У него до 24 ядер (8 производительных + 16 эффективных у 13/14Gen Intel), что за глаза хватает, чтобы кормить пару видеокарт данными и параллельно что-то ещё делать. Да, линий PCIe у него 16, но как мы выяснили, x8+x8 достаточно.

Другое дело, если вы планируете 3-4 GPU или кучу доп. карт (например, высокоскоростные SSD в RAID, тензорные ускорители, 100-гигабитную сеть) – тогда без HEDT не обойтись. Или если вам прям кровь из носу нужно 256 ГБ ECC RAM и 64 ядра CPU для экспериментов – тогда да, смотрите в сторону Threadripper или серверных платформ (кого-нибудь там dual-Xeon на авито). Кстати, народные умельцы иногда берут старые серверные платы и запихивают в корпус: например, 2 процессора Xeon E5-26xx v4, море памяти, и карт несколько через райзеры. Это бюджетно по железу (процы старые копеечные, память DDR4 REG ECC дешевая), но потребляет много и требует плясок с бубном (тот автор с Хабра на dual-Xeon плате столкнулся с кучей мелочей, вплоть до того, что башенные кулеры не влезали по высоте, пришлось воду ставить). В общем, я бы рекомендовал: начинайте с топового потребительского CPU. Мощности хватит, а стабильности и простоты точно больше. В моём случае Core i9 оказался отличным компаньоном: да, он горячий, но мы его остудили; да, ставить пришлось аккуратно, но зато никаких проблем с совместимостью софта (CUDA любит Intel, да и AVX инструкции для CPU-шного препроцессинга на месте).

И маленький нюанс: PCIe 5.0 vs 4.0. Сейчас уже есть материнки и CPU с PCIe 5.0. Для видеокарт пока особой разницы нет (4090 – PCIe 4.0 устройство). Но если берёте на вырост, можно взять платформу с запасом по поколению шины. Хотя, откровенно, узким местом будет не пропускная способность шины, а сама нагрузка на систему охлаждения и питание.

Резюме по выбору платформы: хватит обычного Core/Ryzen высокого класса, если цель – 1-2 GPU. Потратьте сэкономленные деньги лучше на хороший БП или дополнительную видеокарту. Threadripper и прочее – для тех, кто точно знает, зачем оно им. Если сомневаетесь, значит не надо.

Вместо заключения — это спорт, но оно того стоит

Признаюсь честно: после всех мучений я пару раз спрашивал себя, «а не легче ли было в облаке всё крутить?». Но, глядя на результат, понимаю – оно того стоило. Да, самостоятельная сборка мульти-GPU станции – это отдельный вид спорта. Тут тебе и кибер-тяжёлая атлетика (попробуй-ка удержать и прикрутить 2-килограммовую карту одной рукой), и инженерная смекалка (как охладить то, что не очень-то хочет охлаждаться), и немного безумия (когда полкомнаты заставлено коробками от комплектующих, а ты сидишь среди них как профессор Франкенштейн, создающий монстра).

Но плюс в том, что выйдя из этого испытания, ты становишься настоящим хардверным гуру (ну или чувствуешь себя им). А ваша машинка под столом начинает приносить пользу: можно запускать эксперименты когда угодно и какие угодно, вас не ограничивают кредиты облака или очередь на сервере института. Мой личный кайф – это ночью отправить на своей станции пару тяжёлых моделей в обучение и спокойно идти спать, зная, что счёт за электричество будет в десятки раз меньше, чем был бы счёт за аренду GPU в облаке. Кстати, экономика: посчитайте, сколько стоит час работы той же RTX 4090 в облачном сервисе (условно, 1-3 доллара в час на каких-нибудь Vast.ai). А мне она досталась за фиксированные деньги и дальше работает практически бесплатно (молота жрёт – но это копейки по сравнению с облаками). За год-два интенсивной работы своя железка себя окупает, а потом начинает экономить вам деньги. Конечно, есть затраты на охлаждение (привет, кондиционер летом) и амортизация, но все же.

Минусы и сложности тоже надо признать: такой сервер требует внимания и времени. Это не “купил-собрал-забыл”. Нужно следить за обновлениями драйверов (например, новые версии CUDA, обеспечивать совместимость), периодически чистить пыль, да и вообще – когда живёшь рядом с мощным ПК, что-то периодически да всплывает: то Windows решит обновиться и повиснет при рестарте, то вентилятор начнёт хрипеть, то ещё какая-нибудь ерунда. Приходится быть и сисадмином, и инженером, и сервисным центром для своей же машины. Для кого-то это в радость – хобби такое. Для кого-то – лишняя головная боль.

Меня спрашивали: «а можно просто купить сборку и не париться?». Теоретически, да, есть бренды, продающие рабочие станции для ML. Но цена там… мягко говоря, кусается. Гораздо дешевле выйдет самому, даже если наделать ошибок и переделать пару раз. К тому же, опыт, полученный при самостоятельной сборке – бесценен. Теперь никакой сбой железа меня не пугает: я знаю, где покопать и что подкрутить.

На прощание дам пару рекомендаций, если вас вся эта история не отпугнула, а наоборот, раззадорила:

  • Советуйтесь с сообществом. В Рунете есть энтузиасты, которые такое железо щёлкают как семечки. Можно поискать на профильных форумах (тот же раздел “Компьютерное железо” на Habr, https://habr.com/ru/hubs/hardware/articles/, reddit r/homelab – если с английским ок). Есть даже специалисты, делающие на заказ подобные сборки. Например, широко известен в узких кругах MaxxPC – команда, которые собирают топовые ПК под нужды клиента. Никто не запрещает спросить у них совета или сконфигурировать систему под ваши задачи. Главное – не стесняйтесь задавать вопросы. Лучше пять глупых вопросов до сборки, чем один феерический фейл после. Я лично пару раз выкладывал на форум конфиг и спрашивал: “Ребята, где узкое место, что не так?”. И мне указывали, мол, “этот райзер фигня, возьми другой” или “БП с таким кабелем не дружит” и т.д. Это сберегло кучу сил.

  • Изучайте опыт других. Очень советую почитать похожие кейсы. Например, на Хабре есть отличный пост про сборку домашнего сервера под 5 GPU https://habr.com/ru/articles/962992/ – там автор делится и проблемами с корпусами, и нюансами с двумя блоками питания, и охлаждением. Много полезного можно вынести (плюс осознание, что вы не один такой безумец). Ещё можно глянуть англоязычные ресурсы: есть блоги, где сравнивают, что лучше – одна дорогая профкарта или несколько игровых, как окупается своё железо vs облако и т.д. Чем больше информации впитаете, тем легче вам будет.

  • Готовьтесь морально к экспериментам. Эта сборка – почти наверняка не выйдет идеальной с первого раза. Что-то придётся менять, допиливать. Это нормально! Отнеситесь к этому как к научному эксперименту: сначала гипотеза (соберу так-то – будет класс), потом проверка (о нет, греется), потом анализ и новая гипотеза (а что если добавить вентиляторов/сменить термопасту/поменять корпус)… И так до победы. В конце концов, терпение и упорство – качества, нужные дата-сайентисту не только в обучении моделей, но и в обустройстве своей технической инфраструктуры.

Подводя итог: домашний ML/DS-сервер – вещь крутая. Он даёт свободу и скорость для ваших экспериментов, экономит деньги на долгой дистанции, и к тому же приносит кучу удовольствия самому “собирателю”. Но путь к нему усыпан мелкими (и не очень) препятствиями. Если вы любите железо и готовы с ним повозиться – дерзайте, результат того стоит. Если же вся эта возня звучит слишком страшно, может, действительно лучше начать с одной видеокарты или воспользоваться облаком, а там посмотреть.

Удачи вам в сборке, и пусть ваш ML-сервер приносит только радость (и крутые модели)!

Полезные ссылки для дальнейшего чтения:

  • Статья на Хабре: «PCIe, водянка и райзеры: реальный опыт сборки сервера под 5 GPU дома» – автор делится инсайтами про выбор корпуса, матплаты, охлаждение и питание для многогранной сборки. Рекомендую к прочтению, там много нюансов именно из практики, похожей на нашу задачу.

  • Сообщество MaxxPC – канал и чат в Telegram и официальный сайт, посвящённый сборкам мощных ПК. Там можно посмотреть примеры конфигураций рабочих станций, спросить совета у знающих ребят. Иногда появляются разборы ошибок в сборках – на чужих ошибках учиться безопаснее.

  • Форумы overclockers.ru (раздел “Видеокарты” и “Комплектующие”) – кладезь информации. Можно поискать темы про многогпу-сборки, люди делятся опытом, отвечают на вопросы новичков.

  • БлогTim Dettmers (англ.) – у него есть гайд “Which GPU for Deep Learning” и про сборки рабочих станций. Это больше про выбор между разными GPU и оценку производительности/экономики. Полезно, чтобы понять, сколько вам действительно нужно GPU и какого типа.https://timdettmers.com/

Сборка ML-станции – задачка нетривиальная, но решаемая. Не бойтесь экспериментировать!


How to Choose the Right Power Supply Wattage for Your CPU and GPU

Две карты GPU GeForce RTX 4090 в корпусе для майнинга | internet-lab.ru

Почему у видеокарт при одинаковых настройках сильно разная температура? | MiningClub.info

PCIe, водянка и райзеры: реальный опыт сборки сервера под 5 GPU дома / Хабр

Вопрос к обладателям RTX 4090 — переходники питания

Источник

Возможности рынка
Логотип Mintlayer
Mintlayer Курс (ML)
$0.00982
$0.00982$0.00982
-2.86%
USD
График цены Mintlayer (ML) в реальном времени
Отказ от ответственности: Статьи, размещенные на этом веб-сайте, взяты из общедоступных источников и предоставляются исключительно в информационных целях. Они не обязательно отражают точку зрения MEXC. Все права принадлежат первоисточникам. Если вы считаете, что какой-либо контент нарушает права третьих лиц, пожалуйста, обратитесь по адресу service@support.mexc.com для его удаления. MEXC не дает никаких гарантий в отношении точности, полноты или своевременности контента и не несет ответственности за любые действия, предпринятые на основе предоставленной информации. Контент не является финансовой, юридической или иной профессиональной консультацией и не должен рассматриваться как рекомендация или одобрение со стороны MEXC.