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, denvd reads 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