Repository navigation
Conversation
✅ All Policy Checks Passed
📖 Need help? See the Policy FAQ for details on every check and how to fix failures. |
|
🚫 Please fix the failed policies before requesting reviews. The following policy checks failed:
The |
d4c5d10 to
d2427d2
Compare
|
Conflicts will be resolved once #13004 is merged |
There was a problem hiding this comment.
🟡 Changes recommended
Cross-device handling, NVIDIA support, and rocprofiler step-36 integration contain blocking omissions.
5 open findings
Add NVIDIA implementation for hipKernelSetCacheConfig · New Return hipErrorInvalidDeviceFunction for missing kernels · New Add rocprofiler support for HIP dispatch table step 36 · New Use the actual API name in the contract annotation · New Update scope or split the additional cross-device API work · New
What changed in this PR
Implements kernel-level cache configuration, alongside device-specific kernel attributes, cluster-launch handling, tracing, ABI updates, and tests.
Changes:
- Adds
hipKernelSetCacheConfigandhipKernelSetAttributeForDevice. - Extends cross-device kernel loading and cluster attribute enforcement.
- Adds AMD/NVIDIA mappings, profiling integration, and test coverage.
| File | Description |
|---|---|
projects/rocprofiler-sdk/source/lib/rocprofiler-sdk/hip/hip.def.cpp |
Registers the attribute API. |
projects/rocprofiler-sdk/source/lib/rocprofiler-sdk/hip/abi.cpp |
Extends profiler ABI checks. |
projects/rocprofiler-sdk/source/include/rocprofiler-sdk/hip/runtime_api_id.h |
Adds a runtime API ID. |
projects/rocprofiler-sdk/source/include/rocprofiler-sdk/hip/api_args.h |
Adds traced arguments. |
projects/rocprofiler-sdk/source/include/rocprofiler-sdk/cxx/enum_string.hpp |
Adds enum labeling. |
projects/hipother/hipnv/include/hip/nvidia_detail/nvidia_hip_runtime_api.h |
Adds NVIDIA attribute mappings. |
projects/hip/include/hip/hip_runtime_api.h |
Declares the new public APIs. |
projects/hip-tests/CONTRACT_COVERAGE.md |
Updates coverage totals. |
projects/hip-tests/catch/unit/library/lib_attribute.cc |
Tests function override priority. |
projects/hip-tests/catch/unit/library/hipKernelSetCacheConfig.cc |
Adds cache configuration tests. |
projects/hip-tests/catch/unit/library/hipKernelSetAttributeForDevice.cc |
Adds attribute and cluster tests. |
projects/hip-tests/catch/unit/library/CMakeLists.txt |
Builds the new tests. |
projects/hip-tests/catch/TEST_PLAN.md |
Updates generated test inventory. |
projects/hip-tests/catch/contract/kernel_object_attributes/test_hip_kernel_object_attributes_contract.cc |
Adds contract tests. |
projects/hip-tests/catch/config/configs/unit/library.yaml |
Registers unit tests. |
projects/hip-tests/catch/config/configs/contract.yaml |
Registers contract tests. |
projects/clr/rocclr/platform/ndrange.hpp |
Tracks explicit cluster dimensions. |
projects/clr/rocclr/device/rocm/rocvirtual.cpp |
Applies cache carveout precedence. |
projects/clr/rocclr/device/rocm/rockernel.cpp |
Initializes kernel attribute limits. |
projects/clr/rocclr/device/pal/palkernel.cpp |
Initializes PAL kernel limits. |
projects/clr/rocclr/device/devkernel.hpp |
Stores new kernel attributes. |
projects/clr/rocclr/device/devkernel.cpp |
Initializes attribute state. |
projects/clr/hipamd/src/hip_table_interface.cpp |
Exposes dispatch wrappers. |
projects/clr/hipamd/src/hip_platform.cpp |
Propagates explicit cluster state. |
projects/clr/hipamd/src/hip_module.cpp |
Implements attributes and cluster validation. |
projects/clr/hipamd/src/hip_library.hpp |
Adds per-device kernel resolution. |
projects/clr/hipamd/src/hip_library.cpp |
Implements both kernel setter APIs. |
projects/clr/hipamd/src/hip_hcc.map.in |
Exports new symbols. |
projects/clr/hipamd/src/hip_graph.cpp |
Resolves graph cluster dimensions. |
projects/clr/hipamd/src/hip_graph_internal.hpp |
Validates graph cluster attributes. |
projects/clr/hipamd/src/hip_graph_helper.hpp |
Declares cluster resolution helper. |
projects/clr/hipamd/src/hip_global.hpp |
Makes dynamic lookup device-aware. |
projects/clr/hipamd/src/hip_global.cpp |
Resolves functions by device. |
projects/clr/hipamd/src/hip_fatbin.hpp |
Supports retained image storage. |
projects/clr/hipamd/src/hip_fatbin.cpp |
Copies images for secondary devices. |
projects/clr/hipamd/src/hip_code_object.hpp |
Extends device-specific loading. |
projects/clr/hipamd/src/hip_code_object.cpp |
Loads code objects for target devices. |
projects/clr/hipamd/src/hip_api_trace.cpp |
Updates dispatch and ABI tracing. |
projects/clr/hipamd/src/amdhip.def.in |
Exports Windows symbols. |
projects/clr/hipamd/include/hip/amd_detail/hip_prof_str.h |
Adds profiling metadata. |
projects/clr/hipamd/include/hip/amd_detail/hip_api_trace.hpp |
Advances the runtime dispatch table. |
🧠 Review effort: Balanced
Give feedback about Copilot approvals in this survey to enter a drawing for a $150 gift card.
|
🤖 AI-assisted pre-review (for @mangupta) Re-reviewed the updated head ( |
|
🤖 AI-assisted pre-review (for @mangupta) Re-reviewed the updated head ( |
3d65189 to
a6610bb
Compare
|
🤖 AI-assisted pre-review (for @mangupta) Re-reviewed the updated head ( |
…Contract_KernelObjectAttributes_HipKernelSetCacheConfig_Values_AreSupported
…NFORCE_ABI_VERSIONING()
…asserts comment and ROCP_SDK_ENFORCE_ABI() macro invocation
…of hipKernelSetCacheConfig()
…CacheConfig() was misspelled
…hat is the the driver-level type
…TABLE_STEP_VERSION enumerations is required'
…ult to hipError_t via hipCUResultTohipError() not hipCUDAErrorTohipError()
…profiler-sdk/hip/api_args.h
…filer-sdk/hip/api_args.h
…butes_HipKernelSetCacheConfig_Values_AreSupported cannot be the named the same as the AMD veresion
…eConfig_NvidiaPre120Unsupported_IsSkipped to contract.yaml
611a840 to
38379c1
Compare
TheRock Submodule Bump ActivityNewest first
|
* fix(hrr): regenerate sources for hipKernelSetCacheConfig #12628 appended hipKernelSetCacheConfig to HipDispatchTable without regenerating the HRR sources, so the checked-in capture and playback dispatch, hrr_api_args.h and the API matrix expectations no longer match the headers and ctest hrr-generator-rules fails on develop. Capture records it through a generated shim. Playback is a no-op: its hipKernel_t argument cannot be translated back into a live kernel, the same reason hipKernelSetAttributeForDevice is a no-op. The SDK headers the matrix workloads build against do not declare it, so the matrix lists it as unreachable with the other APIs absent from them. The new runtime slot takes the first compiler API ID and shifts the compiler IDs up by one, so HRR_VERSION goes from 10 to 11. The enable-recording inspector gets the v11 ID of __hipRegisterFatBinary.



Motivation
Implement hipKernelSetCacheConfig()
Technical Details
Note that hipFuncSetCacheConfig() has priority over this function
Issue Tracking
JIRA ID : AIRUNTIME-2610
Test Plan
Added tests:
Test Result
To be tested on MI450+
Submission Checklist