← nacyot / artifacts

DGX Spark(GB10 제품군) 클럭 제한 설정하는 방법

DGX Spark 계열(GB10 SoC)에는 와트 단위 전력 한도(nvidia-smi -pl)를 걸 수 없다. 대신 nvidia-smi -lgcGPU 클럭 상한을 지정하는 방식이 사실상 표준이다. ASUS Ascent GX10에는 300~2000MHz 상한을 systemd 서비스로 걸어 두었고, 재부팅 후에도 유지된다. MiniMax-H3에서는 부하 전력이 대략 83W → 44W(−47%)로 줄고 생성 시간은 9~17% 늘어났다. DeepSeek-V4-Flash(UD-Q2_K_XL)에서는 부하 전력 약 43W → 22W(−49%), decode 속도는 약 5% 느려졌다. 아래에서 설정 방법, 측정 방법, 워크로드별 실측, 상한 스윕, 일상 운용을 정리한다.

왜 와트가 아니라 클럭인가

일반 데스크톱 GPU라면 nvidia-smi -pl 150처럼 와트를 직접 지정한다. GB10(Grace Blackwell 통합 SoC)에는 그 인터페이스 자체가 없다. 이 장비에서 확인한 내용:

대신 클럭 상한을 걸면 전압도 같이 내려간다. 전력은 대략 전압²×클럭에 비례하므로, 와트 제한보다 효과가 더 크게 나오는 경우가 많다. 커뮤니티에서도 여름 운용 때 흔히 쓰는 방법이 -lgc다. 참고할 만한 커뮤니티 글이다.

hagihagi @hagihagi

dgx spark これから夏場に向けてGPUのクロック数を落とせば少しの速度低下と引き換えに熱さがマシになります。デフォルトの排熱の熱さはヤバい。 MAX3000ですが、我が家では1500~2500で運用 sudo nvidia-smi -lgc 300,2500 ←通常運用 sudo nvidia-smi -lgc 300,1500 ←急がない場合

DGX Spark, 앞으로 여름을 앞두고 GPU 클럭을 내리면 속도는 조금 희생되지만 발열이 덜하다. 기본 배기의 뜨거운 정도가 장난 아니다. 최대 3000이지만 우리 집에서는 1500~2500으로 운용한다. sudo nvidia-smi -lgc 300,2500 ← 평소 sudo nvidia-smi -lgc 300,1500 ← 급하지 않을 때

2026-05-30조회 163♥ 1X에서 보기 ↗
limegreenpeper753 @limegreenpeper1

deepseek-ai/DeepSeek-V4-Flash-0731 モデル公開に感謝 2X DGX Spark(互換機) 夏仕様 2100MHz制限(70度)で7:49で生成 同じプロンプトでM3 Ultraの約3分の1の時間 DSpark版の登場に期待しています

deepseek-ai/DeepSeek-V4-Flash-0731 모델 공개에 감사. DGX Spark 호환기 2대, 여름 설정 2100MHz 제한(70°C)에서 7:49에 생성. 같은 프롬프트로 M3 Ultra의 약 1/3 시간. DSpark 버전 등장을 기대한다.

2026-07-31조회 281♥ 2X에서 보기 ↗
John Carmack @ID_AA_Carmack

DGX Spark appears to be maxing out at only 100 watts power draw, less than half of the rated 240 watts, and it only seems to be delivering about half the quoted performance (assuming 1 PF sparse FP4 = 125 TF dense BF16) . It gets quite hot even at this level, and I saw a report of spontaneous rebooting on a long run, so was it de-rated before launch?

DGX Spark가 전력 소모 약 100W에서 막히는 것 같다. 정격 240W의 절반도 안 되고, 공시 성능의 절반 정도만 나오는 느낌이다(1 PF sparse FP4 = 125 TF dense BF16 가정). 이 수준에서도 꽤 뜨겁고, 긴 작업에서 갑자기 재부팅됐다는 보고도 봤다. 출시 전에 디레이트된 건가?

2025-10-27조회 26.5만♥ 1171X에서 보기 ↗

Carmack 관측은 “정격 240W의 절반 근처에서 막힌다”는 SoC 전력 상한 논의의 출발점이다. 와트 한도 API가 없는 것과는 별개로, 보드가 실제로 그리는 전력이 스펙 라벨보다 낮다는 현장 보고다.

클럭 제한 설정하는 법

한 번만 적용 (재부팅하면 풀림)

sudo nvidia-smi -lgc 300,2000   # 상한 2000MHz (하한 300MHz는 유휴용. 낮게 두는 편이 유휴 전력에 유리하다)
sudo nvidia-smi -rgc            # 즉시 해제

지정한 값은 내부 클럭 단계에 맞춰 반올림된다. 2000을 넣으면 실측으로는 약 1989MHz에 붙었다. 지원 클럭 표는 조회가 안 된다(SUPPORTED_CLOCKS도 N/A). 적용한 뒤에는 부하 중 clocks.current.sm을 보면 실제 클럭을 확인할 수 있다.

재부팅 후에도 유지되게

/etc/systemd/system/gpu-clock-cap.service:

[Unit]
Description=GPU clock cap 300-2000MHz (thermal/power tuning, 2026-08-09)
After=multi-user.target
Wants=multi-user.target

[Service]
Type=oneshot
ExecStart=/usr/bin/nvidia-smi -lgc 300,2000
RemainAfterExit=yes
ExecStop=/usr/bin/nvidia-smi -rgc
Restart=on-failure
RestartSec=10

[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable --now gpu-clock-cap.service

ExecStop에 해제 명령을 넣어 두면 systemctl stop이 곧 상한 해제가 된다. 서비스를 켜고 끄면 클럭 제한도 같이 켜지고 꺼진다.

실측: 전력·온도·성능

장비는 ASUS Ascent GX10(GB10), 통합 메모리 121GB, 드라이버 580.173.02. 클럭 상한은 systemd로 300,2000(실측 약 1969MHz). 상한을 끄면 부하 중 SM은 대략 2400~2500MHz대다.

측정 방법

표의 숫자는 한 순간만 찍은 값이 아니다. 벤치 동안 1초마다 샘플을 남긴 뒤, GPU 이용률이 높은 구간만 골라 평균냈다.

# 전력 로거 핵심 (약 1Hz)
nvidia-smi --query-gpu=power.draw,utilization.gpu,temperature.gpu \
  --format=csv,noheader,nounits

한계도 있다. H3 생성 시간은 조건당 1회라 실행마다의 흔들림은 안 보인다. DeepSeek는 3회라 속도 쪽은 조금 더 안심할 수 있다. 전력은 GPU 센서 기준이라 보드 전체 소비와는 다를 수 있고, 샘플 간격이 약 1초라 수 ms 단위 스파이크는 놓친다.

MiniMax-H3 · 2000 on/off 비교

상한을 2000과 무제한만 바꿔, Turbo 8과 20step 두 워크플로를 나란히 본다. 1400부터 무제한까지 200MHz 간격 스윕은 아래 H3 상한 스윕에 있다.

ComfyUI 헤드리스 생성 중 1초 샘플. 전력·온도는 util ≥ 50% 평균, 괄호는 그 구간 min~max.

표 1. MiniMax-H3 2000 on/off (2026-08-10, 864×480 · 124f · seed 1234 · NVFP4 DiT + Sage + VAE int8)

워크로드상한총 시간샘플 수전력(부하 평균)온도(부하)
Turbo 8 step끔 (~2.4GHz)97.7s94 (부하 87)82.6W (61.7–88.2)80.8°C
Turbo 8 step켬 (~1.97GHz)114.4s111 (부하 95)44.0W (23.8–48.3)59.5°C
20 step + TeaCache81.9s80 (부하 72)87.0W (75.2–90.7)84.5°C
20 step + TeaCache89.7s87 (부하 79)51.2W (34.6–56.0)68.1°C

그림 1a. Turbo 8 — 전력 (1Hz)

검정=상한 끔, 파랑=상한 켬. 전력(W)만. 호버 시 수치.

그림 1b. Turbo 8 — 온도 (1Hz)

같은 구간의 GPU 온도만. 상한 끔/켬.

그림 1c. 20 step + TeaCache — 전력 (1Hz)

전력만. 상한 끔/켬.

그림 1d. 20 step + TeaCache — 온도 (1Hz)

온도만. 상한 끔/켬.

그림 2. 생성 총 시간 (낮을수록 빠름)

20step 끔
81.9s
20step 켬
89.7s
Turbo8 끔
97.7s
Turbo8 켬
114.4s

H3 결과 해석

조건은 해상도 864×480, 124프레임(약 5.2초), 시드 1234, 같은 프롬프트, ComfyUI API 헤드리스. DiT는 pruned NVFP4, 텍스트 인코더 NVFP4, 비디오 VAE int8_convrot.

DeepSeek-V4-Flash · 1대 (통합 메모리 121GB)

GX10 한 대(통합 메모리 121GB)에서 돌아가도록 고른 Unsloth 양자화다. Unsloth UD-Q2_K_XL(3 shard, 디스크 ~91GB). 러너는 네이티브 llama-server(CUDA, -ngl 999, flash-attn, ctx 4096). 각 상한마다 워밍업 64토큰 한 번 뒤 256토큰 생성을 세 번. 전력은 util 40% 이상 구간의 평균.

표 1b. decode 요약 (3회 중앙값)

상한decode tok/sprompt tok/s256tok wall전력(부하)온도(부하)
끔 (~2.4–2.5GHz)17.569.914.9s42.6W (41.3–43.7)58.6°C
켬 (~1.97GHz)16.665.715.7s21.9W (18.5–22.4)49.8°C

표 1c. 런별 decode tok/s (256 토큰, 동일 프롬프트)

상한run1run2run3중앙값범위
17.4917.5117.4917.4917.49–17.51 (±0.1%)
16.5516.6716.6416.6416.55–16.67 (±0.4%)

세 번의 편차가 1% 미만이다. 우연한 한 점이 아니라, 같은 조건에서 거의 같은 속도가 나온다. 상한 on/off 차이(약 −4.9%)는 그 편차보다 훨씬 크다.

그림 3a. DeepSeek — 전력 (1Hz, 워밍업+3회)

전력만. 상한 끔 ~42W, 켬 ~22W 고원.

그림 3b. DeepSeek — 온도 (1Hz, 같은 구간)

온도만. 상한 끔/켬.

그림 4. decode 속도 / 부하 평균 전력

끔 tok/s
17.5
켬 tok/s
16.6
끔 전력
42.6W
켬 전력
21.9W

고정 조건: 동일 프롬프트, n_predict=256, temperature 0.6, top_p 0.95, cache_prompt=false. 모델 상주 시 통합 메모리 약 94GB.

DeepSeek 상한 스윕 (1400 → 무제한, 200MHz)

DeepSeek-V4-Flash만, 동일 조건으로 상한만 바꿔 10점을 찍었다. 각 점: 워밍업 64토큰 + 256토큰 3회(중앙값). 1Hz CSV에 전력·util·GPU온도·SM클럭·팬·ACPI 온도를 남겼다.

팬 속도: 이 장비(GB10)에서 nvidia-smi fan.speed는 항상 [N/A]다. hwmon 팬 노드·IPMI·PWM 칩도 없다. CSV fan_pct 컬럼은 남겨 두었지만 전 구간 null. 대신 GPU 온도와 ACPI acpitz zone 최댓값을 열 프록시로 기록했다.

표 1d. 상한 스윕 요약 (부하 util≥40% 평균, 2026-08-10)

상한SM 실측decode tok/s전력 WGPU °CACPI °Ctok/W
1400139114.9914.7 (13.2–15.0)48.8 (47–50)57.6N/A1.020
1600158615.7316.8 (16.1–17.4)51.2 (50–52)59.2N/A0.936
1800176816.2419.0 (18.3–19.4)52.7 (52–53)59.9N/A0.855
2000196416.6722.3 (21.7–23.0)54.5 (53–55)61.8N/A0.748
2200218517.0527.6 (26.4–28.4)56.8 (55–58)65.3N/A0.618
2400237917.3734.0 (32.6–34.4)59.7 (58–61)67.6N/A0.511
2600249817.4743.8 (42.0–44.6)64.0 (62–66)70.5N/A0.399
2800249517.4344.3 (42.5–44.9)66.6 (65–68)72.8N/A0.394
3000249517.4544.8 (43.1–45.2)68.3 (67–70)74.7N/A0.390
무제한249617.4744.8 (42.1–46.0)68.5 (66–69)75.1N/A0.390

그림 5a. DeepSeek 상한별 decode tok/s

속도만. 호버 시 해당 상한 수치.

그림 5b. DeepSeek 상한별 부하 전력

전력만 (막대).

그림 5c. DeepSeek 상한별 GPU 온도

온도만.

그림 6a. DeepSeek 선택 상한 — 전력 1Hz (1400 / 2000 / 2400 / ∞)

전력만 4선.

그림 6b. DeepSeek 선택 상한 — 온도 1Hz

온도만 4선. 6a와 같은 시각축.

그림 7a. DeepSeek 상한별 SM 클럭 실측

SM MHz만. 2600+에서 ~2495에 붙는다.

그림 7b. DeepSeek 상한별 효율 (tok/W)

효율만. 낮은 상한일수록 높다.

정리하면, 일상 기본값은 2000이 무난하다. 속도가 더 필요하면 2200~2400. 2600 이상은 DeepSeek 디코드 기준으로는 이득이 거의 없다. H3 같은 비디오 부하는 병목이 달라 최적 상한이 조금 다를 수 있다.

MiniMax-H3 상한 스윕 (1400 → 무제한, 200MHz)

DeepSeek 스윕과 같은 상한 점이다: 1400, 1600, 1800, 2000, 2200, 2400, 2600, 2800, 3000, 무제한. 워크플로는 이전에 가장 빨랐던 스택 하나(NVFP4 DiT + Sage + TeaCache + VAE int8, 20 step, 864×480, 124프레임). 시드는 상한마다 다르게 잡았다. 상한마다 생성 한 번(약 95~125초). 1초 간격으로 전력·온도·SM을 기록했다(팬은 N/A).

표 1e. H3 상한 스윕 (util≥50% 부하 평균, 2026-08-10)

상한SM 실측총 시간샘플링전력 WGPU °C샘플 수
14001390125.3s85.8s28.3 (13.9–30.1)51.6 (42–55)N/A122
16001583113.3s77.5s33.4 (9.6–36.3)53.8 (43–58)N/A110
18001774107.3s72.4s40.7 (16.2–44.0)60.8 (55–64)N/A105
20001964102.7s68.7s50.3 (31.4–55.2)66.2 (58–70)N/A100
2200217197.2s65.6s64.5 (39.7–70.8)72.5 (64–78)N/A95
2400234096.8s64.6s83.4 (29.6–90.6)80.1 (70–87)N/A95
2600236295.3s64.8s86.9 (55.0–93.0)82.6 (71–89)N/A93
2800235697.0s64.4s86.7 (46.3–92.1)83.9 (73–89)N/A95
3000235295.2s64.8s86.3 (59.9–91.2)83.0 (72–88)N/A93
무제한234196.1s65.2s86.3 (62.4–92.3)84.1 (73–89)N/A94

그림 8a. H3 상한별 총 생성 시간

시간만 (초). 낮을수록 빠름.

그림 8b. H3 상한별 부하 전력

전력만.

그림 8c. H3 상한별 GPU 온도

온도만.

그림 9a. H3 선택 상한 — 전력 1Hz (1400 / 2000 / 2400 / ∞)

전력만 4선.

그림 9b. H3 선택 상한 — 온도 1Hz

온도만 4선.

일상 운용

표 2. 조작 명령

하고 싶은 것명령
잠깐 풀클럭sudo systemctl stop gpu-clock-cap
상한 다시 적용sudo systemctl start gpu-clock-cap
완전 제거sudo systemctl disable --now gpu-clock-cap
수치 변경유닛 파일의 300,2000 수정 후 daemon-reload + restart
현재 상태 확인nvidia-smi --query-gpu=clocks.sm,power.draw,temperature.gpu --format=csv

표 3. 상한값 선택 가이드 (최대 클럭 3003MHz 기준)

상한용도예상
2200H3 속도 우선 후보DS 17.1·28W / H3 97s·65W·73°C
2000 (현재)공통 균형 기본값DS 16.7 t/s·22W·55°C / H3 103s·50W·66°C
1800한여름·환기 나쁜 날DS: 16.2 t/s · 19W · 53°C
1400~1600장시간·저열DS: 15.0~15.7 t/s · 15~17W · 49~51°C

다음에 할 일

부록 · PD 저클럭 고착 버그

앞에서 다룬 클럭 제한 설정과는 별개다. 성능이 갑자기 이상하게 떨어졌을 때만 보면 된다.

GB10 계열에서 가끔 보고되는 펌웨어 쪽 현상이다. 최대 부하인데도 클럭이 400~950MHz에 붙고, 전력은 10W 근처, 성능은 1/3~1/5로 내려간다. thermal/power slowdown 플래그는 전부 Not Active라 스로틀로 오해하기 쉽다. USB-C PD 컨트롤러가 전력 협상을 잘못해 SoC가 스스로 클럭을 묶는 경우로 알려져 있다.

의도적으로 건 상한(약 1969MHz)과 구분한다. 부하 중 SM 클럭이 400~950MHz면 이 버그를 의심하고, 1970MHz 안팎이면 설정한 상한이 정상 동작 중인 것이다.

부하 중 클럭으로 구분

부하 중 클럭진단조치
~1970MHz 안팎클럭 상한 정상필요하면 systemctl stop gpu-clock-cap
400~950MHz 고정PD 고착 가능아래 절차. 재부팅·-rgc만으로는 안 풀리는 경우가 많다

해제 절차 (커뮤니티에서 반복 확인)

종료
전원 케이블 뽑기
전원 버튼으로 방전
1분 대기
재연결·부팅

PD 컨트롤러는 재부팅만으로 전원이 안 끊기는 경우가 있어, 전원 케이블을 뽑는 쪽이 확실하다. 예방은 PD/UEFI 펌웨어를 최신으로 두는 것이다. 이 장비에는 당시 fwupdmgr에 USB-C 관련 업데이트가 대기 중이었고, 재부팅이 필요해서 아직 적용하지 않았다.

출처

@hagihagi — 여름 클럭 제한 (2500 / 1500) @limegreenpeper1 — 2100MHz 제한 · 약 70°C @ID_AA_Carmack — DGX Spark 전력·성능 관측 @runsonai — GX10 PD 펌웨어 + -lgc 복구 @hnakamur2 — 400MHz 고착 · 전원 케이블 재연결 @MichaelHutu — 1분 전원 차단

작성 2026-08-10 · H3·DeepSeek 실측 2026-08-10 (GB10 / ASUS Ascent GX10, 드라이버 580.173.02) · nacyot / artifacts