Configure GPU Acceleration
The MoveIt Pro CLI detects supported NVIDIA and AMD GPUs automatically after the required host driver and container toolkit are configured. This guide covers those host dependencies and verification steps.
MoveIt Pro has two different integrations of GPU support:
- GPU Acceleration, where MoveIt Pro will utilize GPU resources when rendering simulators and cameras.
- GPU Inference, where MoveIt Pro will utilize GPU resources for Machine Learning models.
GPU Acceleration can be used without GPU Inference, but GPU Inference requires GPU Acceleration to be enabled.
The NVIDIA workflow below enables GPU acceleration for simulation and camera rendering and GPU inference for ML models. AMD GPUs accelerate simulation and camera rendering, while the SAM3 examples currently run inference on the CPU.
Please read and follow ALL the steps below carefully.
These generic NVIDIA instructions do not apply to Jetson. Starting with MoveIt Pro 10.0, ROS Jazzy on Jetson uses MOVEIT_TARGET=-jetson-cuda13.2-cudnn9 and requires JetPack 7.2 / L4T r39.2; it is available after the release and Jetson hardware qualification complete. See Configure NVIDIA Jetson.
NVIDIA GPUs
NVIDIA Drivers
Please ensure that you have NVIDIA drivers installed for your system:
nvidia-smi
You should get something similar to the following output:
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 570.195.03 Driver Version: 570.195.03 CUDA Version: 12.8 |
|-----------------------------------------+------------------------+----------------------+
| GPU Name Persistence-M | Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|=========================================+========================+======================|
| 0 NVIDIA GeForce RTX 4060 ... Off | 00000000:01:00.0 On | N/A |
| N/A 40C P8 3W / 115W | 806MiB / 8188MiB | 30% Default |
| | | N/A |
+-----------------------------------------+------------------------+----------------------+
+-----------------------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=========================================================================================|
| No running processes found |
+-----------------------------------------------------------------------------------------+
If the command isn't found then you likely do not have the NVIDIA driver installed. To install the NVIDIA driver on Ubuntu, see the instructions below:
sudo add-apt-repository multiverse
sudo apt update
sudo apt install ubuntu-drivers-common ubuntu-restricted-extras
sudo apt update
sudo apt install nvidia-driver-570
sudo reboot
For Debian or other Debian or Ubuntu derivatives, please follow this guide and install nvidia-driver-570.
MoveIt Pro GPU Inference is currently only compatible with NVIDIA driver versions >= 560. See the CUDA Toolkit Compatibility Matrix for more details. "Proprietary" versions of the driver are preferred (as opposed to "Open" or "Open Kernel" versions) but some hardware may require the "Open" version.
For real-time NVIDIA driver support, please follow this guide
NVIDIA Container Toolkit
Next, install the nvidia-container-toolkit following this guide.
Please ensure that you follow the steps under Configuring Docker to configure and restart the Docker daemon.
To verify that the toolkit is installed properly, please run the following sample container:
docker run --rm --runtime=nvidia --gpus all ubuntu nvidia-smi
And observe that the output matches the above nvidia-smi command.
GPU Acceleration and GPU Inference
If both the NVIDIA driver and nvidia-container-toolkit are installed, any moveit_pro command will automatically detect the existence of the GPU and utilize it for acceleration and inference.
When using the MoveIt Pro CLI, this is done by automatically including an additional Docker Compose file installed on your system at /opt/moveit_pro/nvidia-compose.yaml.
If you are running raw docker compose commands instead of the moveit_pro CLI, you must explicitly include /opt/moveit_pro/nvidia-compose.yaml yourself, as described in not using the MoveIt Pro CLI.
You can verify this by confirming that the base Docker image used by MoveIt Pro contains the terms cuda and cudnn or by running moveit_pro shell and then nvidia-smi inside the container.
To test GPU inference functionality, you can utilize the core Behavior "GetMasks2DFromPointQuery" in an Objective.
The segmentation with inference should be significantly faster than without and you should notice higher resource usage in nvidia-smi.
Additionally, if inference falls back to CPU, you will receive a notice in the MoveIt Pro Desktop App.
AMD GPUs
AMD Drivers
Confirm that the host meets AMD's current system requirements, including a supported operating system, Docker version, and AMD GPU driver. You do not need to install ROCm on the host because the MoveIt Pro Runtime image includes the required ROCm libraries. The user who runs Docker must belong to the host's render and video groups.
AMD Container Toolkit
MoveIt Pro 10.0 requires the AMD Container Toolkit on supported amd64 hosts. Install it by following AMD's Quick Start Guide. Then register the runtime, generate its Container Device Interface (CDI) specification, and restart Docker:
sudo amd-ctk runtime configure
sudo mkdir -p /etc/cdi
sudo amd-ctk cdi generate
sudo systemctl restart docker
sudo amd-ctk cdi validate
On an amd64 host, verify that Docker can access the GPU:
docker run --rm --runtime=amd \
-e AMD_VISIBLE_DEVICES=all \
rocm/rocm-terminal rocm-smi
When both the AMD driver and AMD Container Toolkit are available on an amd64 host, the MoveIt Pro CLI selects its AMD target image, which includes ROCm libraries. AMD's toolkit installation and ROCm verification image are not available on arm64; the MoveIt Pro ARM64 AMD target provides Mesa VA-API display acceleration and CPU-only inference. If the CLI detects AMD hardware but cannot find amd-container-runtime, it stops with installation guidance instead of silently selecting the CPU image.