Access NVIDIA GPUs

Warning

This is an experimental feature and has not been extensively tested.

Prerequisites

To enable this feature, make sure you have a cuda-enabled GPU with the correct drivers installed on your manager host. Drivers are available from nvidia drivers page.

Note

Make sure you have no containers running on your machine before continuing.

Installing nvidia-container-runtime

Follow the steps here to install the nvidia-container-runtime. The same URL describes a few ways to register the runtime. For the nvidia containers to play nicely with Daeploy you should edit the daemon.json configuration file and set nvidia as the default runtime.

Restart docker:

>>> sudo systemctl daemon-reload  
>>> sudo systemctl restart docker  
At this point you can start a manager on this machine and use it like normal.

Deploying services with GPU access

Services will not automatically use the GPU even with nvidia-container-runtime enabled, for the GPU to be available you must first set an environment variable in .s2i/environment. Add the row:

NVIDIA_VISIBLE_DEVICES = all

to expose all GPUs to a service. Take a look the nvidia environment variables to see the available options. Now if you deploy the service with daeploy deploy it will run in a container with access to cuda resources.