add cuda 13.2 to jetson arm64 builds (main)#239
Conversation
There was a problem hiding this comment.
Pull request overview
Updates the self-hosted GitHub Actions CMake workflows to expand CUDA coverage (notably adding CUDA 13.2 to Jetson/ARM64 builds) and to make runner paths less user-specific.
Changes:
- Extend the ARM64 matrix to build/test with CUDA 12.9 and 13.2 for both GCC and Clang host compilers.
- Add an ARM64 workflow LD_LIBRARY_PATH override intended to support CUDA 13.2 compatibility libraries.
- Replace hard-coded
/home/<user>/...CMake path usage with$HOME/...in CI workflows.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 3 comments.
| File | Description |
|---|---|
| .github/workflows/cmake-linux-arm64.yml | Adds CUDA 13.2 to the ARM64 matrix and introduces CUDA-dependent LD_LIBRARY_PATH / PATH environment setup. |
| .github/workflows/cmake-linux-amd64.yml | Replaces a hard-coded home directory path with $HOME for CMake on x86_64 self-hosted runners. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| echo "CXX=${{matrix.host_compiler}}" >> "$GITHUB_ENV" | ||
|
|
||
| echo "CXX=${{matrix.host_compiler}}" >> "$GITHUB_ENV" | ||
| echo "LD_LIBRARY_PATH=/usr/local/${{matrix.cuda_ldpath}}:$LD_LIBRARY_PATH" >> "$GITHUB_ENV" |
There was a problem hiding this comment.
Setting LD_LIBRARY_PATH as "/usr/local/...:$LD_LIBRARY_PATH" can leave a trailing ':' when LD_LIBRARY_PATH is empty/unset, which causes the dynamic linker to also search the current working directory. Please adjust the append logic so an empty LD_LIBRARY_PATH does not introduce an empty path element (for safety and determinism).
| echo "LD_LIBRARY_PATH=/usr/local/${{matrix.cuda_ldpath}}:$LD_LIBRARY_PATH" >> "$GITHUB_ENV" | |
| echo "LD_LIBRARY_PATH=/usr/local/${{matrix.cuda_ldpath}}${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}" >> "$GITHUB_ENV" |
| - host_compiler: "g++-11" | ||
| cuda_toolkit: "12.9" | ||
| cuda_ldpath: "cuda-12.9" |
There was a problem hiding this comment.
The matrix value cuda_ldpath: "cuda-12.9" expands to /usr/local/cuda-12.9 in LD_LIBRARY_PATH, but CUDA shared libraries are typically under a lib directory (e.g., targets/aarch64-linux/lib / lib64) rather than the toolkit root. If this variable is meant to make runtime linking work, it should point at the directory that actually contains the .so files.
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| - host_compiler: "g++-11" | ||
| cuda_toolkit: "13.2" | ||
| cuda_ldpath: "cuda-13.2/compat_orin" | ||
| - host_compiler: "clang++-21" | ||
| cuda_toolkit: "13.2" | ||
| cuda_ldpath: "cuda-13.2/compat_orin" |
There was a problem hiding this comment.
cuda_ldpath values point at CUDA install roots (e.g. /usr/local/cuda-12.9 and /usr/local/cuda-13.2/compat_orin). LD_LIBRARY_PATH needs directories that directly contain the shared libraries (commonly .../lib64 or .../targets/aarch64-linux/lib, and for the compatibility package likely a .../lib subdir). As-is, the dynamic loader won’t search subdirectories, so runtime/test steps may fail to locate CUDA libs. Consider changing cuda_ldpath to the actual library directory paths for each toolkit/compat combo.
same as LTS, we add cuda 13.2 to jerson arm64 builds using the compatiblity package until jetpack 7.x is released.