Введение

Запуск больших языковых моделей на своём железе — это всегда поиск компромисса. Либо ты тратишь больше $10 000 на потребительские видеокарты, которые едва тянут модели на 70 миллиардов параметров, либо лишь мечтаешь о серьезном железе корпоративного класса, которое, увы, тебе не по карману. Платформа Grace‑Hopper — архитектура суперчипа NVIDIA, объединяющего CPU и GPU, — это именно та инфраструктура для ИИ, о которой грезит сообщество LocalLlama. Но такие системы обычно стоят от $100 000 и доступны только дата‑центрам и научным институтам.

Поэтому, когда на Reddit я наткнулся на систему Grace‑Hopper за 10 000 евро, первой мыслью было: «Это развод». А второй: «Интересно, получится ли договориться за 7500?».

Эта история — о том, как я купил корпоративное ИИ‑оборудование, изначально рассчитанное на жидкостное охлаждение в серверной стойке, но кое‑как переделанное предыдущим владельцем на воздушное. Затем я вновь переделал его на водяное охлаждение, пережил несколько ситуаций на грани фола (включая работу с GPU, который докладывал о температуре в 16 миллионов градусов) и в итоге получил десктопную систему, способную запускать у меня дома модели на 235 миллиардов параметров. Это рассказ о сомнительных решениях, творческом решении проблем и о том, что происходит, когда пытаешься превратить серверное чудовище в домаш��юю рабочую станцию.

Если вам когда‑нибудь было интересно, что нужно, чтобы запускать по‑настоящему большие модели локально, или если вы просто зашли посмотреть, как кто‑то разбирает «железо» за $80 000 с одной лишь надеждой и бутылкой изопропилового спирта — вы по адресу!

Сделка

В начале этого года, просматривая r/LocalLLaMA/new, я наткнулся на невероятно выгодное предложение. Насколько выгодное? Вот характеристики сервера, предлагаемого за 10 тысяч евро — серьёзное обновление по сравнению с моей системой на 4x RTX 4090:

Характеристики:

  • 2x Nvidia Grace-Hopper Superchip

  • 2x 72-ядерных процессора Nvidia Grace CPU

  • 2x GPU Nvidia Hopper H100 Tensor Core

  • 2x 480 ГБ LPDDR5X памяти с коррекцией ошибок (ECC)

  • 2x 96 ГБ HBM3 памяти

  • 1152 ГБ общей высокоскоростной памяти

  • NVLink-C2C: пропускная способность 900 ГБ/с

  • программируемое энергопотребление от 1000 Вт до 2000 Вт (TDP CPU + GPU + память)

  • 1x высокоэффективный блок питания 3000 Вт (230 В → 48 В)

  • 2x слота PCIe Gen4 M.2 22110/2280 на материнской плате

  • 4x FHFL PCIe Gen5 x16

Уточнение: С тех пор как я купил эту систему, цены на DDR5 RAM стали безумными. 960 ГБ быстрой DDR5 сейчас стоят дороже, чем вся моя Grace-Hopper система 🤯

«Это развод», — подумал я, потому что:

  • H100 стоят около 30-40 тысяч евро каждая, а в этой системе их две

  • системы Grace-Hopper NVL2 практически недоступны для потребителей!

В посте Reddit объяснялась причина такой низкой цены: Основная причина в том, что это «Франкенштейн-система», переведённая с жидкостного охлаждения на воздушное. Кроме того, она выглядит не очень эстетично и не подходит для монтажа в стойку из-за прикреплённого блока питания на 48 В. Изначально система поставлялась напрямую от Nvidia.

Я немедленно предложил купить её, ведь почему бы и нет? Если это мошенничество, я всегда могу отказаться, но я хотел быть первым в очереди!

Оказалось, что я живу недалеко от продавца, и он владеет интернет-магазином, который продаёт модифицированное серверное оборудование Nvidia в формате настольных ПК. Это всё ещё казалось довольно рискованным, поэтому я провёл исследование и нашёл видеообзор одного из его настольных ПК на YouTube. Поскольку сделка теперь казалась хотя ��ы правдоподобной, а продавец находился всего в двух часах езды и согласился принять наличные, пришло время отправиться в дорожное путешествие по Баварии.

Я приехал к фермерскому дому в небольшом лесу и встретил Бернхарда — владельца GPTshop.ai. Он показал мне хорошую мастерскую (плазменные резаки, электронная лаборатория и т.д.), в которой он изготавливает специальные корпуса для высокопроизводительных H100-десктопов. Эти настольные ПК выглядят очень прилично, поэтому жаль, что его веб-магазин производит сомнительное впечатление; регистрация бизнеса на Каймановых островах определённо его не улучшает. Что я могу сказать, так это то, что этот товар был сильно скидочным и не относился к тем изысканным высококлассным настольным системам, которые он обычно продаёт.

Отказ от ответственности: У меня нет никакой аффилированности с GPTshop.ai, кроме как передачи им пачки наличных и получения взамен покрытого пылью сервера. Если бы это была спонсорская публикация, они вряд ли позволили бы мне упоминать температуры GPU в 16 миллионов градусов или часть, где мне пришлось паять компоненты навесным монтажом, молясь электронным богам.

Разборка сервера Grace Hopper

Сам сервер находился в не самом лучшем состоянии. Всё это добро работало чрезвычайно шумно, имело высокопроизводительные вентиляторы, которые засосали много пыли, покрыв материнскую плату таким её слоем, что я не мог определить цвет текстолита. Однако система запустилась и работала нормально, поэтому я передал пачку наличных, пристегнул сервер ремнём безопасности на заднем сиденье моей машины (весил он около 20 кг) и повёз домой.

Я упоминал слово "шумно"? Запуск системы причиняет физическую боль. Там установлено 8 модулей Sunon с двойными вентиляторами, каждый из которых громкий, как мощный пылесос, но с гораздо более высокой и раздражающей тональностью звука. При работе всех 8 на полной мощности требуется защита для слуха — я мог слышать работу системы в подвале с закрытыми окнами на расстоянии 50 метров! Моя жена немедленно (и совершенно справедливо) запретила его использование дома. Мы оба работаем из дома, и мы не могли участвовать в онлайн-созвонах. Но у меня были другие планы…

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

Очистка сервера

Существенную часть пыли удалось убрать пылесосом во время разборки, но было очевидно, что под модулями Grace‑Hopper её ещё много. После их демонтажа я решил полностью промыть материнскую плату.

Я купил несколько литров изопропилового спирта и с помощью мягкой щётки несколько раз обработал всю плату, чтобы удалить оставшуюся мелкую пыль из разъёмов и между выводами SMD‑компонентов.

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

Положил материнку на теплый пол на неделю для просушки, а пока перешёл к замене системы охлаждения.

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

Я подумал было о создании собственного, кастомного блока водяного охлаждения, но беспокоился о возможных протечках, так что поискал и нашёл недорогие системы водяного охлаждения «все‑в-одном», по ~40 евро каждая со скидкой. Двух штук на каждый модуль GH200 было бы достаточно, поэтому я тщательно измерил размеры кристаллов GPU и CPU, а также расположение винтов, и занёс эти данные в Fusion 360 для моделирования адаптерных блоков.

У меня есть Bambu X1, который очень пригодился для прототипирования адаптерных блоков. Допуски должны быть очень точными, поэтому я напечатал несколько версий с вырезами, чтобы убедиться в надёжном контакте с открытым кристаллом GPU и безопасном расстоянии от хрупких частей.

Отправил детали на ЧПУ-фрезеровку, они приехали, когда материнская плата закончила сохнуть. После использования ещё большего количества изопропилового спирта для удаления масла, использованного в процессе обработки, их установили без особых проблем.

Сборка настольной системы

Мой основной материал для таких проектов — ProfilAlu с eBay. Он недорогой, жёсткий и поставляется предварительно нарезанным для сборки. Я собрал дизайн в Fusion 360, и детали прибыли через несколько дней. Однако различные крепления потребовали гораздо больше работы. Мне нужно было спроектировать несколько десятков специальных креплений для различных плат и фиксаторов воздушных фильтров; на это ушло несколько килограммов филамента, чтобы всё получилось правильно.

Катастрофы

То, что издаёт звук «ХЛОП» ночью… 💀

Я обнаружил, что один из самых страшных звуков, которые вы когда‑либо услышите, — это «хлопок», за которым следует «шипение», исходящие от материнской платы стоимостью $80 000, над которой вы только что работали. Запах волшебного дыма, появляющийся моментами позже, вызывает больше ощущение ужаса.

Идея была достаточно простой: у меня есть 8 мощных вентиляторов, каждый из которых должен потреблять огромный ток и работать при 12 В. В то же время у меня есть четыре системы водяного охлаждения, которые также работают при 12 В. Просто, правда? Я меняю стандартный 3-контактный разъём вентилятора от потребительского охладителя Arctic на странный серверный разъём вентилятора, и я могу запитать их от материнской платы, да ещё с управлением скоростью вращения!

Проблема 1. Какие-то странные разъёмы для вентиляторов на материнской плате. Они выглядели как крошечные Molex, но я их не узнал. Кажется, я наконец нашёл их в продаже, но они стоили ~20 евро каждый, а у меня есть принципы! Поэтому я составил схему проводки и с помощью резки и пайки изготовил адаптеры, после чего восстановил систему. Затем последовали хлопок и шипение… Мои расчёты по потреблению тока, должно быть, были не совсем точны!

Проблема 2. После разборки только что изготовленного изящного адаптера и перепайки вентиляторов я обнаружил, что несколько вентиляторов больше не работают. Хмммм. Перестановка различных вентиляторов показала ясную картину: некоторые разъёмы для вентиляторов на материнской плате не работали. Я взял свою самодельную тепловизионную камеру (тема для другого поста в блоге) и осмотрел всю плату, прежде чем заметить то, что выглядело как тёплый MOSFET (по сути, переключатель). Я погуглил маркировку, но результатов не было.

Проблема 3. Мне нужен был новый способ питания 12В AIO-водяных охладителей. Основной блок питания обеспечивает 48 В при 62,5 А, что как-то многовато, и я не был готов подключать их последовательно после последнего небольшого «инцидента». Я купил дешёвый блок питания 12 В-5 А с Amazon, потому что было указано «доставка на следующий день», и он обошёлся менее чем в 10 евро. Когда он прибыл, моя система охлаждения снова заработала!

Критические ошибки вентиляторов

Система больше не запускалась. Проверяя логи, я увидел 6 критических ошибок, по одной для каждого неработающего драйвера вентилятора из 8 пар:

Дата/время

Компонент

Событие

Состояние

Значение

4

08/06/25 19:24:08 CEST

Fan FAN_6_F

Lower Critical going low

Asserted

Reading 0 < Threshold 2156 RPM

5

08/06/25 19:24:08 CEST

Fan FAN_6_R

Lower Critical going low

Asserted

Reading 0 < Threshold 2156 RPM

6

08/06/25 19:24:08 CEST

Fan FAN_5_F

Lower Critical going low

Asserted

Reading 0 < Threshold 2156 RPM

7

08/06/25 19:24:08 CEST

Fan FAN_5_R

Lower Critical going low

Asserted

Reading 0 < Threshold 2156 RPM

8

08/06/25 19:24:08 CEST

Fan FAN_8_F

Lower Critical going low

Asserted

Reading 0 < Threshold 2156 RPM

9

08/06/25 19:24:08 CEST

Fan FAN_8_R

Lower Critical going low

Asserted

Reading 0 < Threshold 2156 RPM…

Если отключить вентиляторы, то BMC (Baseboard Management Controller) немедленно паникует и отключает материнскую плату, чтобы предотвратить термическое повреждение, даже несмотря на наличие водяных охладителей. Поэтому я отключил подсистему проверки вентиляторов.

# stops the service for the current session
systemctl stop phosphor-sensor-monitor.service

# prevents the service from starting on the next boot
systemctl disable phosphor-sensor-monitor.service

Кому нужен аппаратный мониторинг? ¯\_(ツ)_/¯

Ядерный синтез?

Отлично! На этом этапе я смог запустить процесс загрузки и даже доходил до входа в систему! Но только примерно в 1 случае из 4… Не оптимально. И даже если удавалось войти в систему, то сервер падал через 2 минуты.

Изучая логи BMC, я увидел:

Время

Источник

Процесс

Событие

Sep 23 08:20:18

oberon-bmc

shutdown_ok_mon[1478]

event: FALLING EDGE offset: 26 timestamp: [571.615238550]

Sep 23 08:20:18

oberon-bmc

power-status[1493]

event: FALLING EDGE offset: 18 timestamp: [571.632491062]

Sep 23 08:20:18

oberon-bmc

shutdown_ok_mon[545]

SHDN_OK_L-I = 0

Sep 23 08:20:18

oberon-bmc

shutdown_ok_mon[545]

Asserting SYS_RST_IN_L-O to hold host in reset

Sep 23 08:20:18

oberon-bmc

shutdown_ok_mon[545]

gpioset SYS_RST_IN_L-O = 0

Sep 23 08:20:18

oberon-bmc

power-status[697]

gpioset SYS_RST_IN_L-O = 0

Sep 23 08:20:18

oberon-bmc

power-status[697]

Set SYS_RST_IN_L-O=0

Итак, критический сбой в 08:20:18:

  • Сигнал SHDN_OK_L-I опускается до нуля (обнаружен спадающий фронт)

  • Это немедленно запускает последовательность отключения

  • Система отключается примерно через 30 секунд после успешной загрузки

Но почему?!!? Я же отключил аппаратный мониторинг.

Глубже погружаясь в логи:

Время

Источник

Процесс

Событие

Oct 05 10:15:00

oberon-bmc

ipmid[520]

thresholdChanged: Assert

Oct 05 10:15:00

oberon-bmc

ipmid[520]

thresholdChanged: Assert

Oct 05 10:15:00

oberon-bmc

ipmid[520]

thresholdChanged: Assert

Oct 05 10:15:00

oberon-bmc

satellitesensor[2351]

Sensor HGX_GPU_1_TEMP_1 high threshold 92 assert: value 1.67772e+07 raw data nan

Oct 05 10:15:00

oberon-bmc

satellitesensor[2351]

Sensor HGX_GPU_1_TEMP_1 high threshold 89 assert: value 1.67772e+07 raw data nan

Oct 05 10:15:00

oberon-bmc

satellitesensor[2351]

Sensor HGX_GPU_1_TEMP_1 high threshold 87 assert: value 1.67772e+07 raw data nan

Oct 05 10:15:00

oberon-bmc

phosphor-fru-fault-monitor[524]

/xyz/openbmc_project/logging/entry/496 created

Oct 05 10:15:00

oberon-bmc

phosphor-fru-fault-monitor[524]

/xyz/openbmc_project/logging/entry/497 created

Oct 05 10:15:00

oberon-bmc

sensor-monitor[499]

Starting 1000ms HardShutdownAlarmHigh shutdown timer due to sensor /xyz/openbmc_project/sensors/temperature/HGX_GPU_0_TEMP_1 value 16777214

Внимание: Ваш GPU не должен достигать 16 777 214 градусов Цельсия во время загрузки. Представьте, что случилось бы под нагрузкой!

Это заняло некоторое время для отладки, поскольку я был совершенно уверен, что датчики физически не могут считывать температуры выше 16 миллионов градусов Цельсия… Но затем я заметил нечто интересное в этом конкретном числе:

Десятичное

Двоичное

Шестнадцатеричное

16,777,214

1111 1111 1111 1111 1111 1110

0xFFFFFE

Это 2²⁴ - 2, что подозрительно близко к максимальному значению 24-битного целого без знака. В мире аппаратного обеспечения это сообщения от датчика: «Я понятия не имею, что происходит!» Когда оборудивание не может считать значение правильно — будь то из‑за плохого соединения, повреждённой цепи или сбоя инициализации — оно часто возвращает максимальное (или почти максимальное) возможное в данном представлении значение. Это похоже на цифровую версию пожатия плечами.

Логи подтвердили эту теорию: там была величина 1.67772e+07 (16 777 214), что не было свидетельством того, что мой GPU достиг температур ядерного синтеза 🔥 — это было свидетельством того, что датчик температуры просто вышел из строя. А если ошибка датчика носит прерывистый характер, наиболее вероятная причина — плохое соединение или физическое повреждение.

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

В этом году мне как раз пришлось обзавестись новым микроскопом, и он идеально подошел для диагностики и решения проблемы. Рядом с одним из модулей я обнаружил поврежденные компоненты для поверхностного монтажа. Скорее всего, они пострадали уже после чистки — вероятно, во время обратной сборки модулей с медн��ми переходниками. Те весят больше двух килограммов, так что даже легкий удар мог легко их повредить.

Удивительно, но эти крошечные детали всё еще держались на дорожках, что позволило мне их промерять: конденсатор на 100 нФ и резистор на 4,7 кОм (оба у меня были под рукой, поскольку это стандартные номиналы для развязки). Плохая новость была в другом: в моих запасах в основном лежали крупные компоненты типоразмера «0805» (длиной 2 мм), а здесь стояли крошечные «0402» (всего 1 мм). К тому же одна из контактных дорожок полностью оторвалась.

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

Финальные штрихи

Я напечатал на 3D-принтере несколько дополнительных деталей:

  • Крепления для E1.S SSD 8 ТБ, который я нашёл недорого онлайн

  • Полная задняя панель для монтажа блока питания 3 кВт 48 В

  • Стильная сетка для защиты радиаторов водяного охлаждения и пылевых фильтров

Запуск самих GPU также был болезненным, поэтому я оставлю детали здесь для будущих искателей приключений:

# Data Center/HGX-Series/HGX H100/Linux aarch64/12.8 seem to work!
wget https://us.download.nvidia.com/tesla/570.195.03/NVIDIA-Linux-aarch64-570.195.03.run

# Tell the driver to completely ignore the NVLINK and it should allow the GPUs to initialise independently over PCIe !!!!   This took a week of work to find, thanks Reddit!

# create a modprobe config file:
sudo nano /etc/modprobe.d/nvidia-disable-nvlink.conf

# add the driver option
options nvidia NVreg_NvLinkDisable=1

# update the boot files:
sudo update-initramfs -u

# reboot
sudo reboot

Бенчмарки

Ради этого вы, возможно, и пришли? Я только начал, но после компиляции последней версии Llama.cpp с использованием 144 ядер за 90 секунд, вот несколько цифр бенчмарков на LLM большего размера:

Модель

Обработка запроса
(ток/сек)

Генерация токенов
(ток/сек)

gpt-oss-120b-Q4_K_M

2974.79

195.84

GLM-4.5-Air-Q4_K_M

1936.65

100.71

Qwen3-235B-A22B-Instruct-2507-Q4_K

1022.79

65.90

Это довольно ещё не оптимизировано, но пока выглядит многообещающе! Во время тестов LLM я достигал потребления около 300 Вт на GPU, что далеко от максимума в 900 Вт.

Разбивка затрат

Вот во сколько обошлась вся сборка от первоначальной покупки до финальных штрихов:

Компонент

Описание

Стоимость (EUR)

Сервер Grace-Hopper

2x GH200 суперчипа с GPU H100 («Frankenstein special»)

€7,500

Хранилище

б/у 8 ТБ E1.S NVMe SSD («состояние нового»)

€250

Адаптеры для водяного охлаждения

2x ЧПУ‑фрезерованные медные монтажные пластины для AIO‑охладителей

€700

AIO водяные охладители

4x Arctic Liquid Freezer III 420 (B-Ware)

€180

Каркас конструкции

профили из экструдированного алюминия, предварительно нарезанные и доставленные

€200

Передняя панель из стекла

тонированная стеклянная передняя панель, предварительно нарезанная и доставленная

€40

Филамент для 3D-печати

2x 1 кг чёрного PLA для специальных креплений и скоб

€40

Различное оборудование

гайки, болты и монтажное оборудование

€50

Средство для очистки

5 литров 99.9% изопропилового спирта (использовал от души)

€20

Блок питания 12 В-5 А

отдельный блок питания для AIO-водяных охладителей

€10

Эстетика

светодиодная лента (потому что «RGB всё ускоряет»)

€10

Итого

Собственно, даже не перевалило за 9000

€9,000

Не включено: беруши (совершенно необходимы!), микроскоп, который у меня уже был (но оказался незаменим), расход материалов на несколько неудачных 3D-печатей и стоимость нервов от созерцания надписи про «16 777 214°C» в системных логах.

Заключение

Так стоило ли оно того? Теперь у меня есть настольная система, способная запускать модели с 235 миллиардами параметров дома, за меньшую стоимость, чем один H100. Это потребовало разборки оборудования стоимостью $80 000, отладки датчиков (показывающих температуры, словно плата лежит на поверхности Солнца), и пайки компонентов навесным монтажом под микроскопом. У вас могло бы получиться по-другому. Скажем, в смысле расстояния: мне вот пришлось проехать два часа, чтобы забрать эту систему.

Only registered users can participate in poll. Log in, please.
Автор — молодец?
55.74%Ух как он! На все сто молодец!68
36.89%Каждый развлекается как хочет… и может45
7.38%Рисково… Я бы на его месте не полез в такое9
122 users voted. 11 users abstained.