SWDEV-243961 Added overflow check for globalWorkSize
Change-Id: I153d99398eb4619baad8c0a52466e0d5d5f898ca
This commit is contained in:
committato da
agodavar
parent
ee149e4610
commit
9ea54f7797
+12
-2
@@ -629,8 +629,18 @@ hipError_t ihipLaunchKernel(const void* hostFunction,
|
||||
if ((hip_error != hipSuccess) || (func == nullptr)) {
|
||||
HIP_RETURN(hipErrorInvalidDeviceFunction);
|
||||
}
|
||||
HIP_RETURN(ihipModuleLaunchKernel(func, (gridDim.x * blockDim.x), (gridDim.y * blockDim.y),
|
||||
(gridDim.z * blockDim.z), blockDim.x, blockDim.y, blockDim.z,
|
||||
size_t globalWorkSizeX = gridDim.x * blockDim.x;
|
||||
size_t globalWorkSizeY = gridDim.y * blockDim.y;
|
||||
size_t globalWorkSizeZ = gridDim.z * blockDim.z;
|
||||
if (globalWorkSizeX > std::numeric_limits<uint32_t>::max() ||
|
||||
globalWorkSizeY > std::numeric_limits<uint32_t>::max() ||
|
||||
globalWorkSizeZ > std::numeric_limits<uint32_t>::max()) {
|
||||
HIP_RETURN(hipErrorInvalidConfiguration);
|
||||
}
|
||||
HIP_RETURN(ihipModuleLaunchKernel(func, static_cast<uint32_t>(globalWorkSizeX),
|
||||
static_cast<uint32_t>(globalWorkSizeY),
|
||||
static_cast<uint32_t>(globalWorkSizeZ),
|
||||
blockDim.x, blockDim.y, blockDim.z,
|
||||
sharedMemBytes, stream, args, nullptr, startEvent, stopEvent,
|
||||
flags));
|
||||
}
|
||||
|
||||
Fai riferimento in un nuovo problema
Block a user