Files
TheRock/docs/rfcs/RFC0006-libhipcxx-ROCm-Core-Inclusion.md
derek.holloway 7502bf64a4
CodeQL / Analyze (actions) (push) Canceled after 0s
CodeQL / Analyze (python) (push) Canceled after 0s
pre-commit / pre-commit (push) Canceled after 0s
Multi-Arch CI / setup (push) Canceled after 0s
Publish build_manylinux_x86_64 images / publish_build_manylinux_x86_64 (push) Canceled after 0s
Setup (Multi-Arch) / setup (push) Canceled after 0s
Multi-Arch CI / Linux::${{ fromJSON(needs.setup.outputs.linux_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubi10 image / publish_no_rocm_image_ubi10 (push) Canceled after 0s
Multi-Arch CI / Windows::${{ fromJSON(needs.setup.outputs.windows_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Multi-Arch CI / Manifest Diff (push) Canceled after 0s
TheRock Manifest Diff Report / Generate Manifest Diff Report (push) Canceled after 0s
Multi-Arch CI / CI Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_ocl_rt images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_rocgdb images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Unit Tests / Unit Tests :: ubuntu-24.04 (push) Canceled after 0s
Unit Tests / Unit Tests :: windows-2022 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_media (push) Canceled after 0s
Unit Tests / Unit Tests Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_openmpi (push) Canceled after 0s
Flatten subprojects into a single base monorepo
2026-09-02 16:34:47 -07:00

2.9 KiB

author, created, modified, status
author created modified status
Marco Grond (marco-grond) 2025-10-16 2025-10-29 draft

Inclusion of libhipcxx in ROCm-Core

This RFC propses the inclusion of libhipcxx into the ROCm-Core/TheRock repository and to include it as a part of future ROCm-Core releases.

History and Current Status

libhipcxx is based on the libcudacxx library, which is the CUDA C++ Standard Library, providing an implementation of the C++ Standard Library that works in both host and device code. This library additionally provides abstractions for CUDA-specific hardware features like synchronization primitives, cache control, atomicss, and more.

libhipcxx was originally created as a dependency for ROCm-DS, AMD's counterpart to the NVIDIA RAPIDS data science toolkit. The library is maintained by the AIOSS team under Vish Vadlamani.

Dependencies

In addition to the core ROCm-DS libraries, libhipcxx has also become a dependency for rocThrust and hipCUB. These two libraries are based on NVIDIA's Thrust and CUB respectively, which together with libcudacxx form the CUDA Core Compute Libraries (CCCL). NVIDIA has moved the backend code from CUB and Thrust into libcudacxx, which has made it a core dependency for these libraries. Furthermore, libcudacxx has become a dependency for PyTorch through CUB and Thrust. Similarly, future updates of rocThrust and hipCUB will be dependent on libhipcxx, and by extension so will PyTorch.

Proposal

Currently, the development branch of libhipcxx is hosted on the AMD-AIOSS GitHub organization, while the public repo falls within ROCm. Furthermore, libhipcxx is currently included as a part of the ROCm-DS toolkit release and has not been released as a part of ROCm. It has had an independent development, QA, and release process from other libraries that were included in ROCm. This proposal is to have libhipcxx be included into ROCm-Core, starting with ROCm 7.10, and to have libhipcxx be included in the release and validation pipelines setup for ROCm-Core.

Development of the library will remain with the current team, however this move will enable rocThrust and hipCUB to keep pace with the development of their NVIDIA counterparts, while also grouping together low level libraries as well as libraries that are dependencies for PyTorch. Since one of the focuses of TheRock is to enable PyTorch and include all of its dependencies, the inclusion of libhipcxx is of the utmost importance.

Testing pipelines should be updated to include libhipcxx validation and to ensure that the library integrates with other libraries included in TheRock. Release pipelines should also be updated to include libhipcxx in all future ROCm-Core releases.

Revision History

  • 2025-10-16: marco-grond: Create skeleton
  • 2025-10-20: marco-grond: Filled out content
  • 2025-10-29: marco-grond: Updated RFC number