// 技術ノート · GB10 の熱挙動

DGX Spark の GB10 が持続負荷で 高温になる理由

NVIDIA DGX Spark は GB10 スーパーチップ(Blackwell アーキテクチャ、 計算能力 sm_121、一部の初期 CUDA ツールチェーンでは sm_90)を搭載しています。 持続的な推論またはトレーニングワークロードでは、GB10 は 80°C 台前半で 無期限に安定します。ハードウェア欠陥ではなく、設計上の選択です。 通常の NVIDIA GPU が公開している冷却レバーは、このシリコンには存在しません。

欠けているもの

電力上限とファン制御はどちらも nvidia-smi から [N/A] を返します。

$ nvidia-smi --query-gpu=power.limit,power.max_limit,power.min_limit,fan.speed --format=csv,noheader
[N/A], [N/A], [N/A], [N/A]

これらは「隠されている」わけでも sudo で保護されているわけでもなく、 GB10 のドライバインターフェースに実装されていません。ファームウェアが 温度とワークロード状態に基づいて両方の次元を内部で管理します。 ユーザースペースの設定でこれを変更する手段はありません。

唯一動作するもの:--lock-gpu-clocks

唯一応答するレバーはグラフィックスクロックの上限です。 nvidia-smi --query-supported-clocks=graphics が GB10 で [N/A] を返す一方で、ドライバは --lock-gpu-clocks 経由でシリコンの動作範囲内の任意の整数 MHz 値を 受け付けます。

$ sudo nvidia-smi -lgc 1500,2000 -i 0
GPU clocks set to "(gpuClkMin 1500, gpuClkMax 2000)" for GPU 0000000F:01:00.0
All done.

本番ハードウェアでの参考上限は約 3003 MHz、受け入れられる下限は約 900 MHz、 間のステップも尊重されます。-rgc でストックにリセットされます。 どちらのコマンドも即座に効きます。

結果:持続的な高温がデフォルト運転状態

ダウンクロックのタイミングをファームウェアだけが決定し、しかも保守的に (SW-slowdown を回避するのみで、任意の温度ターゲットを追わない)動作するため、 Ollama を 90%以上の利用率で運用する DGX Spark は 80°C 台前半に張り付いた まま無期限に運転を続けます。ユーザーがファームウェアにより積極的な動作を 要求する手段はありません。残る唯一のアクチュエータがグラフィックスクロック 上限です。

私たちのアプローチ

30 秒ごとに GPU 温度をサンプリングし、3 バンドヒステリシスでクロック上限を 150 MHz ステップで動かす小さなデーモンを構築しました。警告バンド進入時に ステップダウン、目標バンドで ホールド、3 連続クールサンプル後に ステップアップ。本番 GB10 ノード(spark-23)では、同じ 94% 利用率で 持続温度が 11°C 低下しました。完全なメカニズムとライセンス条件は製品ページ: thermal.zctechnologies.org。ライブテレメトリ: /live-telemetry.html。 GB10 での -lgc の実挙動リファレンス: /nvidia-smi-lgc-on-gb10.html。


C.R. Burrell LLC 発行。DGX Spark を本番運用するエンジニア向けに執筆。訂正は [email protected] へ。