🦸

NVIDIA DGX SparkでローカルAI環境を構築してLLM・画像生成AIを動かしてみた

に公開

NVIDIA DGX Sparkの概要

NVIDIA DGX SparkをNVIDIA様から貸与いただきました。NVIDIA DGX Sparkは、手のひらサイズでペタFLOPS級性能を持つ「超小型AIスーパーコンピュータ」です。AI用のスーパーコンピュータであるDGXシリーズ(DGX-1→DGX A100→DGX H100など)の系譜を組みながら、手軽にデスクトップで使えるようにした存在です。

前置きはさておき、やっぱり気になるのは実際の使い勝手、何ができるのか、性能といったことですね。この記事では、NVIDIA DGX Sparkのセットアップの方法と、大なモデルのLLM(gpt-oss-120b)や画像生成を試してみるところまでをやってみたいと思います。

セットアップに関しては、NVIDIA提供の公式のマニュアル、ソフトは大いに参考・活用していますが、一部私の好みで変更しているものや、推奨にないソフトのセットアップなどしていますので、その点はご了承ください。

ハードウェアセットアップ

最初にハードウェアのセットアップです。NVIDIA DGX Spark Quick Start Guideに必要な情報は一通り書いてあるので、あらかじめ目を通しておきましょう。

その上で自分の具体例を紹介します。セットアップの方法は、単独で動かす(スタンドアローン)方法と、他のPCからネットワーク越しで入る方法があるのですが、私はシンプルで運用しやすそうなスタンドアローンでセットアップしました。何かあったときのために、基本的にはスタンドアローンでも動かせるようにしておくのが個人的にはおすすめです。周辺機器として以下が必要となります。

  • HDMIモニタ
  • キーボード
  • マウス

ここで注意点として、USBはコネクタがすべてUSB-Cのため、一般的なキーボード、マウスを接続するために変換が必要となります。私はMacbook用に購入していたUSB-Cハブを使用しました。

USB Cハブ 5-IN-1 HDMI 出力USB ハブ

接続した様子は以下となります(写真の一番右のコネクタは、複数のDGX Sparkを接続する富豪用コネクタのため、一旦無視しました)。


DGX Spark接続図

技適が気になる方もいるかと思いますが、NVIDIA DGX Spark Quick Start Guideに以下記載があります

「当該機器には電波法に基づく技術基準適合証明等を受けた特定無線設備を装着」

また、大事なことですが置く向きは以下となります。


DGX Spark正しい向き

間違っても、NVIDIA ジェンスン・フアンCEOと同じように逆にしないようにしましょう。
https://x.com/_ksasaki/status/1981010619622125907

写真では、比較のために手で持った状態で写真を撮りましたが、実際に使うときは、周辺にクリアランスを確保して設置してください。NVIDIA DGX Spark Quick Start Guideに条件の記載があります。

初期設定

電源を入れて起動すると、自動的にセットアップに入ります。私は以下の通り設定しました。

Select Language: JP-日本語
Select Timezone: Asia-Tokyo

そのあとダウンロードとインストールなどでたっぷり1時間くらいかかるので、コーヒーをがぶ飲みするか、お風呂に入って身を清めておきましょう。

暫く待つとOSが起動します。DGX OSというDGXシリーズのOSが立ち上がります。DGX OSは、Linux(Ubuntu)ベースに、NVIDIAで様々な独自のカスタマイズがされているOSで、基本的にLinuxと同じ感覚で操作が可能です。後でも触れますが、DGX OSは9年の歴史があり、かなり完成度は高いと感じました。

起動したら、ターミナルを起動します。Ubuntu同様Ctrl+Alt+tで新しいウィンドウが開きます。

ソフトウェアセットアップ

ターミナルでコマンドを実行して、自分に必要なソフトを入れていきます。

基本設定と設定確認

ファイルのコマンドでの移動などをやりやすくするために、日本語のフォルダを英語に変更します。

$ LANG=C xdg-user-dirs-gtk-update

CAPSキーをCTRLキーにする設定です。これはお好みで。

$ setxkbmap -model jp106 -layout jp -option ctrl:nocaps

以下はGPUドライバやCUDAのバージョンを確認するnvidia-sminvccの実行結果です(確認しているだけなので飛ばしてもOKです)。

$ nvidia-smi
Wed Oct 22 22:43:11 2025       
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 580.82.09              Driver Version: 580.82.09      CUDA Version: 13.0     |
+-----------------------------------------+------------------------+----------------------+
| GPU  Name                 Persistence-M | Bus-Id          Disp.A | Volatile Uncorr. ECC |
| Fan  Temp   Perf          Pwr:Usage/Cap |           Memory-Usage | GPU-Util  Compute M. |
|                                         |                        |               MIG M. |
|=========================================+========================+======================|
|   0  NVIDIA GB10                    Off |   0000000F:01:00.0  On |                  N/A |
| N/A   40C    P0              8W /  N/A  | Not Supported          |      3%      Default |
|                                         |                        |                  N/A |
+-----------------------------------------+------------------------+----------------------+

+-----------------------------------------------------------------------------------------+
| Processes:                                                                              |
|  GPU   GI   CI              PID   Type   Process name                        GPU Memory |
|        ID   ID                                                               Usage      |
|=========================================================================================|
|    0   N/A  N/A            3296      G   /usr/lib/xorg/Xorg                      135MiB |
|    0   N/A  N/A            3453      G   /usr/bin/gnome-shell                    154MiB |
|    0   N/A  N/A            6232      G   ...led --variations-seed-version        130MiB |
+-----------------------------------------------------------------------------------------+
$ nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2025 NVIDIA Corporation
Built on Wed_Aug_20_01:57:39_PM_PDT_2025
Cuda compilation tools, release 13.0, V13.0.88
Build cuda_13.0.r13.0/compiler.36424714_0

OSを確認するためのコマンド

$ cat /etc/fastos-release
NAME="DGX SPARK FASTOS"
DATE="2025-09-12T22:05:35+00:00"
VERSION="1.81.38"
BUILD_TYPE="customer"

最後に、TIPSですが、使用メモリ領域(キャッシュ)を強制的に解放して、システムの空きメモリを増やすコマンドです。色々やった後、メモリが不足してきたら実行するとよいそうです。

$ sudo sh -c 'sync; echo 3 > /proc/sys/vm/drop_caches'

Chromium Browser

ブラウザは、デフォルトだとFireFoxですが、好みでChromium Browserをインストールします(検証していないですが、おそらくGoogle Chromeは未対応と思います)。

$ sudo apt update
$ sudo apt install -y chromium-browser

GitHub CLIのセットアップ

GitHubの操作が便利になるのでいれます。

$ sudo apt install gh
$ gh auth login

VS Codeエディタインストール

一般的なインストール方法でインストールできます。公式サイトのダウンロードページで、以下のバイナリをダウンロードします。

以下コマンドでインストールします。

$ cd ~/Downloads
$ sudo dpkg -i code_*_arm64.deb

VS Codeエディタについて詳しくは以下記事を参照してください。
https://zenn.dev/karaage0703/books/80b6999d429abc8051bb

参考:Vibe Coding in VS Code

日本語化設定

日本語化に関しては調べてもすぐ分からなくて、少し時間かかりました。以下で必要なパッケージをインストールして、設定を変更します。

$ sudo apt install -y ibus-mozc
$ sudo apt install -y language-pack-ja
$ sudo update-locale LANG=ja_JP.UTF8

設定→キーボードで「入力ソースの追加」をクリックします。

一番下の「…」(さらに)をクリックします

「japanese」で検索して「日本語」を選択

「日本語(Mozc)」を選択して、右上の追加をクリック

右上に「ja」というアイコンが出てくるので「日本語(Mozc)」を選択

これで漢字変換ができるようになります。

パッケージ管理ツール

Pythonのパッケージ管理ツールuvとNode.jsというJavaScriptの実行環境で使うパッケージ管理ツールnpm(nvm)をセットアップします。このあたりは特にNVIDIAの推奨ではないですが、uvはPythonのパッケージ管理として便利なのと、Claude CodeやMCP(Model Context Protocol)などのAIエージェントツールを使いたいのでセットアップをしています。

uvインストールは以下コマンドで可能です。

$ curl -LsSf https://astral.sh/uv/install.sh | sh

nvmインストールは以下コマンドで可能です。

$ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash

ターミナル再起動したら、以下コマンド実行

$ nvm install --lts

これで、uvとnpm(nvm)がインストールされます。それぞれの使い方などは以下記事参照してください。

https://zenn.dev/karaage0703/articles/029b45ff78bc57

https://zenn.dev/karaage0703/articles/ecf24124c1a535

Claude CodeやCodex CLIなどのセットアップは本記事では省略しますが、問題なくインストール可能です。

Dockerのセットアップ

Dockerに関して詳しくは以下記事参照ください。

https://zenn.dev/mkj/articles/33befbaf38c693

DGX Sparkでは最初からDockerがセットアップされています。ただ、標準のユーザーだと権限がなくてエラーになります(sudo dockerならOK)。

$ docker ps
permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get "http://%2Fvar%2Frun%2Fdocker.sock/v1.51/containers/json": dial unix /var/run/docker.sock: connect: permission denied

dockerグループに追加することで、sudoなしで実行できるようにします。

$ sudo usermod -aG docker $USER
$ newgrp docker

ここで一旦再起動します。

Dockerが動くことをdocker psコマンドで確認します。

$ docker ps
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES

このあたりも公式ガイドの後ろの方に書いてあったりするのですが、最初に設定しておくのがおすすめです。

DGX Spark上でPyTorchのGPU環境を構築する方法

単純にDGX Spark上でPyTorchをGPU使って動かしたいときもあると思います。その場合も、DGX Sparkに対応したバージョンのPyTorchをインストールすればOKです。以下はuvでのセットアップ方法ですが、pipでもセットアップ可能です。

# 任意のディレクトリに移動
$ uv venv
$ source .venv/bin/activate
$ uv pip install torch torchvision --index-url https://download.pytorch.org/whl/cu129

以下コマンドでTrueとなればDGX SparkのGPUを使用可能であることが確認できます。

$ python3 -c "import torch; print(torch.cuda.is_available())"
True

このあたりの情報はDGXでのComfy UIのセットアップガイドを読むと分かります。NVIDIAの公式ガイドでは、Python標準のvenvを使ったセットアップ方法になっています。

PyTorchとCUDAの関係に詳しく知りたい人は、以下記事を参考にしてください。
https://zenn.dev/karaage0703/articles/48bcb55002c360

リモートからのログインのためにTailscaleのセットアップ

外部のネットワークからDGX Sparkにアクセスするために、Tailscaleをセットアップします。
以下のコマンドでセットアップできます。

$ curl -fsSL https://tailscale.com/install.sh | sh

セットアップ後は、以下で起動します(初回のみTailscaleへのログイン必要)

$ sudo tailscale up

DGX Spark公式ガイドのSet up Tailscale on your Sparkとはセットアップ方法を変えています(Tailscaleの公式のインストール方法を使っています)。

お風呂からスマートフォンでDGX Sparkにアクセスしたい人は、iOSのターミナルアプリ(WebSSHとか)を入れると良いと思います。詳細は以下記事を参考にしてください。

https://zenn.dev/karaage0703/articles/1c84cd87f55ed5

また、DGX Sparkには仮想端末ソフトの「byobu」が標準でインストールされています。リモートログインのときに便利(作業中にネットワーク切れても作業中断されない)です。詳しくは以下記事を参照ください。

https://zenn.dev/mkj/articles/82c4e53a505f95

DGX SparkでいろいろなAIを試す

基本的なセットアップや動作確認が終わったので、ここからいよいよDGX SparkでいろいろなAIを動かしていきます。

何をしたらいいか分からない人はStart Building on DGX Sparkを見るのがおすすめです。DGX OSのトップ画面にリンクがあります。

ここでは、DGX Sparkで試せるさまざまなAIの学習・推論の方法がまとまっています。それぞれのリンクには、概要・インストラクション・トラブルシューティングが付随していて、手を動かしながら学習、活用ができるようになっています。

必要な環境は、多くの場合DGX Spark用に構築されたDockerイメージにまとまっているので、簡単に試すことができます。

もちろん、これらを参考に独自にAIの学習、推論、AIアプリの開発を行うことも可能です。

DGX Dashboard

すぐ試せるのがDGX Dashboardです。ブラウザで以下のURLにアクセスするだけです。

http://localhost:11000/

以下の画面が出てくるので、DGX Sparkに設定したユーザー名とパスワードを入力してください。

以下のようなグラフィカルな画面で、GPU、CPUの利用状況が分かります。

右の画面のJupyter Notebookを起動すると、ブラウザ上でDGX Spark上で動くJupyter Notebookを動かすこともできるようになります。

これだけで、DGX Spark上でGoogle Colaboratory的にAIの学習環境を動かすことが可能となります。

NVIDIA Sync

こちらはAIというよりNVIDIA製のDGX Spark用便利ツールですが、便利なので紹介しておきます。DGX Sparkと同じローカルネットワーク上のマシンからDGX Spark環境に手軽にアクセスするためのツールです。

MacOS, Windows, Linux等マルチプラットフォームに対応していて、Start Building on DGX Sparkの中にある以下ページから各プラットフォーム向けのソフトウェアがダウンロード可能です。

Set Up Local Network Access

インストールして起動すると、以下の設定画面が出てくるので、DGX Sparkのホスト名 or IPアドレス、ユーザー名、パスワードを入力します。最初のNameはなんでもOKです(分かりやすい名前をつけておくのが良いと思います)。

起動すると、Macの場合は上側のメニューバーにNVIDIA Syncのアイコンが表示されます。クリックすると以下のように表示されます。

ここでDGX Dashboardをクリックすると、NVIDIA SyncをインストールしたPCのブラウザで、先程DGX Spark上で動かしたDGX Dashboardが起動します。他にもTerminalやVS CodeでDGX Sparkにアクセスできます。

もちろんTerminalやVS Codeは、NVIDIA Syncを使わずにssh等を使って同様のアクセスは可能なのですが、手軽にアプリ上からアクセスできるのは便利ですね。

Ollamaでgpt-oss-120bとチャット

DGX Sparkで手軽にLLMを動かすにはOllamaというソフトウェアが手軽です。

Ollamaのインストールは、公式ドキュメントの通り以下コマンドを実行するだけでインストールできます。

$ curl -fsSL https://ollama.com/install.sh | sh

モデルのダウンロードも以下の通りコマンド一発です。以下コマンドでgpt-oss-120bをセットアップできます。モデルはOllama公式サイトの Modelsで探せます。

$ ollama pull gpt-oss:120b

起動は以下のとおりです。

$ ollama run gpt-oss:120b

コマンドラインでLLMとのチャットができます。

>>> こんにちは
Thinking...
The user says "こんにちは" (Hello in Japanese). Probably respond in Japanese. Should greet. 
Maybe ask how can help.
...done thinking.

こんにちは!今日はどのようなお手伝いが必要ですか?お気軽に教えてくださいね。

gpt-oss-120bという非常に大きなモデルを動かすことができました。Ollamaの良い点は、他のアプリから手軽に使用することができるところです。次はOllamaを使ってコード生成をしてみます。

参考:Vibe Coding in VS Code

Codex CLIとOllamaでgpt-oss-120bのコード生成

OpenAIのCodex CLIを使ってコード生成をします。Codex CLIはOllamaを使うことで任意のローカルLLMを使うことが可能です。今回は、先程Ollamaでセットアップしたgpt-oss-120bを使ってみます。

最初にCodex CLIをインストールします。npmをインストールしていれば、以下コマンドでインストールできます。

$ npm install -g @openai/codex

続いてOllamaを起動します。

$ ollama run gpt-oss:120b

次に、Codex CLIのシステムプロンプトに対応するために、コンテキスト長を変更します。ここに関しては【Ollama】Codex CLIでgpt-oss:20bを動かす!コンテキストサイズ拡張編を参考にさせていただきました。

>>> /set parameter num_ctx 64000
Set parameter 'num_ctx' to '64000'
>>> /save gpt-oss-120b-64k
Created new model 'gpt-oss-120b-64k'

続いて、Codex CLIの設定ファイルを編集します。

$ code ~/.codex/config.toml

以下の通り設定します。

profile = "gpt-oss-120b-64k"

[model_providers.ollama]
name = "Ollama"
base_url = "http://127.0.0.1:11434/v1"

[profiles.gpt-oss-120b-64k]
model = "gpt-oss-120b-64k"
model_provider = "ollama"

[projects."/home/karaage"]
trust_level = "trusted"

Codex CLIを起動します。

$ codex

1を選択します。

Codex CLIでgpt-oss-120bを使えるようになりました。

参考:【Ollama】Codex CLIでgpt-oss:20bを動かす!コンテキストサイズ拡張編

LM Studioを使ってチャットインターフェースでLLMを使う

LLMをChatGPTなどと同じようなチャットインターフェースで使います。Start Building on DGX SparkではOpen WebUI with Ollamaを紹介していますが、今回は、手軽に使えて人気の高いLM Studioというソフトを使ってみます。

LM Studioは公式のダウンロードサイトからダウンロードします。

続けて以下の通り設定をします。

$ sudo apt install -y libfuse2
$ cd ~/Downloads
$ chmod a+x LM-Studio-*-arm64.AppImage

あとは以下で起動できます(~/Downloadsは好きな場所に移動してOKです)

$ cd ~/Downloads
$ ./LM-Studio-*-arm64.AppImage --no-sandbox

起動画面でgpt-oss-20bのインストールが推奨されるのでとりあえずインストールしました

チャット形式で会話ができます

続いて画面の左の虫眼鏡マークから設定に入ります

RuntimeはデフォルトのCUDA 13 llama.cppを選択します

モデルを gpt-oss-120bを選択します

以下gpt-oss-120bを動かしている様子です。

https://x.com/karaage0703/status/1981029391053529374

文章の長さにもよりますが大体 40〜45トークン/secで、最初のトークンまでは 0.1秒と非常に高速です。

Comfy UIによる画像生成

ComfyUIというGUIツールを使って画像生成をしてみます。

Start Building on DGX SparkにあるComfy UIという記事を参考にすることで簡単に動かすことができました。

記事では、Pythonの仮想環境として、標準のvenvを使用していますが、私は好みで最近人気のあるuvというPythonのパッケージ管理ツールを使ってセットアップしました。

セットアップのコマンドは以下です。

$ cd && git clone https://github.com/comfyanonymous/ComfyUI.git
$ cd ComfyUI
$ uv venv
$ source .venv/bin/activate
$ uv pip install torch torchvision --index-url https://download.pytorch.org/whl/cu129
$ uv pip install -r requirements.txt
$ cd models/checkpoints/
$ wget https://huggingface.co/Comfy-Org/stable-diffusion-v1-5-archive/resolve/main/v1-5-pruned-emaonly-fp16.safetensors
$ cd ../../

以下コマンドを実行するとComfy UIが起動します。

$ cd ~/ComfyUI
$ source .venv/bin/activate
$ uv run main.py --listen 0.0.0.0

起動後、ブラウザで以下URLにアクセスするとComfy UIを操作できます。

http://0.0.0.0:8188/

テンプレートから好きなワークフローを選びます。今回は画面左上のQwen Imagerというモデルを使ったテキストから画像を生成するワークフローを選択しました

選択したワークフローによっては、モデルが足りず以下のようにモデル不足のエラーが出ます

ダウンロードボタンをクリックしてダウンロードしてから、モデルをComfy UIのモデルのディレクトリ~/ComfyUI/modelsに手動で移動します。

ダウンロードされたファイルのディレクトリと、Comfy UIのモデルのディレクトリは以下コマンドで開けるので、手動でドラッグ&ドロップすると良いでしょう

$ open ~/Downloads
$ open ~/ComfyUI/models

モデルを入れ直して、再起動してエラー出ず起動したら、右上の実行するをクリックします

プロンプトをkaraageに変更して画像を生成してみた結果

Comfy UIでは、多くのテンプレートがあるので、様々な画像生成モデルを試せます。

まとめ

DGX Sparkの基本的なセットアップにはじまり、LLMを使ったチャット、AIでのコーディングから画像生成まで一通りを試してみました。gpt-oss-120bという非常に大きなモデルが手軽にサクサク動いたのは感動でした。ハードウェアとしては、これほど性能があるのに、小さい上に、全然熱くならないのにビックリです。ほんとに低電力なんでしょうね。

ソフトウェアの観点ではDGX OSは、9年の歴史があるだけあり、完成度が高いと感じました。NVIDIA SyncやDGX Dashboardなどの便利で実用的なツールに加えて、DGX Sparkでの動作検証済みのDockerイメージが多数準備されてるので、多くのAIを楽に安心して試すことができます。

一方、公式ガイドで触れられていないLLMチャット環境のLM StudioやPythonのパッケージ管理ツールのuvなどを使っても、ちゃんとGPUを使ってソフトを動かせる(そのための情報が、公式ガイドのStart Building on DGX Sparkに記載されている)のもとても安心感ありました。ここらへんはDGX OSのエコシステムの強さなのだと思います。

ただ、公式ガイドのStart Building on DGX Sparkは、情報量も多く上級者向けの記述で、最初から順番にやっていけば間違いなくセットアップできて動かせるという感じでもないのが、初心者や慣れていない人には難しいかなとは感じました。そもそも、DGX Sparkを買う初心者がいるのかと言われればそれはそうですが、簡単にこしたことはないと思うので、ハマりどころをこの記事で少しでも補完できていたら嬉しく思います。

やっぱりローカルでAIが動く手触り感はよいですね。ローカル環境としてRTX 3060が載ったゲーミングPC持っているのですが、大きいモデルだとOut of memoryになったり、凄い遅いのがストレスであんまり使わなくなっちゃったのですが、DGX Sparkだと何でもサクサク動くのでまたAIが楽しくなって来た気がします(計算力は正義)。あと小さくて静かで熱くならないのもめっちゃいいです。手元においておきたくなります。

一通りセットアップしてDGX Sparkへの理解が深まったので、今後はStart Building on DGX Sparkのコンテンツを中心に色々試してみたいと思います。

特にDGX Sparkは、「超小型AIスーパーコンピュータ」としてAIの推論だけでなく学習もできるのが一つの特長なので、今回できなかったLLMや画像生成モデルのファインチューニング等も試して、結果を別の記事として書ければと思っています。

関連記事

https://zenn.dev/karaage0703/articles/04ca258a89a50e

https://qiita.com/karaage0703/items/705f1b750c486f00d554

https://zenn.dev/karaage0703/articles/c271ca65b91bdb

Discussion