nomploy schedules NVIDIA GPUs through Nomad's nomad-device-nvidia plugin. There
are two steps: enable GPU support on the node, then request a GPU in your job.
The NVIDIA driver (nvidia-smi) must already be installed on the machine —
nomploy does not install the kernel driver.
Open the server's setup/actions and use GPU Configuration → Enable GPU Support. This:
- installs the NVIDIA Container Toolkit,
- points Docker at the
nvidiaruntime, and - installs the
nomad-device-nvidiaplugin so Nomad can fingerprint and schedule the GPUs.
The card shows the detected GPU status and becomes Reconfigure GPU once set up.
There's no separate GPU form field — you request GPUs in your service definition.
Use the standard compose device reservation:
services:
trainer:
image: my/cuda-app:latest
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: 1
capabilities: [gpu]A device is treated as a GPU when its driver is nvidia or its
capabilities include gpu. The count is summed across matching devices;
count: all or an omitted count is treated as 1. nomploy turns that into a
Nomad device "nvidia/gpu" { count = N } block in the generated job. (nvidia/gpu
matches any NVIDIA GPU the plugin fingerprints.)
If you deploy a native HCL job, request
the device directly in the task's resources:
resources {
cpu = 2000
memory = 4096
device "nvidia/gpu" {
count = 1
}
}This gives you the full device-plugin surface (constraints on model, memory,
affinity, etc.) if you need it.
- GPUs are only schedulable on nodes where you enabled GPU support in step 1.
- Combine with a
constraintif you have a mixed fleet and want a job pinned to GPU nodes.