Add HasExpertSchedMode device prop (#2241)

* Add HasExpertSchedMode device prop

* Add unit tests for HasExpertSchedMode

* Add gfx12 check for HasExpertSchedMode prop

* Update gfx major version check and test for ExpertSchedMode

* Minor fix and ROCr version bump

* Update projects/rocr-runtime/runtime/hsa-runtime/inc/hsa_ext_amd.h

* Update projects/rocr-runtime/runtime/hsa-runtime/inc/hsa_ext_amd.h

* Apply suggestion from @dayatsin-amd

* Apply suggestion from @dayatsin-amd

---------

Co-authored-by: Stefan Sokolovic <stefan.sokolovic2@amd.com>
Co-authored-by: David Yat Sin <77975354+dayatsin-amd@users.noreply.github.com>
This commit is contained in:
Filip Jankovic
2025-12-17 17:06:08 +01:00
committed by GitHub
parent 79ad00fb15
commit c0b4aef5ad
11 changed files with 109 additions and 18 deletions
@@ -339,6 +339,7 @@ TEST_CASE("Print_Out_Properties") {
<< properties.cooperativeMultiDeviceUnmatchedBlockDim << "\n";
std::cout << std::setw(w) << "cooperativeMultiDeviceUnmatchedSharedMem: "
<< properties.cooperativeMultiDeviceUnmatchedSharedMem << "\n";
std::cout << std::setw(w) << "hasExpertSchedMode: " << properties.hasExpertSchedMode << "\n";
#endif
std::flush(std::cout);
}
@@ -421,6 +422,32 @@ TEST_CASE("Print_Out_Properties_6.0") {
std::flush(std::cout);
}
#if HT_AMD
/**
* Test Description
* ------------------------
* - Verify hasExpertSchedMode property is valid (0 or 1).
* Test source
* ------------------------
* - unit/device/hipGetDeviceProperties.cc
* Test requirements
* ------------------------
* - Platform specific (AMD)
* - HIP_VERSION >= 6.4
*/
TEST_CASE("Unit_hipGetDeviceProperties_hasExpertSchedMode") {
const auto device = GENERATE(range(0, HipTest::getDeviceCount()));
hipDeviceProp_t properties;
HIP_CHECK(hipGetDeviceProperties(&properties, device));
// hasExpertSchedMode should be either 0 or 1
REQUIRE((properties.hasExpertSchedMode == 0 || properties.hasExpertSchedMode == 1));
INFO("Device " << device << " hasExpertSchedMode: " << properties.hasExpertSchedMode);
}
#endif
/**
* End doxygen group DeviceTest.
* @}