Complete Technical Guide: Flashing CMP 170HX & Unlocking 64 GB HBM2e on Ubuntu 22.04 LTS

Guia técnico completo: flashar a CMP 170HX e desbloquear 64 GB HBM2e no Ubuntu 22.04 LTS

# Guia técnico completo: flashar a CMP 170HX & desbloquear 64 GB de HBM2e em Ubuntu 22.04 LTS

Este guia percorre o procedimento completo para contornar as restrições OTP de fábrica da **NVIDIA CMP 170HX** (arquitetura GA100, Device ID `10de:20c2` / `10de:20b0`) com o **`CMPUnlocker`**. Isto repõe os Streaming Multiprocessors (SM) desativados e desbloqueia a geometria de memória HBM2e adormecida (expandindo os modelos de 8 GB até 64 GB de VRAM).

---

## Pré-requisitos técnicos & requisitos de sistema

Antes de começar, certifique-se de que o seu servidor anfitrião cumpre os seguintes critérios:

* **SO:** Ubuntu 22.04 LTS ou 24.04 LTS (x86_64).
* **Driver alvo:** pacote de drivers NVIDIA Open GPU Kernel Modules (ramo v580.x).
* **Privilégios de sistema:** acesso root / `sudo`.
* **Arrefecimento do hardware:** fluxo de ar forçado de alta pressão estática (ventoinhas de 4.000+ RPM num chassis de rack 4U) para evitar o encerramento térmico nos dissipadores passivos.

---

### Passo 1: auditoria do sistema e instalação de dependências
Comece por confirmar que a placa é detetada no barramento PCIe e instale o ambiente de desenvolvimento Python 3 e o parser YAML exigidos pelo script do unlocker.

```bash
# 1. Procurar a GA100 / CMP 170HX no barramento PCI
lspci -nn | grep -i nvidia
# O resultado esperado deve mostrar o Device ID 10de:20c2 ou 10de:20b0

# 2. Atualizar os índices do repositório e instalar as dependências de sistema
sudo apt update && sudo apt install -y \
build-essential \
python3 \
python3-pip \
python3-yaml \
git \
pciutils \
wget

3. Verificar a instalação do PyYAML
python3 -c "import yaml; print(yaml.__version__)"


Passo 2: instalar os drivers de kernel open-source da NVIDIA (ramo 580.x)

O CMPUnlocker depende de substituições de registo específicas no firmware NVIDIA GSP (GPU System Processor) carregado pela série de drivers nvidia-open 580.

# 1. Adicionar o PPA oficial dos Graphics Drivers
sudo add-apt-repository ppa:graphics-drivers/ppa -y
sudo apt update

# 2. Instalar o driver de GPU open-kernel e os utilitários CUDA
sudo apt install -y nvidia-driver-580-open nvidia-utils-580

# 3. Impedir que as atualizações automáticas quebrem os módulos de kernel
sudo apt-mark hold nvidia-driver-580-open

4. Verificar a presença do firmware GSP
ls -la /lib/firmware/nvidia/580.*/gsp_tu10x.bin

Passo 3: cópia de segurança do firmware GSP de origem

Crie sempre uma cópia de segurança do ficheiro binário de firmware não modificado (gsp_tu10x.bin) antes de executar o patch de desbloqueio.

# Localizar o caminho exato da pasta do driver
GSP_DIR=$(dirname$(ls /lib/firmware/nvidia/580.*/gsp_tu10x.bin | head -n1))

Criar uma cópia de segurança permanente do original
sudo cp "${GSP_DIR}/gsp_tu10x.bin" "${GSP_DIR}/gsp_tu10x.bin.stock"
echo "Backup saved to ${GSP_DIR}/gsp_tu10x.bin.stock"

Passo 4: clonar o CMPUnlocker e escolher o perfil de VRAM

Clone o repositório de origem e defina a geometria de memória alvo por omissão como unlocked_64gb para as variantes físicas de 8 GB.

# 1. Clonar o repositório para o espaço de trabalho local
cd /opt
sudo git clone [https://github.com/amoghmunikote/cmpunlocker.git](https://github.com/amoghmunikote/cmpunlocker.git)
cd cmpunlocker

# 2. Rever as definições de perfil na configuração de constantes
# Para placas físicas de 8 GB com alvo de 64 GB de VRAM:
sudo ./install.sh --profile=8gb

# (Nota: para as raras placas da revisão de 10 GB com alvo de 40 GB/80 GB, use --profile=10gb)

Passo 5: executar um ciclo de arranque a frio

Ao contrário dos recarregamentos normais do driver, o desbloqueio inicial do registo WPR2 e a descarga do estado dos condensadores SEC2 exigem um arranque a frio completo. Reinícios a quente fazem falhar a carga de desbloqueio na primeira execução.

# 1. Desligar o sistema por completo
sudo poweroff

Nota operacional: assim que o servidor desligar, desligue fisicamente os cabos de alimentação AC durante 60 segundos para descarregar totalmente a tensão de standby dos condensadores da placa-mãe e da placa gráfica. Volte a ligar a alimentação e arranque o Ubuntu.

Passo 6: correr o pipeline de desbloqueio & ativar o serviço systemd

Como as alterações de registo não sobrevivem nativamente a ciclos de alimentação profundos, o serviço em segundo plano do CMPUnlocker monitoriza os registos e volta a aplicar automaticamente o patch no arranque e em cada recarregamento do driver.

cd /opt/cmpunlocker

# 1. Executar o script de instalação do desbloqueio com privilégios root
sudo ./install.sh

# 2. Verificar o estado do serviço systemd
sudo systemctl status cmpunlocker.service

# 3. Acompanhar os registos do serviço para confirmar a aplicação do patch
journalctl -u cmpunlocker -f -n 20

Passo 7: validar a memória desbloqueada e o estado de computação

Consulte o nvidia-smi e corra um pequeno script de inicialização CUDA para confirmar o débito de computação total e o reconhecimento da VRAM.

# 1. Verificar a remoção do limite de frequência dos SM e a VRAM reportada
nvidia-smi --query-gpu=name,memory.total,clocks.max.sm --format=csv

# Resultado esperado:
# name, memory.total [MiB], clocks.max.sm [MHz]
# NVIDIA Graphics Device, 65536 MiB, 1410 MHz

# 2. Executar o script de teste CUDA com ctypes em Python
python3 -c "
import ctypes
cuda = ctypes.CDLL('libcuda.so.1')
init_res = cuda.cuInit(0)
print(f'CUDA Init Status: {init_res} (0 = SUCCESS)')
"

Resolução de problemas & modos de falha

Problema / sintoma Causa provável Ação corretiva
O nvidia-smi continua a indicar 8 GB de VRAM Substituição do registo GSP-RM falhada ou arranque a frio ignorado. Faça uma descarga física rigorosa de 60 segundos. Confirme que o gsp_patch.py atualizou corretamente o sh_size durante a instalação.
A GPU desaparece do barramento PCIe / throttling térmico Fluxo de ar insuficiente sobre o dissipador passivo. Garanta que as ventoinhas de alto CFM do chassis puxam ar diretamente através das alhetas da GPU. O fluxo de ar de uma torre de secretária não chega.
Falha do kernel sob carga intensa de LLM Defeito de silício na pilha HBM2e desbloqueada. Volte a correr ./install.sh --profile=40gb (ou edite o constants.yaml) para restringir a alocação de VRAM a um valor estável de 32 GB/40 GB.
Voltar para o blogue