DGX Spark/ARM64 and CUDA testing
Use case · Testing and porting

Test and port your software on a real GB10: aarch64, CUDA, sm_121

By Samuel Seidel · Updated 10 November 2026 · 7 min read

An issue says your library fails on a DGX Spark, and you don't own one. Or your wheels build on x86 and nobody has tried them on an Arm CPU with a Blackwell GPU. Rent a whole Spark for the minutes it takes to find out: a root shell on an NVIDIA GB10 (aarch64, CUDA compute capability 12.1) with the CUDA 13.0 toolkit installed. At $0.79 an hour, billed per minute, a 20-minute check costs about $0.26.

First top-up: pay $20, get $30 in credit. Billed per minute from prepaid credit. Terminate when you're done and billing ends. Most people who rent a Spark from me start the plain DGX OS image and bring their own stack, which is what this page is about.

What you get

CPU20-core Arm (10 Cortex-X925 and 10 Cortex-A725), uname -m says aarch64
GPUNVIDIA GB10, Blackwell generation, compute capability 12.1 (sm_121)
Memory128 GB of unified LPDDR5x shared by CPU and GPU, 273 GB/s
ImagesDGX OS 7: Ubuntu 24.04 with the CUDA 13.0 toolkit (nvcc), NCCL and NVIDIA DCGM. Ubuntu 24.04: the same without DCGM. Both have git, tmux, vim, curl and Python 3 with pip and venv.
AccessA root terminal in the browser with no SSH key, or SSH as root on port 22 with your own key. Each instance has its own public IPv4 address and the hostname <name>.gpuwerk.com.
How it runsA Docker container with the GPU passed straight through. You are root inside it; the NVIDIA driver comes from the host.
Storage1 TB NVMe, shared with the host. /workspace survives restarts and rebuilds and is deleted when you terminate.

The image called DGX OS 7 in the console is my build: Ubuntu 24.04 plus the packages above, in a container. It is not NVIDIA's DGX OS installer image, and /etc/dgx-release says so. What runs in a container, and what doesn't, is in the tenant environment notes.

A first check in five minutes

Deploy DGX Spark 1× with the DGX OS image, wait for running, and click Open terminal in browser on the instance page. Then confirm what you are on:

uname -m                                    # aarch64
nvidia-smi --query-gpu=name,compute_cap,driver_version --format=csv
nvcc --version | tail -n 2                  # CUDA 13.0

python3 -m venv /workspace/venv && . /workspace/venv/bin/activate
pip install torch --index-url https://download.pytorch.org/whl/cu130
python -c "import torch; print(torch.cuda.get_device_name(0), torch.cuda.get_device_capability(0))"

The last line prints the GB10 and (12, 1). Some PyTorch builds print a warning that sm_121 is not compatible; it is usually wrong, and the PyTorch on a DGX Spark guide explains why and which wheel to pick.

Build and test your project

cd /workspace
git clone https://github.com/your-org/your-project.git
cd your-project
pip install -e '.[test]'           # or your own build step
pytest -x -q
pip wheel . --no-deps -w dist/     # an aarch64 wheel to take home

Three things catch people out on this chip:

To take build artefacts home, copy them with your own SSH key, then terminate:

# on your laptop
scp 'root@<name>.gpuwerk.com:/workspace/your-project/dist/*.whl' .

Scripted runs from your own CI

There is no ready-made CI integration. What there is: an API that deploys and terminates by the minute, so a job on your own runner can borrow a Spark, run its tests over SSH and give it back. Use an API key with the instances scope.

curl -s -X POST https://api.gpuwerk.com/v1/instances \
  -H "Authorization: Bearer $GPUWERK_TOKEN" -H "Content-Type: application/json" \
  -d '{"type":"spark-1x","image":"ubuntu"}'
# wait for status "running" in GET /v1/instances, run the job over SSH, then:
curl -s -X DELETE https://api.gpuwerk.com/v1/instances/<id> \
  -H "Authorization: Bearer $GPUWERK_TOKEN"     # billing ends, workspace deleted

A deploy needs credit for at least one hour (402 otherwise), and returns 409 when no machine is free, so your job has to handle that. API deploys go to a machine in the EEA unless you set location_country or partner_region. All fields are in the API reference.

What a check costs

SessionCost at $0.79/h
Reproduce one bug report, 20 minutesabout $0.26
Build and test a release, 1 hour$0.79
A day of porting, 8 hours$6.32

Billing is per minute from prepaid credit and starts once the instance passes its readiness check. The account needs credit for one hour to deploy. First top-up: pay $20, get $30 in credit, about 37 hours on one Spark. A stopped instance keeps its workspace and is billed at 75% of the hourly rate; terminate it when you're done and billing ends, which deletes the workspace. Prices exclude VAT where applicable.

What a rented GB10 cannot tell you

Where the Sparks are

This works on every location, because partner Sparks offer the same DGX OS and Ubuntu images. My own Sparks are in a datacenter in Hradec Králové, Czech Republic. Partner Sparks are owned and hosted by partners at their own premises in the USA, Sweden, the Netherlands, Slovakia and Hong Kong, and a partner has physical access to their machine. The console shows the country, and whether it is in the EEA, before you deploy.

Who runs this

GPUwerk is a new platform, and I'm the person behind it: Samuel Seidel, founder, operating as PRINT IT! SE, registered in Prague. Since September 2026, 94 developers have started 374 instances on it (as of 9 November 2026). Uptime and incidents are on status.gpuwerk.com. If you are not sure your stack will run, write to me through the contact page before you pay; I answer myself.

FAQ

Which CUDA version is on the machine?

Both images, DGX OS 7 and Ubuntu 24.04, carry the CUDA 13.0 toolkit with nvcc and NCCL. The NVIDIA driver comes from the host and cannot be changed from inside the instance.

Is the DGX OS image NVIDIA's DGX OS?

No. It is my build in a container: Ubuntu 24.04 with the CUDA 13.0 toolkit, NCCL and NVIDIA DCGM. /etc/dgx-release identifies it as a GPUwerk image.

Can I build Docker images on it?

No. The instance is itself a Docker container with no Docker daemon or socket inside, so docker build and docker run do not work. Build images elsewhere and test the binaries on the Spark.

How much does a short test cost?

About $0.26 for 20 minutes at $0.79 an hour, billed per minute from prepaid credit. To deploy, the account needs credit for one hour. Terminate when you're done and billing ends; that deletes the workspace.

First top-up: pay $20, get $30 in credit

Reproduce it on a GB10 today.

A dedicated DGX Spark with a root shell and CUDA 13.0, $0.79/h billed per minute. Terminate when you're done and billing ends.

Deploy now