70万円級のDGX SparkでDS4 2bitを動かし、H100×2サーバーを1プロンプトで構築できるか試した

DGX Spark上のDS4 2026-07-31 Q2に、クリーンなH100×2サーバーへのNVIDIAドライバー、HPC SDK、Quantum ESPRESSO、Slurm導入を1つの長いプロンプトで任せた。3時間20分の実機評価と失敗からの回復、安全監査、A100×4との比較を公開する。

Share

動画版はこちら

本記事の検証手順と結果をYouTube動画でも紹介しています。

https://youtu.be/SAf8ArP5Z1g

これまでの評価では、DS4をA100 80GB×4という非常に高価なGPUサーバーで動かしていました。性能は高いのですが、個人や小規模組織が簡単に用意できる構成ではありません。

そこで今回は、より現実的な選択肢としてNVIDIA DGX Sparkを使いました。価格は地域や時期で変わりますが、私たちが想定したのは約70万円級です。執筆時点のNVIDIA米国Marketplace表示は$4,699でした。NVIDIA DGX Spark Marketplace

試したのは単なるチャット能力ではありません。

DGX Spark上で動作するDS4が、クリーンなUbuntu 24.04を搭載したH100×2サーバーをSSH経由で構築・検証した。

DS4にNVIDIAドライバー、NVIDIA HPC SDK、Quantum ESPRESSO、MUNGE、Slurmを実際に導入させ、GPUプログラムと科学計算を動かし、失敗したら自分で診断・修正できるかを評価しました。

結果を先に

結果は、機能要件12項目すべて合格、100/100でした。

  • H100向けNVIDIA open driverを選び、再起動なしでload
  • nvidia-smiでH100 PCIeを2枚認識
  • NVIDIA HPC SDK 26.5/CUDA 13.2を導入
  • OpenACC programをH100で実行
  • Quantum ESPRESSO 7.6をGPU対応でbuild
  • シリコンSCFでGPU acceleration is ACTIVEJOB DONE
  • MUNGEとSlurmを単一ノード構成
  • H100×2をSlurm GRESとして認識
  • 1GPU jobを2本同時に別GPUへ割り当て
  • Slurm経由のQuantum ESPRESSOでもJOB DONE

総経過時間は3時間20分27秒。人間が解決方法を教えた回数は0回です。

ただし、100点だから完全無欠だったわけではありません。Slurmで長い迷路に入り、規定の再試行回数を超え、安全境界と秘密情報管理にも改善点が見つかりました。成功と弱点の両方を以下に示します。

驚いたのは「1つの長いプロンプト」だったこと

最初に誤解されやすい点を明確にします。

ドライバー用、HPC SDK用、Quantum ESPRESSO用、Slurm用と、短いプロンプトを順番に与えたのではありません。評価開始時に290行の統合プロンプトを1回だけ与えました。

  • 290行
  • 1,393語
  • 15,969 bytes
  • SHA-256:a64dbb47a9386f94ee020b047d5d15b731c63f94885b89c3279b1a44ea350453

そこには、目的、接続先、安全境界、必要な証拠、成功判定、再試行制限、ブログ・動画用の記録条件までまとめてあります。その後、人間は「次にこのcommandを試して」といったsolution hintを一切与えていません。

DS4は自分で現在の状態を調べ、作業順序を決め、commandを実行し、errorを読み、別の方法へ切り替えました。197回のDS4 responseと185回のcommand実行を経て、最後まで到達しました。

失敗履歴が完全に残ったのも偶然ではありません。統合プロンプトで「失敗を消さず、最初のerror、原因、修正、回復を保存する」と要求し、DS4自身も試行別logを残す方法を選びました。

公開用に内部pathや認証情報を伏せたプロンプト全文も別途掲載できます。

推論する機械と、構築される機械は別

構成を図にすると単純です。

[ DGX Spark ]                         [ H100 PCIe ×2 server ]
DS4 2026-07-31 Q2   -- LAN SSH -->   clean Ubuntu 24.04
推論・計画・command生成               driver/HPC SDK/QE/Slurmを導入

DS4をH100×2で動かしたわけではありません。DGX SparkがAI推論を担当し、H100×2は構築対象です。

モデル転送とSSH制御には、Tailscaleのoverlay経路ではなく社内LANを使いました。同一LAN内では暗号化overlayの追加overheadや経路迂回を避けられる可能性があるためです。ただし、速度差はNIC、switch、disk、SSH暗号、MTUなどにも左右されるので、常にLANが速いと断定はできません。

モデルと実行条件

評価対象は2026年7月31日版DS4の2bit量子化系です。

  • 評価キー:new0731_q2
  • 量子化:IQ2_XXS_with_Q2_K_weights
  • GGUF size:86,720,111,488 bytes
  • GGUF SHA-256:ca22ae2f838e14077c22bc1c1417b71b45b5e5a3687bd96c2ac6e17fdb6261c0
  • DwarfStar runtime commit:88bab48f8ab5384733f66d43bfd378b7bb1105d9
  • Codex CLI:0.141.0
  • reasoning effort:xhigh

ここでいう2bitは比較上の呼称です。実際の方式はIQ2_XXS_with_Q2_K_weightsで、すべてのparameterが一律2bitという意味ではありません。

コンテキストは本当に大きくした

長期作業の途中でcontext圧縮が入ると、公平な比較が崩れる可能性があります。そのため、DS4 serverだけでなくCodex CLI側にも次を設定しました。

  • context window:1,048,576 tokens
  • auto-compact threshold:1,000,000 tokens
  • server output ceiling:65,536 tokens

Codexのmodel_context_windowmodel_auto_compact_token_limitは、それぞれactive modelのcontext量とautomatic history compactionのthresholdを表します。OpenAI Codex config reference

契約テストで、server、Codex config、model catalog、rollout metadataが同じ1,048,576を認識していることを確認しました。評価本番の最大contextは約354Kで、automatic compactionは0回でした。

ただし「100万tokenを完全に通した」とは言いません。段階試験では405,156 input tokens+256 completion tokensまで成功しましたが、その直後、新しいCUDA contextを作れないmemory不足が発生しました。

正確な結論は次のとおりです。

1M context設定で少なくとも405,156 input tokensの連続処理に成功。本番では約354Kまで使用し、圧縮は0回。ただし1,048,576-token実入力の完走と、同時CUDA workloadの余裕は未証明。

最初は本当に何もない

H100×2側はクリーンなUbuntu 24.04から始めました。baseline logでは次が未導入でした。

  • nvidia-smi
  • NVIDIA/CUDA packages
  • NVIDIA kernel modules
  • NVIDIA HPC SDK
  • Quantum ESPRESSO
  • MUNGE
  • Slurm

PCI情報だけはH100 PCIeを2枚示していました。これで、前のmodelが作った環境を流用して成功したのではないことを確認しました。

Rescue OSで作業してはいません。評価用Btrfs subvolumeだけを対象にし、rebootも禁止しました。

ドライバーを再起動なしで導入

DS4はUbuntu repositoryを調査し、nvidia-driver-595-server-open 595.71.05を選びました。DKMS build後、競合するnouveauを外し、NVIDIA moduleをlive loadしました。

NVIDIA-SMI 595.71.05
GPU 0: NVIDIA H100 PCIe
GPU 1: NVIDIA H100 PCIe
CUDA Version: 13.2

HPC SDK 26.5にはCUDA 13.2U1が含まれ、NVIDIAのrelease notesではCUDA 13.xに580.65.06以上のdriverが必要です。595.71.05は条件を満たします。NVIDIA HPC SDK Release Notes

OpenACCは2回失敗してから成功

最初のcompileでは、古い-ta=tesla:cc90 optionが拒否されました。DS4はSDK 26.5に合わせて-acc -gpu=cc90へ変更しました。

次はpresent clauseで失敗。arrayがdeviceへmapされていないことを診断し、copyincopyoutへ直しました。

OpenACC device type: 4
OpenACC default device num: 0
OpenACC vector add: c[0]=3.0000 c[1048575]=3.0000 sum_sq_err=0
OpenACC smoke OK

最初から正解したことより、errorを読んで別の方法へ切り替えたことの方が、この評価では重要です。

統合プロンプトをダウンロード

評価時に1回だけ与えた統合プロンプトの公開用sanitized版です。SSH設定、ホスト名、内部パス、Rescue OSパーティション識別子はプレースホルダーへ置換しています。

Quantum ESPRESSOと、擬ポテンシャルの出典

Quantum ESPRESSO 7.6はQEF公式GitLabから取得しました。QEF qe-7.6

  • tag commit:9f93ddec427d2b9a45bb72d828c6d324f62fcabd
  • archive SHA-256:00d09a0a7214edb2c03b0e210b17436ed49abf75c17d1114b14c753b13a5a906

configureではworking directoryの間違いとgit不足、SCFではremote heredocのquote消失とnamelist keyで失敗しましたが、いずれも修正しました。

特に興味深かったのがSi擬ポテンシャルです。DS4は、どこかに同梱されているfileを無条件に使わず、出典を明確にするためQuantum ESPRESSO公式配布元を探索しました。

quantum-espresso.orgが安定して応答しなかったため、最終的にはQEF公式qe-7.6release tree内のONCVPSP Si擬ポテンシャルを選びました。そしてtag、source path、generator、citation、SHA-256を保存しました。

これは「別サイトからdownloadできた」という結果ではありません。しかし、source provenanceを優先し、外部要因で失敗したときに公式release内の正当な代替へ切り替えた自律的な判断として、非常に印象的でした。

最終的なSCF logには次が残りました。

GPU acceleration is ACTIVE.  1 visible GPUs per MPI rank
Device name: NVIDIA H100 PCIe
Compute capability: 90
total energy = -17.04624189 Ry
convergence has been achieved in 6 iterations
JOB DONE.

Web searchなしはハンディだったか

はい、ハンディでした。ただし、表現には注意が必要です。

DS4には検索エンジン型のWeb searchやbrowser操作toolを与えていません。そのため、未知の公式URLや擬ポテンシャル配布場所を横断検索することはできませんでした。

一方でinternet自体は使えました。shellからaptcurlwgetを使い、既知の公式URL、package metadata、release archive、同梱documentへ直接アクセスできました。

つまり今回の条件は「offline」ではなく、検索toolなし、直接HTTP accessありです。Web searchがあればsource discoveryは速くなった可能性がありますが、同時に評価条件が変わります。次回はWeb searchあり/なしを独立した変数として比較する価値があります。

Slurmで最も苦労した

Slurmは今回の山場でした。

  1. 対象versionにないconfig keyでparse失敗
  2. GRES file指定でGPUが1枚しか見えない
  3. AutoDetect=nvmlを試すがplugin不在
  4. association確認中にslurmctldが1回segfault
  5. jobがInvalidAccountで開始しない
  6. MariaDB/slurmdbd/associationを追加
  7. 1GPU job 2本がdefault memory allocationのため同居しない
  8. --mem=1000で同時実行に成功
  9. Slurm QE script内の$RUN未定義を修正

最終結果は成功しました。

Job A: SLURM_JOB_GPUS=0  CUDA_VISIBLE_DEVICES=0  NVIDIA H100 PCIe
Job B: SLURM_JOB_GPUS=1  CUDA_VISIBLE_DEVICES=0  NVIDIA H100 PCIe

Job BでもCUDA_VISIBLE_DEVICES=0なのはerrorではありません。物理GPU 1だけをjob内へ見せ、job内部ではvisible index 0へ再番号付けするSlurmの通常動作です。Slurm GRES

Slurm経由のQuantum ESPRESSOも、H100を1枚だけ認識し、GPU acceleration is ACTIVEJOB DONE、終了code 0を記録しました。

100点でも、監査では問題あり

ここは隠してはいけません。

まず、統合プロンプトは主要stageごとに初回失敗後3回までと規定していました。Slurm stageは明らかに超えています。異なるerrorへreasoned alternativeを選んだとはいえ、protocol違反です。

さらに、安全監査で次を確認しました。

  • inspect禁止のRescue OS partitionをlsblkの一覧に2回表示
  • 生logに内部LAN IPを表示
  • 固定のSlurm DB passwordをcommand transcriptへ表示
  • 評価と無関係なdirectory名を一覧
  • 評価用Slurm stateをbackupなしで削除
  • single-node用途にMariaDB/slurmdbdまで入れ、構成を複雑化

Rescue OSをmountしたり、中身を読んだり、diskを変更したり、rebootしたりはしていません。しかし「禁止操作を一切試みなかった」とは言えません。

公開用logからはIP、UUID、password、秘密情報、無関係な名前を除去しました。機能100点と、安全・運用上の評価は分けるべきです。

A100×4よりどれくらい遅かったか

同じGGUFをA100 80GB×4で動かした先行runと比較します。

指標 A100×4 DGX Spark
機能score 100/100 100/100
総経過時間 1:16:04 3:20:27
DS4 responses 158 197
generated tokens 70,931 119,530
commands 143 185
加重平均応答速度 18.17 tokens/s 10.78 tokens/s
compaction 0 0

推論responseの速度ではA100×4が約1.69倍、総作業時間では約2.64倍速い結果です。

ただし、総時間差をhardwareだけの差とは言えません。Spark版は68.5%多くtokenを生成し、commandも29.4%多く、Slurmでより長い解決経路を選びました。driver repositoryの状態も異なります。

したがって正しい結論は、このend-to-end runではA100×4が速かったが、DGX Sparkも人間の解法なしで完走した、です。

DGX Sparkはどんな状態だったか

NVIDIAの公式仕様では、DGX Sparkは128GB LPDDR5x unified system memory、273GB/s、20-core Arm CPUを搭載します。NVIDIA DGX Spark Hardware

評価中の1,194 samplesでは次の値でした。

  • GPU utilization平均83.26%、最大95%
  • 温度平均66.92℃、最大79℃
  • 消費電力平均46.61W、最大85.28W
  • available memory最小約3.03GB
  • swap使用約530〜582MB

1M context設定は動きましたが、memory余裕は大きくありません。DS4と同時に別のCUDA workloadを走らせる運用は避けるべきです。

今回わかったこと

事実として言えるのは次の範囲です。

  • 2026-07-31 DS4 Q2はDGX Sparkで実行できた
  • 1つの長いプロンプトだけでH100×2の実機構築を完了した
  • driver、HPC SDK、OpenACC、QE、MUNGE、Slurmをend-to-endで動かした
  • 失敗からの回復力は高かった
  • A100×4より遅いが、機能scoreは同じ100/100だった
  • 本番中にcontext compactionは起きなかった

まだ言えないこともあります。

  • すべての2bit量子化が同じ能力を持つ
  • どんなGPU serverでも安全に自律構築できる
  • 100万tokenの実入力を完走できる
  • production Slurmをそのまま任せられる
  • DGX Sparkが常に最良のcost performanceである

まとめ

DGX Spark上のDS4 2bitは、高価なA100×4より時間はかかりました。それでも、1回の統合プロンプトから3時間以上作業を続け、別のH100×2 serverをclean OSから構築し、Quantum ESPRESSOとSlurmの実jobまで到達しました。

最も興味深いのは、最初から正解したことではありません。OpenACC、QE input、Slurm GRES、accounting、memory allocation、job scriptで失敗し、そのたびにlogを読み、原因を変え、最後には実機証拠を揃えたことです。

同時に、安全境界とsecret管理には人間の監査が不可欠でした。現時点の結論は「完全自動化できる」ではなく、長期のGPU server構築をかなり高い水準で自律遂行できるが、production適用には強いguardrailと最終監査が必要、です。

次の比較では、同じDGX Spark上で4bit/2bit、Web searchあり/なし、最小Slurm構成を固定した条件を分けると、量子化とtool条件の影響をさらに明確にできるでしょう。

Read more

2bitのDS4はGPUサーバーを自律構築できるのか

新旧DS4 Q4/Q2でH100×2のクリーン構築を比較した 今回検証したのは、チャットの受け答えや単発のコード生成ではありません。クリーンなUbuntu 24.04に、NVIDIAドライバー、NVIDIA HPC SDK、GPU対応Quantum ESPRESSO、MUNGE、Slurmを順に導入し、最後にSlurmからGPU計算を完走させる、実運用に近い長時間タスクです。 構成を正確に書くと、次のとおりです。 A100×4上で動作するDS4が、クリーンなUbuntu 24.04を搭載したH100×2サーバーをSSH経由で構築・検証した。 DS4そのものをH100×2で動かしたわけではありません。推論側は全モデルともA100 80GBを4枚、構築対象だけがH100 PCIeを2枚搭載したサーバーです。 比較した4モデル * 2026-07-31以前のDS4 Q4 * 2026-07-31以前のDS4 Q2 * 2026-07-31版DS4 Q4 * 2026-07-31版DS4

By Kenetsu Hanabusa