Repository navigation
[Feature]: Targon backend #4382
Description
Problem
We run GPU workloads (video generation) across several marketplaces and use dstack to manage capacity. Vast.ai and RunPod already work through dstack, and Lium is in progress (#4377). Targon is the one provider we still manage with separate scripts.
Targon rents single-GPU VMs, including RTX PRO 6000 Blackwell (96 GB) at $1.69/h. That is among the lowest RTX PRO 6000 prices we see. Without a dstack backend, we cannot use one fleet/run configuration, price caps and cleanup across all of them.
Solution
Add a VM-based targon backend, with a targon online provider in gpuhunt first, per contributing/BACKENDS.md.
What the Targon API offers (https://docs.targon.com/api/workloads):
- Offers: public
GET /tha/v3/inventory?type=vm&gpu=true, with price, CPU/RAM/disk, GPU model/count andavailablecount. No regions for VMs. - Lifecycle:
POST /orgs/{org}/workloads(typeVM, image,resource_name, SSH key UIDs) registers the VM,POST .../deploystarts it,GET .../statereturnsstatus,public_ipandssh_port, andDELETEtears it down. - SSH keys:
POST /orgs/{org}/ssh-keys. The SSH user isubuntu, and the SSH port is mapped per VM. - Images: Ubuntu 24.04 with NVIDIA 595 drivers (
ubuntu-24-04-lts-595).
Two gaps against the VM-based backend requirements:
- No cloud-init.
- No Docker or NVIDIA Container Toolkit in the images.
My proposed handling follows existing backends:
- Like Hot Aisle,
update_provisioning_datawaits forrunning, then starts the shim over SSH. - Like Lambda, it installs Docker and the NVIDIA Container Toolkit over SSH first. Each step is skipped if already present, and a marker file makes a repeated launch a no-op.
- It skips the ufw setup, since the provider maps the SSH port at its edge.
Other proposed behavior:
- If
deployfails, the backend deletes the registered workload and raisesNoCapacityError, so the next offer is tried. - The project SSH key is registered once per org and reused.
- Config:
creds.api_key, optionalorg_slug(auto-detected if the key has one org) and optionalvm_image.
Prototype status. Both branches are local; I have not opened PRs:
- gpuhunt: provider, registration, unit tests, and an integrity test against the live public inventory.
- dstack: backend, docs and frontend type. Unit tests mock all Targon calls.
ruff(0.12.7) andpyrightare clean.- Full test suites pass: dstack
src/tests4451 passed / 1410 skipped; gpuhunt 255 passed. - Live E2E (2026-10-17): a
nodes: 0..1fleet plus a task onrtx6000b-smallran end to end.- About 3 min to
running, about 1 min for the Docker install and shim start, then the job ran. nvidia-smishowed an RTX PRO 6000 Blackwell Server Edition, 97887 MiB. The task exited 0.- The workload was deleted afterwards. About 6 min total.
- About 3 min to
Questions before I open PRs:
- Is a Targon backend welcome?
- Is installing Docker and the toolkit over SSH acceptable, or would you prefer a dstack-maintained image or asking Targon for one?
Workaround
Rent Targon VMs with our own scripts, then register them as an SSH fleet. This splits lifecycle, price caps and cleanup between two systems.
Would you like to help us implement this feature by sending a PR?
Yes
Activity
peterschmidt85 commentedon Oct 17, 2026
Wanted to confirm, they seem to have only few x1 GPUs, H100 and RTX 6000 PRO and nothing else. Kinda very poor availability.
apedintensor commentedon Oct 18, 2026
Thanks for checking. Targon is a Bittensor subnet (SN4), so its supply comes from miners and changes over time with miner economics. Supply is not fixed. Right now the public inventory also lists 8x H100/H200/B200/B300 tiers, but they show 0 available, and dstack and the Targon UI hide sold-out tiers.
For us, the 1x RTX PRO 6000 tier at $1.69/h is the draw. It has had stock each time we checked (8 available today). We'd use Targon as one source among several in a fleet, not as the only one.