Docs · how to
Bring your own GPUs
Join servers and rack-scale systems you own to denv, including GB200 and GB300 NVL72 racks as single scale-up domains.
Hosts you own join an owned fleet. denv never launches or terminates them; it only places releases on them.
Requirements
| Item | Requirement |
|---|---|
| OS | Linux, x86_64 or arm64 |
| Accelerator stack | NVIDIA driver and CUDA, AMD ROCm, or Huawei Ascend CANN, at a version the engine you will run supports. See Engines. |
| Local disk | NVMe for the weights cache and the nvme KV cache tier |
| Network | Outbound HTTPS (443) to api.denv.ai. No inbound ports. |
| Fabric | NVLink, NVSwitch or the vendor equivalent within each scale-up domain; RDMA between domains if releases may cross them |
1. Create the provider and fleet
denv provider connect own --name own
denv fleet create gb200-rack --provider own --region sjc-colo --shape "GB200 NVL72" --mode owned
For plain servers, use the server's shape, for example --shape "8x H100 SXM".
2. Mint a join token
denv host join-token --fleet gb200-rack --uses 18
A token is single use unless you pass --uses, and expires after one hour. An NVL72 rack has 18 compute trays; each tray is one host.
3. Install denvd on each host
As root:
curl -fsSL https://get.denv.ai | sh -s -- --token <token> --server https://api.denv.ai
The installer downloads denvd for the host's architecture, installs a systemd unit, and joins. The token becomes a per-host certificate; later connections use mutual TLS. denvd opens one outbound connection and listens on no public port.
4. How domains are detected
When it joins, denvd reads the GPU fabric:
- On an 8-GPU server, the server is one domain.
- On an NVL72 rack,
denvdreads the NVLink fabric identity that every tray in the rack shares. Trays with the same identity form one domain of 72 GPUs.
If a tray is missing or its fabric is degraded, the domain is reported with fewer usable GPUs, and releases that need the full domain are not placed there.
5. Check
denv host list --fleet gb200-rack
HOST HARDWARE GPUS DRIVER DOMAIN RELEASE STATE
h-01JA0Q… gb200-nvl72 4 580.x gb200-rack/d1 - ready
h-01JA0R… gb200-nvl72 4 580.x gb200-rack/d1 - ready
...
denv fleet get gb200-rack
shows each domain, its size and free GPUs. A disaggregated release with placement: same-domain needs its prefill and decode pools to fit inside one domain; see Serving topology.
Mixed hardware
Keep one shape per fleet. If you own H100 servers and an NVL72 rack, make two fleets. A stage can serve from both, with a different recipe per fleet; see Route across fleets.
Remove a host
denv host drain <id>
denv host remove <id>
drain moves traffic off the host's replicas first. On the machine, /opt/denv/uninstall.sh removes denvd.
Next
- Choose a recipe for this hardware.
- denvd for paths, commands and what the agent never does.
- Hardware for hardware ids and domain sizes.