Skip to content

[DOC] Add bare-metal CMake build tutorial #67

@RamyaGuru

Description

@RamyaGuru

Report needed documentation

Report needed documentation

The current getting-started guide provides a 5-line CMake snippet for bare-metal builds and directs users to "inspect the Dockerfile" for dependency details. There is no step-by-step tutorial that walks a user through a full bare-metal CMake installation — from installing prerequisites (DPDK from source with patches, RDMA libraries, CUDA toolkit verification) through configuring, building, and verifying the DAQIRI library. The existing tutorials cover background concepts, system configuration, benchmarking, and YAML config files, but none address the build itself in tutorial form. Users on DGX Spark, IGX Thor, or RTX Pro Server who cannot or prefer not to use the container workflow have no guided path to a working build.

Describe the documentation you'd like

A new tutorial (e.g. docs/tutorials/bare-metal-cmake-build.md) that covers:

  1. Prerequisite verification — checking for CUDA toolkit, NVIDIA driver with GPUDirect support, ConnectX SmartNIC with MLNX_OFED or inbox drivers, and kernel dma-buf support.
  2. Dependency installation — step-by-step commands for build tools (cmake, gcc/g++), RDMA libraries (libibverbs-dev, librdmacm-dev, libmlx5), and optional Python binding deps (pybind11-dev).
  3. Building DPDK from source — cloning DPDK v25.11, applying the dmabuf.patch and dpdk.nvidia.patch from dpdk_patches/, configuring with meson, installing, and verifying pkg-config --libs libdpdk works.
  4. CMake configuration walkthrough — explaining when to use each DAQIRI_MGR combination (dpdk, dpdk socket, dpdk socket rdma), how to enable Python bindings and GDS, and how to adjust CUDA architectures (currently hardcoded to 80;90;121).
  5. Build, install, and verification — running cmake --build, cmake --install, and confirming the library and headers are in the expected prefix.
  6. Troubleshooting common failures — CMake can't find DPDK or libibverbs, CUDA architecture mismatch, missing hugepages, nvidia-fs module not loaded.
  7. Platform-specific notes for DGX Spark, IGX Thor, and RTX Pro Server where the steps diverge.

The tutorial should be added to the mkdocs.yml nav under Tutorials (between Background and System Configuration) and linked from docs/index.html.

Metadata

Metadata

Assignees

Labels

documentationImprovements or additions to documentation

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions