schroneko/skills

dgx-spark

NVIDIA DGX Spark (ARM64 + CUDA 13.0) 環境での開発ガイド。PyTorch のインストール、ARM64 wheel の取得、GPU 関連の設定を行う。「DGX Spark」「CUDA」「PyTorch インストール」「ARM64 の GPU 環境」「Blackwell」などのリクエストで使用する。

First seen Jul 2, 2026

Installation

$ npx skills add schroneko/skills --skill dgx-spark

Summary

NVIDIA DGX Spark (ARM64 + CUDA 13.0) 環境での開発ガイド。PyTorch のインストール、ARM64 wheel の取得、GPU 関連の設定を行う。「DGX Spark」「CUDA」「PyTorch インストール」「ARM64 の GPU 環境」「Blackwell」などのリクエストで使用する。

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from schroneko/skills · top by installs.

npx skills add schroneko/skills

Browse all from schroneko/skills

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Repository health

Stars 1
Default branch main
Open issues 0
Status Active

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 4,904 B
  • docs SUMMARY.md 311 B

History

  1. First seen on skills.sh
  2. First recorded snapshot · 19 installs

SKILL.md

DGX Spark (ARM64 + CUDA 13.0)

このマシンは NVIDIA DGX Spark。

  • アーキテクチャ: ARM64 (aarch64)
  • CUDA: 13.0
  • GPU: NVIDIA GB10 (sm_121, Blackwell)
  • VRAM: 119.7 GB(CPU と共有のユニファイドメモリ)

メモリ管理(最重要)

121GB のメモリは CPU と GPU で共有するユニファイドメモリで、使い切るとマシンごと落ちる。実際に flash-attn と gptqmodel を MAXJOBS=10 で同時ソースビルドして DGX Spark がクラッシュし、さらに flash-attn 単体を MAXJOBS=4 NVCCTHREADS=1 TORCHCUDAARCHLIST=12.1 に絞ってもクラッシュして再起動した実績がある。

  • flash-attn のソースビルドはこのマシンで禁止。flash-attn 依存のパッケージ(exllamav3 など)は aarch64 のプリビルド wheel が出るまで導入しない。どうしても必要ならユーザーの明示承認を得て MAX_JOBS=1 で試す
  • その他の CUDA 拡張のソースビルド(gptqmodel、exllamav2 など)は MAXJOBS=2 から MAXJOBS=4NVCCTHREADS=1 に制限する。gptqmodel 5.8.0 は MAXJOBS=4 で数分でビルドできた
  • 重いビルドは 1 パッケージずつ順番に実行し、複数パッケージの同時ビルドをしない
  • ビルドとモデルロード・GPU ベンチマークを並行して走らせない
  • 長時間処理の開始前と途中で free -h を確認し、available が 30GB を切ったら並列度を下げるか処理を止める
  • GPU メモリもユニファイドメモリから取られるため、大きなモデルのロード中は CPU 側の余裕も同時に減る前提で計画する

CUDA 拡張のソースビルド知見

  • システム Python (/usr/bin/python3) には Python.h が無く、--no-build-isolation の CUDA 拡張ビルドが失敗する。uv python install 3.12uv sync --managed-python で uv 管理 Python(ヘッダ同梱)に切り替える
  • torch をビルド時に参照するパッケージ(gptqmodel、flash-attn、exllamav2/v3)は --no-build-isolation-package <pkg> を付けて venv の torch を見せる
  • exllamav2 0.3.2 は config.h が無条件に USEAVX2 を定義していて aarch64 で mmmalloc.h エラーになる。#if defined(__x86_64__) ガードを当てれば JIT 拡張は sm_120 でビルド・動作する(上流バグ)
  • llama.cpp は cmake -B build -DGGMLCUDA=ON -DCMAKECUDA_ARCHITECTURES=121cmake --build build -j 4 で問題なくビルドできる(121 は自動で 121a に置換される)

Ubuntu パッケージ管理

パッケージのインストール、削除、更新をエージェントやスクリプトから実行する場合は apt-get を使う。man apt では apt は end-user tool とされ、version 間で behavior が変わる可能性があるため、scripts では backward compatibility のため apt-get / apt-cache を prefer すべきと説明されている。

例:

sudo apt-get install -y kitty

対話的に人間が手元で実行するだけなら apt install kitty でもよいが、DGX Spark スキル内の手順やエージェント実行では apt-get を優先する。

PyTorch インストール

PyPI の stable torch 2.11.0 以降は ARM64 + CUDA 13(cu130)の wheel を同梱しており、torch>=2.4 を PyPI からそのまま入れるだけで torch.cuda.is_available() が True になる(2026-07 に DGX Spark 実機で確認済み)。まず PyPI stable を試す。

stable で ARM64 + CUDA wheel が取れない場合のみ、PyTorch nightly から取得する。

pyproject.toml に torch と triton を両方明示し、uv.sources で nightly インデックスを指定する:

[project]
requires-python = ">=3.11,<3.12"
dependencies = [
    "torch==2.11.0.dev20260105",
    "triton",
]

[tool.uv.sources]
torch = { index = "pytorch-nightly-cu130" }
triton = { index = "pytorch-nightly-cu130" }

[[tool.uv.index]]
name = "pytorch-nightly-cu130"
url = "https://download.pytorch.org/whl/nightly/cu130"
explicit = true

ポイント:

  • torch と triton の両方を dependencies に追加する (triton がないと uv.sources が適用されない)
  • ARM64 wheel がある特定バージョンを指定する (最新版には ARM64 wheel がない場合がある)
  • explicit = true で他のパッケージは PyPI から取得する

ARM64 未対応パッケージ

以下のパッケージは ARM64 wheel がない:

  • decord: opencv-python-headless で代替