Linux / amd64
Linux / arm64
The NVIDIA® DOCA™ SDK (software development kit) enables developers to rapidly create applications and services on top of NVIDIA BlueField® data processing units (DPUs), leveraging industry-standard APIs. With DOCA, developers can deliver breakthrough networking, security, and storage performance by harnessing the power of the NVIDIA DPUs.
The DOCA Toolkit from NVIDIA provides everything you need to develop DPU-accelerated applications. The DOCA Toolkit includes DPU-accelerated libraries, development tools and the DOCA runtime.
The DOCA container images provide an easy-to-use distribution for DOCA supported platforms and architectures.
Three flavors of images are provided:
base-rt: Includes the DOCA runtime, using the most basic runtime environment needed.
full-rt: Builds on the previous and includes the full list of runtime packages, which are all user-mode components that can be found under the doca-runtime package.
devel: Builds on the previous and adds headers and development tools for developing and debugging DOCA applications. This image is particularly useful for multi-stage builds.
All images are preconfigured to use to the DOCA repository of the matching DOCA version. This means that installing an additional DOCA package as part of a Dockerfile / within the development container can be done using the following commands:
apt update apt install <package name>
For DOCA + CUDA environments there are similar flavors for these images combined with CUDA's images:
All preparation steps are listed under DOCA's Container Deployment User Guide.
Being a common requirement for many DOCA Applications there are some resource allocation steps needed before the container can be executed:
# Allocate huge-pages, required by most DOCA Applications echo 2048 > /sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages
The .yaml configurations for the DOCA development containers are:
wget --content-disposition https://api.ngc.nvidia.com/v2/resources/nvidia/doca/doca_container_configs/versions/1.5.0/files/configs/1.5.0/doca_devel.yaml
wget --content-disposition https://api.ngc.nvidia.com/v2/resources/nvidia/doca/doca_container_configs/versions/1.5.0/files/configs/1.5.0/doca_devel_cuda.yaml
The containers don't require any update to the .yaml files and they can simply be used "as-is".
Note: The files are also stored with the rest of the .yaml configurations as were pulled from NGC in the previous steps (See "Installation and Getting Started").
doca_devel.yaml file to the
/etc/kubelet.d directory. Kubelet will automatically pull the container image from NGC, and spawn a pod executing the container.
Once the container is loaded you need to get its ID via:
# View currently active containers, and their IDs crictl ps
And then run the following command to connect to it and start developing from within the container:
# Will run a bash in the container and gives you interactive control of it crictl exec -it <container ID> /bin/bash
Please refer to the documentation for more information.
For more information on DOCA, including the release notes, programming model, APIs and developer tools, visit the DOCA documentation site.
DOCA is licensed under the NVIDIA DOCA License. By pulling and using the container, you accept the terms and conditions of this license.
Use the NVIDIA Developers forum for questions regarding this Software.