GPU provider
Run workloads on AMD GPUs with DigitalOcean
Use DigitalOcean GPU Droplets as the provisioning provider, AMD Instinct as the accelerator target, and ROCm as the runtime.
Production profile
- •Provider: digitalocean. Provider target: digitalocean_amd. Runtime: ROCm.
- •Jungle Grid creates an AMD GPU Droplet, starts a scoped cloud-init runner, streams runtime data, then tears the VM down.
- •The older amd_hackathon_runner profile remains a bring-your-own Jupyter runner fallback.
01
Configure DigitalOcean AMD capacity
The orchestrator needs a DigitalOcean token with Droplet create/read/delete plus size, region, and image read access. GPU availability is discovered from the sizes API for the configured account and region.
- •gpu-amd-base is the default AMD AI/ML-ready image.
- •Optional VPC, tags, snapshot, firewall, and keepalive controls are supported.
- •Every Droplet is tagged junglegrid, managed, gpu, amd, organization, job, and environment.
02
Run the first ROCm smoke test
VM script mode is the initial execution mode. The runner captures rocm-smi, Python, Docker, disk, and callback diagnostics before it executes the command.
03
ROCm-aware routing and screening
Explicit AMD, ROCm, or digitalocean_amd requests only consider AMD-compatible capacity. CUDA images, NVIDIA labels, nvidia-smi commands, and known CUDA-only workload hints are blocked before provisioning.
- •Use io.junglegrid.runtime=rocm or an AMD label when a build pipeline can supply OCI metadata.
- •Recognized framework hints are pytorch-rocm, vllm-rocm, llama.cpp-rocm, and onnx-rocm.
- •Unknown CUDA-heavy containers are never silently moved to AMD; declare ROCm compatibility or select an NVIDIA route.
04
Execution modes and lifecycle
vm_script is the default proof path. Container mode uses Docker with /dev/kfd and /dev/dri, seccomp=unconfined, and the video group for tested ROCm images. In either mode, cloud-init installs the runner configuration and systemd starts junglegrid-runner.service.
- •The token is scoped to one job and managed node for registration, callback, log, artifact, and status operations.
- •The runner phones home before workload execution and reports the public VM lifecycle through Jungle Grid.
- •Completed, failed, timed-out, manually terminated, and orphan-repair workflows use the provider Droplet ID and managed tags for cleanup.
05
Troubleshooting
No available AMD size normally means the token lacks GPU entitlement or the desired region has no capacity. If the VM is active but the runner has not registered, ensure ORCH_BASE_URL is public HTTPS, then inspect journalctl -u junglegrid-runner with an optional configured SSH key.
- •Use gpu-amd-base, or a tested snapshot derived from it, when rocm-smi is missing.
- •Set keepalive: true on a failing AMD job for post-mortem debugging; normal completed and cancelled jobs still clean up.
- •The Admin provider view reports missing token, disabled profile, API error, or discovered AMD capacity.