Skip to content

#67 - Add bare-metal CMake build tutorial#95

Open
chloecrozier wants to merge 4 commits into
mainfrom
docs/bare-metal-cmake-build
Open

#67 - Add bare-metal CMake build tutorial#95
chloecrozier wants to merge 4 commits into
mainfrom
docs/bare-metal-cmake-build

Conversation

@chloecrozier
Copy link
Copy Markdown
Member

@chloecrozier chloecrozier commented May 26, 2026

Closes #67

Summary

  • New tutorial docs/tutorials/bare-metal-cmake-build.md walking through a full bare-metal build: prerequisite checks, DOCA repo, dependency install, patched DPDK 25.11 from source, CMake configuration, install, smoke test, troubleshooting, and per-platform notes for DGX Spark, IGX Orin, and x86_64 RTX Pro Server.
  • Added to the Tutorials nav in mkdocs.yml directly after "System Configuration".
  • Converted the "Building from Source with CMake" Coming Soon tile on the landing page (docs/index.html) to a live link.

The current Getting Started page gives a 5-line CMake snippet and says "see the Dockerfile" for dependency details. Users on DGX Spark, IGX Orin, or an x86_64 RTX Pro server who can't or don't want to use the container had no guided path. This is the initial version of that guided path, scoped so it can land now and grow over time as we exercise it on more hardware/platforms.

Rebased onto current main: the previous branch carried the #69 API-reference restructure commits, which have since landed via PR #94, plus PR #107 made -DCMAKE_CUDA_ARCHITECTURES=... actually honored. The branch is now a clean delta on top of main containing only the bare-metal tutorial work.

UPDATED Test plan

  • python scripts/check_doc_refs.py — clean (8 binaries, 20 YAML configs, 11 doc files)
  • mkdocs build --strict — clean (no broken links or anchors)
  • python scripts/check_html_links.py site/ — all landing-page links resolve
  • End-to-end walkthrough on IGX devkit (Ubuntu 22.04.5 LTS aarch64, IGX/Tegra kernel 5.15.0-1039-nvidia-tegra-igx, RTX 6000 Ada, CUDA 12.6.68, ConnectX-7): Step 2 apt install, DPDK 25.11 configure/build/install (pkg-config --modversion libdpdk25.11.0), DAQIRI core build and install to /opt/daqiri, minimal consumer compile/link against /opt/daqiri/lib/pkgconfig/daqiri.pc. Documented in @dleshchev's review on PR #67 - Add bare-metal CMake build tutorial #95.

Review feedback addressed

From @greptile-apps

  • Switched the DPDK patch commands to patch -p1 for the initial fix, then back to git apply after the IGX walkthrough showed GNU patch 2.7.x does not accept --exclude=. The tutorial now explains both reasons: (a) --exclude= is required to skip .mailmap / release-note hunks that don't exist in a stock tarball, and (b) git apply works against an extracted tarball even though it is not a git repo.
  • Replaced hard line-number links into src/CMakeLists.txt with "search for DAQIRI_HAS_SOCKET_IDX / CMAKE_CUDA_ARCHITECTURES" pointers that survive source-file edits.
  • CMAKE_CUDA_ARCHITECTURES override now actually works (PR #106 - Fix CUDA 12.6 raw benchmark build #107). The tutorial uses plain cmake -S . -B build ... -DCMAKE_CUDA_ARCHITECTURES=89 on the command line; the sed workaround and the "silently ignored" warning are gone, so the related "sed silently succeeds if pattern already changed" concern is moot.

From @RamyaGuru

  • Smoke test uses the standard two-port daqiri_bench_raw_tx_rx.yaml loopback rather than the SW loopback.

From @dleshchev (IGX walkthrough on PR #95)

  • DPDK patch command rewrite — see above; reverted to git apply --exclude=....
  • Long copy/paste commands are fragile — the Kitware apt-source echo and the Meson -Ddisable_drivers=... are now built from shell variables (KITWARE_LINE, DISABLE_DRIVERS) so terminal line-wrap can't silently truncate the argument. Added a Copy/paste safety tip explaining why.
  • ibv_devinfo libvmw_pvrdma-rdmav34.so warning — added a new failure tile in the Prerequisite Verification section calling it harmless and cross-linking to the System Configuration page that already covers it.
  • /proc/config.gz absent on IGX/Tegra — the existing failure tile now explicitly calls out the IGX/Tegra kernel, and the IGX Orin platform tab also points back to the /boot/config-$(uname -r) fallback.
  • apt selects ibverbs-providers instead of libmlx5-1 — added a note explaining apt may resolve libmlx5-1 to the ibverbs-providers virtual package, that this works fine, and what to do if you specifically want the DOCA-provided build.
  • CUDA 12.6 / RTX 6000 Ada build failures — resolved by PR #106 - Fix CUDA 12.6 raw benchmark build #107 on main. This branch now picks up the new default arch list (80;90, with 121 appended only on CUDA Toolkit ≥ 13.0); the IGX Orin tab tells users to pass -DCMAKE_CUDA_ARCHITECTURES=89 for RTX 6000 Ada; a new compute_121 troubleshooting tile explains when the error can still appear and how to drop the 121 entry.

Follow-ups (in addition to this PR)

  • Validate the recipe end-to-end on the DGX Spark and x86_64 RTX Pro Server reference platforms (IGX has been walked once; see Test plan) and fold any missing apt packages or extra steps back into the tutorial.
  • Add an IGX Thor tab once the platform is supported.
  • Expand the CMAKE_CUDA_ARCHITECTURES table as new GPUs (e.g. additional Blackwell SKUs) get added to the lab.
  • Add a short "bare-metal build" pointer to the README so the new tutorial is easy to find from GitHub.
  • Add a CI job that runs the tutorial's commands on a clean Ubuntu image to catch dependency drift.

Platform-specific things to test / add

DGX Spark (GB10)

  • Confirm DOCA repo on IGX OS / Ubuntu 24.04 ARM resolves all ConnectX-7 deps.
  • Verify the new default arch list (80;90 plus 121 appended automatically on CUDA Toolkit ≥ 13.0) compiles against the installed CUDA Toolkit.
  • Smoke-test with daqiri_bench_raw_tx_rx_spark.yaml (post-#15 #77 - Fix DGX Spark example to a true over-the-wire loopback (TX/… #108 cross-port BDFs).
  • Smoke-test with daqiri_bench_rdma_tx_rx_spark.yaml.
  • Double-check host_pinned is the right buffer kind on current firmware.

IGX

  • Initial walkthrough complete on IGX devkit (RTX 6000 Ada, CUDA 12.6.68, ConnectX-7) — DPDK 25.11 install + DAQIRI core build/install + consumer link test all succeeded. Findings folded back into this PR; smoke-test step blocked on DAQIRI_BUILD_EXAMPLES=ON on CUDA 12.6 at the time, now unblocked by PR #106 - Fix CUDA 12.6 raw benchmark build #107.
  • Re-run the smoke-test step end-to-end on IGX SW 1.1 with -DCMAKE_CUDA_ARCHITECTURES=89 now that PR #106 - Fix CUDA 12.6 raw benchmark build #107 has landed.
  • Confirmed the aarch64-linux-gnu PKG_CONFIG_PATH hint is correct.
  • Check whether nvidia-peermem still needs to be loaded when not using the patched DPDK.
  • Validate BAR1 / MRRS settings from System Configuration interact cleanly with a fresh bare-metal build.

x86_64 RTX Pro Server

  • Walk the recipe on Ubuntu 22.04 with an RTX Pro 6000 Blackwell (arch 100).
  • Walk the recipe on Ubuntu 24.04 with an RTX Pro 6000 Blackwell (arch 100).
  • Walk the recipe on Ubuntu 22.04 with an RTX 6000 Ada (arch 89).
  • Confirm DPDK 25.11 meson builds against the x86_64 DOCA libs.
  • Verify pkg-config picks up /usr/local/lib/x86_64-linux-gnu/pkgconfig without extra env tweaks.

@greptile-apps
Copy link
Copy Markdown

greptile-apps Bot commented May 26, 2026

Greptile Summary

This PR adds the bare-metal CMake build tutorial that was previously a "Coming Soon" tile on the landing page, wires it into the mkdocs nav, and activates the landing-page link. The change is documentation-only — no source code is modified.

  • New docs/tutorials/bare-metal-cmake-build.md covers the full build path: prerequisite checks, DOCA repo setup, patched DPDK 25.11 from source (git apply --exclude=), CMake configuration (including CMAKE_CUDA_ARCHITECTURES override guidance now accurate following PR #106 - Fix CUDA 12.6 raw benchmark build #107), install, smoke test, troubleshooting tiles, and per-platform callouts for DGX Spark, IGX Orin, and x86_64 RTX Pro Server.
  • mkdocs.yml nav and docs/index.html landing-page tile are updated together, satisfying the doc-sync requirement for mkdocs.yml nav changes; all four commits carry DCO Signed-off-by trailers and follow the #67 - Title format.

Confidence Score: 5/5

Documentation-only PR; no library source code, build system, or API surface is touched. Safe to merge.

All three changed files are docs or nav config. The tutorial absorbs fixes from PR #107 and the prior review round. DCO trailers and commit title format are correct on all four commits. The mkdocs.yml nav and docs/index.html landing page are updated together as required by the doc-sync rule.

No files require special attention.

Important Files Changed

Filename Overview
docs/tutorials/bare-metal-cmake-build.md New 446-line tutorial covering DPDK patch + DAQIRI bare-metal build end-to-end; technically sound with prior-round fixes absorbed; no code changes.
docs/index.html Converts the "Building from Source with CMake" Coming Soon tile to a live link pointing to the new tutorial; title updated to "Bare-Metal CMake Build".
mkdocs.yml Adds the new tutorial entry to the Tutorials nav between System Configuration and Benchmarking Examples; consistent with docs/index.html landing page order.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
    A[Prerequisite Verification\nnvidia-smi / nvcc / ibv_devinfo / lspci] --> B[Step 1: Configure DOCA APT Repo]
    B --> C[Step 2: Install Build Tooling\nbuild-essential / ninja / meson / CMake 3.20+\nlibibverbs-dev / librdmacm-dev / libmlx5-1]
    C --> D[Step 3: Build Patched DPDK 25.11\ngit clone daqiri to download tarball\ngit apply dmabuf.patch + dpdk.nvidia.patch\nmeson setup + ninja + sudo meson install]
    D --> E[Step 4: Configure DAQIRI with CMake\ncmake -S . -B build\nDDAQIRI_MGR / DCMAKE_CUDA_ARCHITECTURES]
    E --> F[Step 5.1: Build\ncmake --build build -j nproc]
    F --> G[Step 5.2: Install\ncmake --install build --prefix /opt/daqiri]
    G --> H{ldd resolves\nlibrte_* / libibverbs\nlibcudart?}
    H -- Yes --> I[Step 5.3: Smoke Test\ndaqiri_bench_raw_gpudirect\ndaqiri_bench_raw_tx_rx.yaml]
    H -- No --> J[Step 6: Troubleshooting\nPKG_CONFIG_PATH / hugepages\nlibverbs / compute_121]
    I --> K[Next Steps\nSystem Configuration\nBenchmarking Examples]
Loading

Reviews (5): Last reviewed commit: "#67 - Scrub em-dashes and hedges from ba..." | Re-trigger Greptile

Comment on lines +126 to +131
git apply \
--exclude=.mailmap \
--exclude=doc/guides/rel_notes/release_26_03.rst \
"$OLDPWD/dpdk_patches/dmabuf.patch"
git apply "$OLDPWD/dpdk_patches/dpdk.nvidia.patch"
```
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 git apply fails on a non-git directory

/tmp/dpdk-${DPDK_VERSION} is an extracted tarball, not a git repository. git apply requires the working directory to be inside a git repo (it walks up looking for .git) and will fail with fatal: not a git repository on a bare extract. The conventional tool for applying patches to tarball-extracted source trees is patch -p1:

patch -p1 --exclude=.mailmap --exclude=doc/guides/rel_notes/release_26_03.rst \
    < "$OLDPWD/dpdk_patches/dmabuf.patch"
patch -p1 < "$OLDPWD/dpdk_patches/dpdk.nvidia.patch"

Alternatively, add git init && git add -A && git commit -m "baseline" before the git apply calls, but patch -p1 is the idiomatic approach for tarballs and removes the git dependency from the DPDK build step.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Switched the DPDK patch commands from git apply to patch -p1 (the extracted tarball is not a git repository).

Comment on lines +207 to +220

The CUDA architectures DAQIRI compiles for are currently hardcoded to `80;90;121` (A100, H100, GB10) at [`src/CMakeLists.txt:25`](https://github.com/NVIDIA/daqiri/blob/main/src/CMakeLists.txt). If your GPU is a different generation, or your installed CUDA Toolkit does not understand one of those architectures (most commonly `121` on older toolkits), override it on the CMake command line:

```bash
# Example: only build for Ada (sm_89, e.g. RTX 6000 Ada)
cmake -S . -B build ... -DCMAKE_CUDA_ARCHITECTURES=89

# Example: A100 + Ada + Hopper, skip GB10
cmake -S . -B build ... -DCMAKE_CUDA_ARCHITECTURES="80;89;90"
```

The override works because `CMAKE_CUDA_ARCHITECTURES` is a standard CMake variable; the `set()` in `src/CMakeLists.txt` runs after the command-line cache value is established. Common values:

| GPU family | Architecture |
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 -DCMAKE_CUDA_ARCHITECTURES override is silently ignored

The tutorial tells IGX Orin (sm_89) and RTX Pro Server (sm_100) users that passing -DCMAKE_CUDA_ARCHITECTURES=89 on the CMake command line overrides the hardcoded value. It does not. src/CMakeLists.txt line 25 uses a plain set(CMAKE_CUDA_ARCHITECTURES "80;90;121"), which creates a normal CMake variable that shadows the cache variable set by -D. Within src/'s scope — where all CUDA sources are compiled — CMAKE_CUDA_ARCHITECTURES is unconditionally "80;90;121", regardless of the command-line cache value.

The PR description's own follow-up captures this: "Consider promoting CMAKE_CUDA_ARCHITECTURES from a hardcoded set() in src/CMakeLists.txt to a proper cache variable so the override is discoverable." Until that change lands in src/CMakeLists.txt, the override instructions in this section are incorrect and will mislead users on platforms that need a different architecture — especially RTX Pro 6000 Blackwell (sm_100), which is not in the default list and won't have pre-compiled code.

Copy link
Copy Markdown
Member Author

@chloecrozier chloecrozier May 26, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Corrected the CMAKE_CUDA_ARCHITECTURES guidance: src/CMakeLists.txt:25 uses a plain set() that shadows the cache variable, so -DCMAKE_CUDA_ARCHITECTURES=... on the CMake command line is silently ignored. The tutorial now tells users to edit that line directly and adds a warning that the default list does not cover sm_86 / sm_89 / sm_100.


`ldd` should show `librte_*` (DPDK), `libibverbs.so`, `librdmacm.so`, `libcudart.so`, and `libyaml-cpp.so` resolving. Unresolved entries usually mean either DPDK was installed to a prefix not on the dynamic loader path (add it to `/etc/ld.so.conf.d/` and re-run `sudo ldconfig`), or the RDMA libraries from [Step 2](#step-2-install-build-tooling-and-rdma-libraries) were not actually installed.

### 5.3 Smoke test
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Instead of the SW loopback, we should use the standard daqiri_bench_raw_tx_rx.yaml for the smoke test.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you, I updated that!

@dleshchev
Copy link
Copy Markdown
Collaborator

I walked through the bare-metal tutorial on the IGX devkit using PR #95.

Environment:

  • Ubuntu 22.04.5 LTS, aarch64, IGX/Tegra kernel 5.15.0-1039-nvidia-tegra-igx
  • RTX 6000 Ada
  • CUDA Toolkit 12.6.68
  • ConnectX-7, mlx5_0 / mlx5_1, both active
  • DPDK 25.11 built and installed successfully after patch-command workaround

Integration note:

  • PR #67 - Add bare-metal CMake build tutorial #95 currently needs a rebase onto current main. GitHub reports it as conflicting, and the conflicts are in the docs restructure area (docs/concepts.md, docs/index.html, mkdocs.yml). Rebasing should make the new tutorial compatible with the latest docs structure.

Blocking items found during the walkthrough:

  1. DPDK patch command does not work as written.

The tutorial uses:

patch -p1 \
    --exclude=.mailmap \
    --exclude='doc/guides/rel_notes/release_26_03.rst' \
    < "$OLDPWD/dpdk_patches/dmabuf.patch"

On this host, GNU patch 2.7.6 rejects --exclude:

patch: unrecognized option '--exclude=.mailmap'

The workaround that succeeded was:

git apply \
    --exclude=.mailmap \
    --exclude='doc/guides/rel_notes/release_26_03.rst' \
    /tmp/daqiri-pr95-baremetal/dpdk_patches/dmabuf.patch
git apply /tmp/daqiri-pr95-baremetal/dpdk_patches/dpdk.nvidia.patch

This worked even in the extracted DPDK tarball directory.

  1. CUDA 12.6 / RTX 6000 Ada issues blocked the tutorial smoke-test path.

During the same walkthrough, the tutorial could not reach the raw TX/RX smoke test because DAQIRI_BUILD_EXAMPLES=ON failed on CUDA Toolkit 12.6.68, and RTX 6000 Ada also needs CUDA arch handling different from the tutorial's default path.

Those CUDA-related findings have been split out:

So I would not block this tutorial PR on implementing the CUDA fix here, but the tutorial should account for the outcome once #107 lands.

Usability issues found during the walkthrough:

  1. Long copy/paste commands are fragile.

The long Kitware apt-source echo command and the long Meson -Ddisable_drivers=... command both broke when line-wrapped during terminal copy/paste. The Meson configure still ran, but with a truncated disable list until we rewrote the value into a shell variable.

Suggested doc style:

DISABLE_DRIVERS='baseband/*,bus/ifpga/*,...'
meson setup ${DPDK_BUILD_DIR} \
    --prefix=${DPDK_INSTALL_PREFIX} \
    -Dtests=false \
    -Dplatform=generic \
    -Denable_docs=false \
    -Ddisable_drivers="${DISABLE_DRIVERS}"
  1. Minor clarity improvements:
  • ibv_devinfo printed the libvmw_pvrdma-rdmav34.so warning, but still reported both mlx5 devices. System Configuration already calls this harmless; this tutorial could mention it too.
  • /proc/config.gz was absent, but the documented /boot/config-$(uname -r) fallback worked and confirmed CONFIG_DMA_SHARED_BUFFER=y.
  • apt selected ibverbs-providers instead of libmlx5-1; the install still worked, but the package wording may be less portable than intended.

Successful parts:

  • Step 2 package install worked.
  • DPDK 25.11 configured, built, installed, and pkg-config --modversion libdpdk returned 25.11.0.
  • DAQIRI core library built and installed to /opt/daqiri.
  • A minimal consumer compile/link test against /opt/daqiri/lib/pkgconfig/daqiri.pc succeeded.

Copy link
Copy Markdown
Collaborator

@dleshchev dleshchev left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This can now be easily applied as the PR 107 landed!


I walked through the bare-metal tutorial on the IGX devkit using PR #95.

Environment:

Ubuntu 22.04.5 LTS, aarch64, IGX/Tegra kernel 5.15.0-1039-nvidia-tegra-igx
RTX 6000 Ada
CUDA Toolkit 12.6.68
ConnectX-7, mlx5_0 / mlx5_1, both active
DPDK 25.11 built and installed successfully after patch-command workaround
Integration note:

PR #95 currently needs a rebase onto current main. GitHub reports it as conflicting, and the conflicts are in the docs restructure area (docs/concepts.md, docs/index.html, mkdocs.yml). Rebasing should make the new tutorial compatible with the latest docs structure.
Blocking items found during the walkthrough:

DPDK patch command does not work as written.
The tutorial uses:

patch -p1
--exclude=.mailmap
--exclude='doc/guides/rel_notes/release_26_03.rst'
< "$OLDPWD/dpdk_patches/dmabuf.patch"
On this host, GNU patch 2.7.6 rejects --exclude:

patch: unrecognized option '--exclude=.mailmap'
The workaround that succeeded was:

git apply
--exclude=.mailmap
--exclude='doc/guides/rel_notes/release_26_03.rst'
/tmp/daqiri-pr95-baremetal/dpdk_patches/dmabuf.patch
git apply /tmp/daqiri-pr95-baremetal/dpdk_patches/dpdk.nvidia.patch
This worked even in the extracted DPDK tarball directory.

CUDA 12.6 / RTX 6000 Ada issues blocked the tutorial smoke-test path.
During the same walkthrough, the tutorial could not reach the raw TX/RX smoke test because DAQIRI_BUILD_EXAMPLES=ON failed on CUDA Toolkit 12.6.68, and RTX 6000 Ada also needs CUDA arch handling different from the tutorial's default path.

Those CUDA-related findings have been solved with PR 107 landed.

Usability issues found during the walkthrough:

Long copy/paste commands are fragile.
The long Kitware apt-source echo command and the long Meson -Ddisable_drivers=... command both broke when line-wrapped during terminal copy/paste. The Meson configure still ran, but with a truncated disable list until we rewrote the value into a shell variable.

Suggested doc style:

DISABLE_DRIVERS='baseband/,bus/ifpga/,...'
meson setup ${DPDK_BUILD_DIR}
--prefix=${DPDK_INSTALL_PREFIX}
-Dtests=false
-Dplatform=generic
-Denable_docs=false
-Ddisable_drivers="${DISABLE_DRIVERS}"
Minor clarity improvements:
ibv_devinfo printed the libvmw_pvrdma-rdmav34.so warning, but still reported both mlx5 devices. System Configuration already calls this harmless; this tutorial could mention it too.
/proc/config.gz was absent, but the documented /boot/config-$(uname -r) fallback worked and confirmed CONFIG_DMA_SHARED_BUFFER=y.
apt selected ibverbs-providers instead of libmlx5-1; the install still worked, but the package wording may be less portable than intended.
Successful parts:

Step 2 package install worked.
DPDK 25.11 configured, built, installed, and pkg-config --modversion libdpdk returned 25.11.0.
DAQIRI core library built and installed to /opt/daqiri.
A minimal consumer compile/link test against /opt/daqiri/lib/pkgconfig/daqiri.pc succeeded.

Signed-off-by: Chloe Crozier <chloecrozier@gmail.com>
Signed-off-by: Chloe Crozier <chloecrozier@gmail.com>
@chloecrozier chloecrozier force-pushed the docs/bare-metal-cmake-build branch from 500e36a to 4a8edef Compare June 2, 2026 18:29
@chloecrozier
Copy link
Copy Markdown
Member Author

chloecrozier commented Jun 2, 2026

DGX Spark Testing

Validated on a 2-Spark pair (GB10, ConnectX-7 fw 28.45.4028, Ubuntu 24.04 ARM, CUDA 13.0, driver 580.95.05), p0↔p0 cross-cabled, 2048 hugepages, peermem not loaded.

Followed the tutorial verbatim on both hosts (apt deps → DPDK 25.11 patch+build → cmake -S . -B build/$(hostname) with no -DCMAKE_CUDA_ARCHITECTUREScmake --buildsudo cmake --install --prefix /opt/daqiri), then ran cross-host smoke tests with per-role _spark_xhost.yaml configs.

Passed: items 1, 2, 3, 5 of the DGX-Spark follow-up checklist. Default arch list resolved to compute_80;compute_90;compute_121 against CUDA 13.0 (verified in daqiri_common.dir/flags.make); cross-host raw GPUDirect hit 49,613,568 / 49,613,568 packets, 0 drops, RX/TX = 1.000, ~106.7 Gbps over 30 s — which also confirms host_pinned is correct on this firmware (dma-buf path).

Needs fixing:

  • Item 4 (RDMA cross-host): build/link/RDMA_CM_EVENT_ESTABLISHED all succeed, but data plane fails with transport retry counter exceeded and a server-side segfault. Likely PFC/ECN config or a daqiri RDMA bug — out of scope for this doc-only PR but worth a follow-up.
  • Suggest a one-line !!! warning at Step 4: if conda (base) is active, find_package(yaml-cpp) silently picks up conda's yaml-cpp 0.8 and the build fails at link time with cannot find -lyaml-cpp. conda deactivate or env -i cmake ... fixes it.

Signed-off-by: Chloe Crozier <chloecrozier@gmail.com>
Signed-off-by: Chloe Crozier <chloecrozier@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[DOC] Add bare-metal CMake build tutorial

4 participants