diff --git a/hipamd/src/hip_platform.cpp b/hipamd/src/hip_platform.cpp index 535d6e96f6..11b00ed735 100644 --- a/hipamd/src/hip_platform.cpp +++ b/hipamd/src/hip_platform.cpp @@ -619,6 +619,13 @@ hipError_t ihipLaunchKernel(const void* hostFunction, dim3 gridDim, dim3 blockDi return hipErrorInvalidDeviceFunction; } } + + constexpr auto gridDimYZmax = static_cast(std::numeric_limits::max()) + 1; + const auto& isa = g_devices[deviceId]->devices()[0]->isa().versionMajor(); + if (isa >= 12 && (gridDim.y > gridDimYZmax || gridDim.z > gridDimYZmax)) { + return hipErrorInvalidConfiguration; + } + size_t globalWorkSizeX = static_cast(gridDim.x) * blockDim.x; size_t globalWorkSizeY = static_cast(gridDim.y) * blockDim.y; size_t globalWorkSizeZ = static_cast(gridDim.z) * blockDim.z;