SWDEV-460098 - Fix error codes for hipLaunchKernel APIs to match cuda (#206)

Co-authored-by: Branislav Brzak <branislav.brzak@amd.com>
This commit is contained in:
Manocha, Rahul
2025-05-29 00:50:49 -07:00
committed by GitHub
parent 355d97fec4
commit ea8a7e1e54
5 changed files with 29 additions and 26 deletions
@@ -121,7 +121,8 @@ template <ExtModuleLaunchKernelSig* func> void ModuleLaunchKernelPositiveParamet
template <ExtModuleLaunchKernelSig* func> void ModuleLaunchKernelNegativeParameters(
bool extLaunch = false) {
hipFunction_t f = GetKernel(mg.module(), "NOPKernel");
hipError_t expectedErrorZeroBlockDim = hipErrorInvalidConfiguration;
hipError_t expectedErrorLaunchParam = (extLaunch == true) ? hipErrorInvalidConfiguration
: hipErrorInvalidValue;
hipError_t expectedErrorOverCapacityGridDim = (extLaunch == true) ? hipSuccess
: hipErrorInvalidValue;
@@ -133,32 +134,32 @@ template <ExtModuleLaunchKernelSig* func> void ModuleLaunchKernelNegativeParamet
SECTION("gridDimX == 0") {
HIP_CHECK_ERROR(func(f, 0, 1, 1, 1, 1, 1, 0, nullptr, nullptr, nullptr, nullptr, nullptr, 0u),
hipErrorInvalidConfiguration);
expectedErrorLaunchParam);
}
SECTION("gridDimY == 0") {
HIP_CHECK_ERROR(func(f, 1, 0, 1, 1, 1, 1, 0, nullptr, nullptr, nullptr, nullptr, nullptr, 0u),
hipErrorInvalidConfiguration);
expectedErrorLaunchParam);
}
SECTION("gridDimZ == 0") {
HIP_CHECK_ERROR(func(f, 1, 1, 0, 1, 1, 1, 0, nullptr, nullptr, nullptr, nullptr, nullptr, 0u),
hipErrorInvalidConfiguration);
expectedErrorLaunchParam);
}
SECTION("blockDimX == 0") {
HIP_CHECK_ERROR(func(f, 1, 1, 1, 0, 1, 1, 0, nullptr, nullptr, nullptr, nullptr, nullptr, 0u),
expectedErrorZeroBlockDim);
expectedErrorLaunchParam);
}
SECTION("blockDimY == 0") {
HIP_CHECK_ERROR(func(f, 1, 1, 1, 1, 0, 1, 0, nullptr, nullptr, nullptr, nullptr, nullptr, 0u),
expectedErrorZeroBlockDim);
expectedErrorLaunchParam);
}
SECTION("blockDimZ == 0") {
HIP_CHECK_ERROR(func(f, 1, 1, 1, 1, 1, 0, 0, nullptr, nullptr, nullptr, nullptr, nullptr, 0u),
expectedErrorZeroBlockDim);
expectedErrorLaunchParam);
}
SECTION("gridDimX > maxGridDimX") {
@@ -182,19 +183,19 @@ template <ExtModuleLaunchKernelSig* func> void ModuleLaunchKernelNegativeParamet
SECTION("blockDimX > maxBlockDimX") {
const unsigned int x = GetDeviceAttribute(hipDeviceAttributeMaxBlockDimX, 0) + 1u;
HIP_CHECK_ERROR(func(f, 1, 1, 1, x, 1, 1, 0, nullptr, nullptr, nullptr, nullptr, nullptr, 0u),
hipErrorInvalidConfiguration);
expectedErrorLaunchParam);
}
SECTION("blockDimY > maxBlockDimY") {
const unsigned int y = GetDeviceAttribute(hipDeviceAttributeMaxBlockDimY, 0) + 1u;
HIP_CHECK_ERROR(func(f, 1, 1, 1, 1, y, 1, 0, nullptr, nullptr, nullptr, nullptr, nullptr, 0u),
hipErrorInvalidConfiguration);
expectedErrorLaunchParam);
}
SECTION("blockDimZ > maxBlockDimZ") {
const unsigned int z = GetDeviceAttribute(hipDeviceAttributeMaxBlockDimZ, 0) + 1u;
HIP_CHECK_ERROR(func(f, 1, 1, 1, 1, 1, z, 0, nullptr, nullptr, nullptr, nullptr, nullptr, 0u),
hipErrorInvalidConfiguration);
expectedErrorLaunchParam);
}
SECTION("blockDimX * blockDimY * blockDimZ > MaxThreadsPerBlock") {
@@ -202,7 +203,7 @@ template <ExtModuleLaunchKernelSig* func> void ModuleLaunchKernelNegativeParamet
const unsigned int dim = std::ceil(std::cbrt(max)) + 1;
HIP_CHECK_ERROR(
func(f, 1, 1, 1, dim, dim, dim, 0, nullptr, nullptr, nullptr, nullptr, nullptr, 0u),
hipErrorInvalidConfiguration);
expectedErrorLaunchParam);
}
SECTION("sharedMemBytes > max shared memory per block") {
@@ -225,7 +226,7 @@ template <ExtModuleLaunchKernelSig* func> void ModuleLaunchKernelNegativeParamet
};
// clang-format on
HIP_CHECK_ERROR(func(f, 1, 1, 1, 1, 1, 1, 0, nullptr, kernel_args, extra, nullptr, nullptr, 0u),
hipErrorInvalidConfiguration);
hipErrorInvalidValue);
}
SECTION("Invalid extra") {