SWDEV-369567 - dimension check update

Change-Id: I31deb5070d4852db7dd6d37f9a514965f387698e
Tento commit je obsažen v:
pghafari
2023-04-24 21:38:53 -04:00
odevzdal Payam Ghafari
rodič 54f73e430b
revize 31b362bf6e
2 změnil soubory, kde provedl 10 přidání a 7 odebrání
+7 -5
Zobrazit soubor
@@ -229,7 +229,7 @@ hipError_t ihipLaunchKernel_validate(hipFunction_t f, uint32_t globalWorkSizeX,
return hipErrorInvalidValue;
}
// Make sure dispatch doesn't exceed max workgroup size limit
if (blockDimX * blockDimY * blockDimZ > device->info().maxWorkGroupSize_) {
if (blockDimX * blockDimY * blockDimZ > info.maxWorkGroupSize_) {
return hipErrorInvalidValue;
}
hip::DeviceFunc* function = hip::DeviceFunc::asFunction(f);
@@ -439,13 +439,15 @@ hipError_t hipModuleLaunchKernel(hipFunction_t f, uint32_t gridDimX, uint32_t gr
STREAM_CAPTURE(hipModuleLaunchKernel, hStream, f, gridDimX, gridDimY, gridDimZ, blockDimX,
blockDimY, blockDimZ, sharedMemBytes, kernelParams, extra);
if (gridDimX > std::numeric_limits<int32_t>::max() ||
gridDimY > std::numeric_limits<uint16_t>::max() ||
gridDimZ > std::numeric_limits<uint16_t>::max()) {
HIP_RETURN(hipErrorInvalidValue);
}
size_t globalWorkSizeX = static_cast<size_t>(gridDimX) * blockDimX;
size_t globalWorkSizeY = static_cast<size_t>(gridDimY) * blockDimY;
size_t globalWorkSizeZ = static_cast<size_t>(gridDimZ) * blockDimZ;
if (globalWorkSizeX > std::numeric_limits<uint32_t>::max() ||
globalWorkSizeY > std::numeric_limits<uint32_t>::max() ||
globalWorkSizeZ > std::numeric_limits<uint32_t>::max()) {
if (globalWorkSizeX > std::numeric_limits<uint32_t>::max()) {
HIP_RETURN(hipErrorInvalidConfiguration);
}
HIP_RETURN(ihipModuleLaunchKernel(