🚀

【Day 1】家に DGX Spark がやってきた。とりあえず猫の絵を描いてもらった

に公開

【Day 1】家に DGX Spark がやってきた。とりあえず猫の絵を描いてもらった

はじめに

ローカルLLMってなんじゃらほい?状態なわけですが、紆余曲折を経て NVIDIA DGX Spark を買ってしまいまして、あれよあれよという間に家に届いたわけであります。

DGX Spark:NVIDIAが「家庭にスーパーコンピュータを」と銘打って出した、ちょっとお高いミニPC。中身は最新世代のAIチップ、らしい。

ローカルとクラウドって、どこをどう使い分けたらいいんだい?……というのが知りたいのですが、本やネット記事を読むだけじゃ私には一向にわからなさそうなので、とにかく毎日手を動かしてみようということで、100個目指して実験してみたいと思います。

今日は記念すべき 実験#1!


まずはご対面:DGX Spark の外観

まずですね〜これが外観。頑丈な段ボールにみっちり入っておりました。

DGX Spark の箱

開けてみると、思ったよりずっと小さい。手のひらに乗るサイズで「これがAIマシン……?」感がすごい。

DGX Spark 本体(メッシュサイドが特徴的)


起動 → 初期セットアップ

電源入れると、Ubuntu ベースの DGX OS が立ち上がってきます。

Welcome 画面

Get started 画面

「Get started」って言われると、ちょっとワクワク。

言語とタイムゾーン

言語とタイムゾーン選択

普通の Linux のセットアップと同じ感じ?

プライバシー設定

プライバシー設定

NVIDIA への診断データ送信とかの確認画面。

アップデート開始

update 始まった

電源入れた瞬間から、もう自分でアップデートしに行ってる。賢い。

セットアップ完了

セットアップ完了

ユーザー名と DGX のホスト名を決めて、これで DGX 側の準備は完了。


つなぎましたよ〜〜

毎回DGXにモニター繋ぐのは面倒なので、普段使いの Windows PC(うちでは「myPC1」と呼んでます)から SSH で繋ぐ運用 にします。

NVIDIA が NVIDIA Sync という公式アプリを用意してくれてて、これでSSH接続を楽に設定できる、らしい。

NVIDIA Sync インストール

…とサクッと書きましたが、ここから盛大にハマりました。Windows のSSHが「アナタのSSH設定ファイル、変な権限付いてるからセキュリティ的に信用できない」と言って繋いでくれない事件。

詳しくは下の折りたたみ「やったことの詳細」に置いておきます。


結果:DGXの中に入れたよ

紆余曲折ありながらも、無事DGXの中に入れました。

ターミナルからスペックを確認すると、だいたいこんな感じ:

項目 数値
GPU NVIDIA GB10 Grace Blackwell
メモリ 128GB(CPUとGPUで共有)
ストレージ 4TB SSD(ほぼ空っぽ)
CPU 20コア(高性能と省電力の組み合わせ)
消費電力 idle で 4W(…?!)

128GBのメモリは、普通のノートPCの8〜16倍くらい、だとか。


画像生成AIをセットアップ → 🐱

ここからが今日のメインイベント。

ComfyUI という画像生成AIのツールを入れて、初日の猫を描かせます。

ComfyUI の画面はこんな感じ:

ComfyUI に繋がった画面

ノードがケーブルで繋がってて最初は身構えるけど、デフォルト設定がもう組まれていて、プロンプト書いて Queue Prompt 押すだけで生成できます。

それでは、プロンプト:

a cute fluffy cat sitting on a sunny windowsill, photorealistic, high detail, beautiful lighting, soft fur, cinematic, masterpiece, best quality

数秒後……

ComfyUI で生成した猫 1

🐱 できました!うちのDGXが描いた最初の猫!

プロンプトを変えてもっと作ってみました。

ComfyUI で生成した猫 2

ちょっと目が怖い感じですが、うん。モフモフの猫だ。

ComfyUI で生成した猫 3

ちょ、ちょっとダークな気配を感じますね。

ComfyUI で生成した猫 4

…これは、ネコ…?でもアートを感じます。

ComfyUI で生成した猫 5

個性的な絵だ。

各名画、数秒〜十数秒で出てくるので、プロンプトをいじりながら何度でも気軽に試せます。これがけっこう楽しい。


やったことの詳細(AIさんに解説してもらいます)

ここから先は細かい設定などの方法です。まだまだコマンド全部を理解できていませんが、AI氏に解説してもらったのをペタリしておきます。

1. myPC1 ↔ DGX のSSH接続をハマらず通すコツ

NVIDIA Sync を使うと、裏で SSH 鍵ペアを生成して DGX 側の ~/.ssh/authorized_keys に公開鍵を登録してくれるので、本来はパスワード入力せずに繋がるはず。

でも繋がらない場合、Windows の SSH 設定ファイルの権限が原因のことが多い。

症状

$ ssh spark-XXXX.local
Bad permissions. Try removing permissions for user: [PC]\CodexSandboxUsers
on file C:/Users/[user]/.ssh/config.

Codex CLI 等のサンドボックスツールを過去に入れていると、[PC]\CodexSandboxUsers グループが ~/.ssh/ 配下に権限を継承してしまうことがある。

解決手順(管理者 PowerShell で)

$env:USERPROFILE などの環境変数を使うと、自分のPC名・ユーザー名を書かずに済んで楽です。

# 所有権を取り戻す
takeown /f "$env:USERPROFILE\.ssh\config"
icacls "$env:USERPROFILE\.ssh\config" /grant:r "$($env:USERNAME):F"

# 継承を切って整理
icacls "$env:USERPROFILE\.ssh\config" /inheritance:d
icacls "$env:USERPROFILE\.ssh\config" /remove "$env:COMPUTERNAME\CodexSandboxUsers"

/inheritance:r ではなく /inheritance:d を使うのがコツ。:r だと権限が全部消えて自分も入れなくなる。

NVIDIA Sync 内部のファイルにも同じ処理が必要

~/.ssh/config には NVIDIA Sync の別 config が Include で読み込まれているので、そっちにも同じ問題が連鎖する。

# NVIDIA Sync の ssh_config
$cfg = "$env:LOCALAPPDATA\NVIDIA Corporation\Sync\config\ssh_config"
icacls $cfg /inheritance:d
icacls $cfg /remove "$env:COMPUTERNAME\CodexSandboxUsers"

# 鍵ファイル
$key = "$env:LOCALAPPDATA\NVIDIA Corporation\Sync\config\nvsync.key"
icacls $key /inheritance:d
icacls $key /remove "$env:COMPUTERNAME\CodexSandboxUsers"

icacls では消えない「ゴーストSID」

過去に削除したユーザーアカウントのSIDが残っている場合、icacls の /remove では消せない。PowerShell の ACL 操作が必要:

$cfg = "$env:LOCALAPPDATA\NVIDIA Corporation\Sync\config\ssh_config"
$acl = Get-Acl $cfg
$badRules = $acl.Access | Where-Object { $_.IdentityReference.Value -like "S-1-5-*" -and $_.IdentityReference.Translate([System.Security.Principal.NTAccount]) -isnot [System.Security.Principal.NTAccount] }
$badRules | ForEach-Object { $acl.RemoveAccessRule($_) | Out-Null }
Set-Acl -Path $cfg -AclObject $acl

これで ssh spark-XXXX.local が一発で通るようになる(XXXX は自分のホスト名に置き換え)。

2. DGX のスペックを確認するコマンド
# GPU情報
$ nvidia-smi
NVIDIA-SMI 580.142    Driver Version: 580.142    CUDA Version: 13.0
GPU 0: NVIDIA GB10    36C    P8    4W / N/A

# OS情報
$ uname -a
Linux spark-XXXX 6.17.0-1014-nvidia ... aarch64 GNU/Linux

# メモリ
$ free -h
Mem: 121Gi  2.6Gi  118Gi

# ストレージ
$ df -h
/dev/nvme0n1p2  3.7T  47G  3.5T  2%  /

# CPU
$ lscpu
Architecture:  aarch64
CPU(s):        20
Model name:    Cortex-X925 + Cortex-A725

ポイント:

  • CUDA 13.0(最新)
  • aarch64 (ARM64) アーキテクチャ
  • 121Gi(≈128GB)の ユニファイドメモリ
  • 20コアの big.LITTLE 構成(高性能コア×10 + 効率コア×10)
3. ComfyUI のセットアップ手順

NVIDIA 公式の Playbook(Comfy UI)に従う。

# 仮想環境作成
cd ~
python3 -m venv comfyui-env
source comfyui-env/bin/activate

# PyTorch (CUDA 13.0版) インストール
pip3 install torch torchvision --index-url https://download.pytorch.org/whl/cu130

# ComfyUI 本体
git clone https://github.com/comfyanonymous/ComfyUI.git
cd ComfyUI
pip install -r requirements.txt

# モデル(SD 1.5、約2GB)DL
cd models/checkpoints/
wget https://huggingface.co/Comfy-Org/stable-diffusion-v1-5-archive/resolve/main/v1-5-pruned-emaonly-fp16.safetensors

# サーバー起動
cd ~/ComfyUI
python main.py --listen 0.0.0.0

入った主要パッケージ:

  • torch 2.11.0+cu130
  • cuDNN 9.19
  • NCCL 2.28
  • transformers 5.7.0
  • comfyui-frontend-package 1.42.15

myPC1 のブラウザで http://spark-XXXX.local:8188 を開くとComfyUIにアクセスできる(XXXX は自分のホスト名)。

モデルDL速度

HuggingFace のCDNから 40.6 MB/s で50秒 で2GBダウンロード。家のLAN 1Gbps の半分弱出ました。


明日のプレビュー:Day 2

明日は 「飼い猫の写真を AI に学習させる(LoRA訓練)」 に挑戦予定。

今日の SD 1.5 だと「どこかの猫」しか描けませんが、「うちの子」をAIに覚えさせる実験です。
自分のデータでパーソナライズするのって、ローカル AI でこそ気軽にできるはず。


#DGXで100実験 #ローカルLLM

Discussion