Skip to content

feat(cuid): temporary CUIDs for every component, conformance vectors, and amd-smi integration - #10818

Merged
arvindcheru merged 3 commits into
developfrom
users/dgalants/cuid-aux-vectors
Oct 16, 2026
Merged

arvindcheru merged 3 commits into
developfrom
users/dgalants/cuid-aux-vectors

Conversation

@dmitrii-galantsev

@dmitrii-galantsev dmitrii-galantsev commented Aug 27, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Add libamdcuid 2.1.0 in shared/cuid, with temporary UUIDv8 identifiers for
whole GPUs, compute partitions, CPUs, NICs, NPUs and the platform. Identifiers
use world-readable machine and component inputs and agree across callers.
Partition UnitIDs come from cuid_unit_id or KFD topology.

Integrate CUID discovery into amd-smi's C, Python and Rust APIs and into
list, static --cuid and node --cuid. Build the library in-tree when a
suitable installed version is unavailable. Include shared dependencies in
the package, sanitizer and downstream test workflows.

Validation

  • Library unit and functional suites as user and root.
  • Private-namespace lifecycle tests, including synthetic SPX/DPX/QPX/CPX topologies.
  • Synthetic conformance vectors checked against the reference generator.
  • amd-smi CUID gtests, Python CUID CLI tests and Python unit suite.
  • Root, CUID and amd-smi pre-commit hooks; Ubuntu22 clang-tidy and Ubuntu24 ASAN.

Followed by #12075 and #12420.

@github-actions github-actions Bot added documentation Improvements or additions to documentation project: amdsmi project: rocprofiler-sdk project: rocr-runtime github actions Pull requests that update GitHub Actions code project: cuid labels Aug 27, 2026
@dmitrii-galantsev
dmitrii-galantsev force-pushed the users/dgalants/cuid-aux-vectors branch from 5e0ad98 to 8a9b381 Compare August 27, 2026 04:59
@dmitrii-galantsev
dmitrii-galantsev force-pushed the users/dgalants/cuid-aux-vectors branch from 8a9b381 to a3ee77b Compare August 27, 2026 05:06
@dmitrii-galantsev
dmitrii-galantsev changed the base branch from users/dgalants/cuid-correctness to users/dgalants/sha256-shared August 27, 2026 05:06
@dmitrii-galantsev
dmitrii-galantsev requested review from gabrpham and a balanced review from Copilot August 27, 2026 05:11

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Establishes CUID as a tested cross-layer format and integrates CUID reporting and seed provisioning into AMD SMI.

Changes:

  • Corrects CUID encoding, derivation, endianness, and lookup behavior.
  • Adds generated conformance vectors, tests, documentation, and CI validation.
  • Adds CMake packaging plus AMD SMI C/Python/CLI integration.

Reviewed changes

Copilot reviewed 55 out of 55 changed files in this pull request and generated 8 comments.

Show a summary per file
File Description
.github/workflows/cuid-workflow.yml Checks vector drift in CI
projects/cuid/CMakeLists.txt Raises minimum CMake version
projects/cuid/README.md Documents corrected CUID format
projects/cuid/cmake/amdcuid-config.cmake.in Defines package configuration
projects/cuid/docs/conceptual/what_is_cuid.rst Expands format documentation
projects/cuid/lib/CMakeLists.txt Exports packaged CMake target
projects/cuid/lib/include/amd_cuid.h Updates enums and key API
projects/cuid/lib/src/cuid.cc Adds key information API
projects/cuid/lib/src/cuid_cpu.cc Uses structured CPU fallback
projects/cuid/lib/src/cuid_device.cc Adds driver-first derived lookup
projects/cuid/lib/src/cuid_device.h Declares staged lookup helpers
projects/cuid/lib/src/cuid_file.cc Rebuilds auxiliary fingerprints
projects/cuid/lib/src/cuid_gpu.cc Corrects GPU DSN and lookup
projects/cuid/lib/src/cuid_nic.cc Corrects NIC identity encoding
projects/cuid/lib/src/cuid_npu.cc Corrects NPU lookup and DSN
projects/cuid/lib/src/cuid_platform.cc Revises Platform CUID generation
projects/cuid/lib/src/cuid_platform.h Exposes system UUID helper
projects/cuid/lib/src/cuid_util.cc Implements framing and auxiliary format
projects/cuid/lib/src/cuid_util.h Defines driver and auxiliary APIs
projects/cuid/lib/src/hmac.cc Adds variable-length keys and fingerprints
projects/cuid/lib/src/hmac.h Defines canonical derivation keys
projects/cuid/lib/src/pci_util.cc Removes obsolete byte swapping
projects/cuid/lib/src/pci_util.h Adds little-endian DSN loader
projects/cuid/tests/CMakeLists.txt Registers vector and driver tests
projects/cuid/tests/functional/reverse_lookup_test.cc Updates reverse-format validation
projects/cuid/tests/main.cc Registers new test suites
projects/cuid/tests/unit/driver_cuid_test.cc Tests driver attribute handling
projects/cuid/tests/unit/driver_cuid_test.h Declares driver reader tests
projects/cuid/tests/unit/utilities_test.cc Tests corrected framing round-trip
projects/cuid/tests/unit/vectors_test.cc Validates conformance vectors
projects/cuid/tests/unit/vectors_test.h Declares conformance tests
projects/cuid/tests/vectors/cuid_vectors.py Generates normative vectors
projects/cuid/tests/vectors/cuid_vectors.txt Stores generated vectors
projects/amdsmi/include/amd_smi/amdsmi.h Adds public CUID APIs
projects/amdsmi/src/CMakeLists.txt Enables packaged CUID dependency
projects/amdsmi/src/amd_smi/amd_smi.cc Implements CUID and seed APIs
projects/amdsmi/py-interface/__init__.py Exports Python CUID functions
projects/amdsmi/py-interface/amdsmi_interface.py Adds high-level Python APIs
projects/amdsmi/py-interface/amdsmi_wrapper.py Adds ctypes CUID bindings
projects/amdsmi/amdsmi_cli/amdsmi_parser.py Adds CUID CLI options
projects/amdsmi/amdsmi_cli/subcommands/set_value.py Adds seed provisioning command
projects/amdsmi/amdsmi_cli/subcommands/static.py Reports static CUID information
projects/amdsmi/tests/amd_smi_test/unit/gpu/cuid_info_test.cc Tests AMD SMI CUID APIs

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread projects/amdsmi/src/amd_smi/amd_smi.cc Resolved
Comment thread projects/amdsmi/src/amd_smi/amd_smi.cc Resolved
Comment thread projects/amdsmi/src/amd_smi/amd_smi.cc Resolved
Comment thread projects/cuid/lib/src/cuid.cc Resolved
Comment thread projects/cuid/lib/src/cuid_util.cc Resolved
Comment thread shared/cuid/lib/src/cuid_platform.cc Resolved
@dmitrii-galantsev
dmitrii-galantsev force-pushed the users/dgalants/cuid-aux-vectors branch from a3ee77b to 90498da Compare August 27, 2026 05:17
@dmitrii-galantsev
dmitrii-galantsev force-pushed the users/dgalants/cuid-aux-vectors branch from 7d3f38a to 0e447d2 Compare August 27, 2026 18:59
@therock-pr-bot

therock-pr-bot Bot commented Aug 27, 2026 •

Copy link
Copy Markdown

✅ All Checks Passed — Ready for Review

Check Status Details
📝 PR Description ✅ Pass —
⛔ Forbidden Files ✅ Pass —
🧪 Unit Test ✅ Pass —
🔎 pre-commit ✅ Pass —
🚫 Draft PR 🔜 To Be Enabled —
🚩 Feature Flag 🔜 To Be Enabled —
📊 Code Coverage 🔜 To Be Enabled —
🤖 therock-pr-bot ✅ Pass —

🎉 All checks passed! This PR is ready for review.

📖 Need help? See the Policy FAQ for details on every check and how to fix failures.

🙋 Wish to Override Policy?

@therock-pr-bot

Copy link
Copy Markdown

🎉 All checks passed! This PR is ready for review.

@gabrpham
gabrpham force-pushed the users/dgalants/cuid-aux-vectors branch from 6492542 to 053a102 Compare August 28, 2026 13:33
@gabrpham
gabrpham force-pushed the users/dgalants/cuid-aux-vectors branch from 053a102 to a68fb27 Compare September 1, 2026 16:01
@dmitrii-galantsev
dmitrii-galantsev force-pushed the users/dgalants/cuid-aux-vectors branch from a68fb27 to 9b8ca2a Compare September 1, 2026 19:26
@gabrpham

Copy link
Copy Markdown
Contributor

I have not reviewed the code in depth but this looks good in principle. One request: move the cuid sources themselves to shared/cuid vs projects/cuid.

I've moved cuid to the shared directory as requested. @dysu-amd for awareness since you 're making changes in theRock contingent on this.

@dysu-amd

dysu-amd commented Sep 18, 2026 •

Copy link
Copy Markdown
Contributor

@gabrpham thanks for the ping, could you also update cuid's category in this file from projects to shared as part of the move?
https://github.com/ROCm/rocm-systems/blob/users/dgalants/cuid-aux-vectors/.github/repos-config.json#L34

cc @jayhawk-commits

dmitrii-galantsev and others added 3 commits October 15, 2026 18:33
Move the library to shared/cuid and provide UUIDv8 temporary IDs for
whole GPUs, partitions, CPUs, NICs, NPUs and the platform. Validate PCI
identity and partition routing, and supply synthetic conformance and
lifecycle fixtures. libamdcuid is 2.1.0.

Co-authored-by: gabrpham <Gabriel.Pham@amd.com>
Co-authored-by: yalmusaf_amdeng <yalmusaf@amd.com>
Signed-off-by: Galantsev, Dmitrii <dmitrii.galantsev@amd.com>
Build CUID in-tree when a suitable installed library is unavailable.
Expose component enumeration and GPU identity through C, Python, Rust
and the CLI. Include shared dependencies in package and sanitizer CI.

Co-authored-by: gabrpham <Gabriel.Pham@amd.com>
Co-authored-by: yalmusaf_amdeng <yalmusaf@amd.com>
Signed-off-by: Galantsev, Dmitrii <dmitrii.galantsev@amd.com>
Describe identifier construction, component lookup, installation and
the library and amd-smi test commands.

Signed-off-by: Galantsev, Dmitrii <dmitrii.galantsev@amd.com>
@arvindcheru

Copy link
Copy Markdown
Contributor

Override for Multi-Arch CI Summary only, head 4397152:
gfx94X tensilelite-common: rocm-libraries#13766. Another retry of this same commit will not pick up the fix in rocm-libraries#13792

@systems-assistant

Copy link
Copy Markdown
Contributor

TheRock Submodule Bump Activity

Newest first

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation github actions Pull requests that update GitHub Actions code organization: ROCm project: amdsmi project: cuid project: rocprofiler-sdk

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants