Майнинговую Nvidia CMP 170HX разблокировали до уровня A100 на 80 ГБ с помощью глитча напряжения
Исследовательница под ником Kate опубликовала разбор того, как с помощью глитча напряжения (voltage fault injection, VFI) превратила майнинговую карту Nvidia CMP 170HX в полноценный ускоритель уровня A100 на 80 ГБ. Разблокированная карта оказалась даже быстрее эталонной: за счёт включения всех рабочих потоковых мультипроцессоров она выдаёт около 85,9 терафлопс в FP16 против 72,5 у розничного A100. Самое неожиданное — в Nvidia для сегментации чипа использовали предохранители (eFuse), пережигание которых, вопреки логике, не ограничивает, а наоборот расширяет возможности кристалла.
Что такое CMP 170HX и почему его есть за что разблокировать
CMP 170HX — майнинговая карта на кристалле GA100, том же, что лежит в основе дата-центрового A100. Номинально она продаётся в версиях с 8 или 10 ГБ видеопамяти, однако физически на плате распаяно заметно больше HBM: у 8-гигабайтной модификации «зашито» порядка 80 ГБ, у 10-гигабайтной — около 40 ГБ. Лишнюю память Nvidia отключила аппаратно через eFuse, чтобы развести линейки по сегментам.
До появления метода Kate сообщество уже умело частично снимать ограничения программно — с помощью утилиты cmpunlocker, которая патчит модули nvidia-open. Но софтовая разблокировка упиралась в потолок:
- CMP 170HX 8 ГБ: из коробки 8 ГБ, софт — 64 ГБ;
- CMP 170HX 10 ГБ: из коробки 10 ГБ, софт — 40 ГБ;
- потоковые мультипроцессоры оставались на отметке 70 из 128 физически доступных.
Глитч напряжения: как пережигание fuses открыло доступ
Kate обнаружила уязвимость в контроллере предохранителей чипа GA100, которая позволяет оператору пережигать произвольные eFuse. Всего контроллер содержит 16 384 eFuse (512 строк по 32), разбитых на регионы: обычные, «безфьюзовые» (fuseless fuses), IFF и RIR. В нормальном дизайне пережигание предохранителя должно вести только к более ограниченному состоянию, ведь «раздуть» fuse обратно экономически нереально. В GA100 часть функций сконфигурирована наоборот: пережигание дополнительных fuses ослабляет ограничения.
С помощью самодельного глитчера на микроконтроллере STM32 и точечных манипуляций по линии питания чипа исследовательница обходила защиту от записи и открывала доступ к «запечатанным» функциям. Результат проекта GA100VFI:
- память: 8-гигабайтная карта раскрывается до 64–80 ГБ, 10-гигабайтная — до 40–48 ГБ;
- SMs: 70 → 120–128 (зависит от конкретного экземпляра), тогда как в розничном A100 ради выхода годных оставили 108;
- шина PCIe: с Gen1 до Gen4;
- включаются NVLink, ECC, Multi-Instance GPU и аппаратный декодер NVDEC.
Производительность подскочила соответственно. По замерам Kate, в FP16 разблокированная карта выдаёт 85,858 TFLOP/s против 72,488 TFLOP/s у эталонного A100 — примерно в 1,18 раза быстрее. Это объясняется тем, что у неё работают все функциональные SMs, а не «безопасные» 108, выбранные Nvidia для серийных A100.
Цена вопроса и ограничения
Вся затея выглядит крайне выгодно: CMP 170HX на вторичном рынке стоит порядка 2,5–3 тысяч долларов, тогда как полноценный A100 на 80 ГБ обходится заметно дороже. Однако назвать модификацию массовой пока нельзя:
- требуется доработка платы и сборка собственного глитчера на STM32;
- на «раскрытие» одной карты уходит от 1 до 48 часов глитчинга;
- результат нестабилен: из десяти протестированных 8-гигабайтных карт одна физически имела лишь 64 ГБ рабочей памяти.
Отдельно Kate отмечает, что включение NVLink на CMP 170HX требует дополнительной небольшой аппаратной модификации из-за отсутствующего компонента на плате. Функции NVDEC, MIG и ECC заявлены как разблокируемые, но в рамках текущей работы детально не тестировались.
Что это значит для безопасности
С исследовательской точки зрения находка — пример того, что «неразрушающая» аппаратная сегментация не всегда работает так, как задумано. Kate опирается на более раннюю работу Джона Прая «A Canary in the Crypto Mine», посвящённую обходу защиты стека в защищённом сопроцессоре GPU. Свои находки она заранее передала команде продуктовой безопасности Nvidia, а исходный код инструментария выложила на GitHub.
Частые вопросы
Почему майнинговая CMP 170HX вообще поддаётся разблокировке?
Она построена на том же кристалле GA100, что и A100, а отличия между версиями задаются пережиганием eFuse. У Nvidia часть ограничений можно «снять» дополнительным пережиганием предохранителей, что и использует глитч напряжения.
Сколько памяти реально есть в CMP 170HX?
Физически на плате 8-гигабайтной версии распаяно около 80 ГБ HBM, на 10-гигабайтной — около 40 ГБ. Из коробки доступно лишь 8 и 10 ГБ соответственно, остальное отключено предохранителями.
Насколько быстрее разблокированная карта по сравнению с A100?
По замерам Kate, в FP16 она выдаёт около 85,9 TFLOP/s против 72,5 TFLOP/s у розничного A100 — примерно в 1,18 раза быстрее, потому что задействованы все рабочие потоковые мультипроцессоры.
Может ли обычный пользователь повторить этот мод?
Это непростая модификация: нужна доработка платы, собственный глитчер на STM32 и от 1 до 48 часов глитчинга на каждую карту, а результат зависит от конкретного экземпляра чипа.
Источники: blog.kate.land, tomshardware.com, reddit.com (r/LocalLLaMA)
Рекомендованные статьи