Skip to content

[host-numerics] 1/N: basic scaffolding of new shared component - #12208

Draft
newling wants to merge 3 commits into
ROCm:developfrom
newling:feature/host-numerics-bootstrap
Draft

newling wants to merge 3 commits into
ROCm:developfrom
newling:feature/host-numerics-bootstrap

Conversation

@newling

@newling newling commented Sep 16, 2026

Copy link
Copy Markdown
Contributor

This is PR 1/N in a sequence introducing a shared host-numerics component.

The complete working prototype is available in draft PR #10553. That PR currently contains the end-to-end result and will remain open as a reference and integration test while its implementation is moved into develop through small, independently reviewable changes.

The planned work has four broad phases:

  1. Establish the component's build, packaging, Python, testing, and CI foundations, beginning with this PR.
  2. Introduce the core tensor and scalar model, together with independent C++ and Python tests.
  3. Add the remaining numerical operations, generation facilities, comparison support, and complete standalone testing.
  4. Integrate host-numerics into its consumers incrementally, including hipBLASLt, TensileLite, and rocRoller, while removing the implementations it replaces.

The first three phases deliberately do not change any consumer. This keeps development isolated from hipBLASLt, TensileLite, and rocRoller behavior and allows each change to use a small, CPU-only GitHub Actions job. The target is for the component build and tests themselves to complete in under two minutes, excluding runner queue and provisioning time.

The endpoint demonstrated by #10553 is a large refactor of host-side data generation and numerical validation (+51,927 / -63,657 at the start of this series). It creates a standalone CPU-only shared component used by hipBLASLt, TensileLite, and rocRoller. It absorbs the reusable responsibilities currently provided by mxDataGenerator, allowing that package to be removed after its consumers migrate.

This first PR intentionally contains almost no numerical functionality. It establishes the roc::host-numerics-core and roc::host-numerics CMake targets, an installable ROCHostNumerics CMake package, an importable roc_host_numerics Python module, C++/Python/package smoke tests, a dedicated CPU-only GitHub Actions workflow, and initial ownership.

Nothing in this PR is connected to an existing product or added to the default monorepo build.

Testing

Built and tested the standalone component with Clang and GCC. Verified the C++ target, Python import, installation, and an external find_package(ROCHostNumerics) consumer. Repository pre-commit checks pass.

@therock-pr-bot

therock-pr-bot Bot commented Sep 16, 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.

@newling newling changed the title build: bootstrap standalone host-numerics component [host-numerics] 1/N: basic scaffolding of new shared component Sep 16, 2026
@newling
newling force-pushed the feature/host-numerics-bootstrap branch from 6383eca to f5cd65d Compare September 16, 2026 21:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant