mirror of
https://github.com/intel/compute-runtime.git
synced 2026-01-05 09:09:04 +08:00
Add checks for correct engine for concurrent kernels.
Related-To: NEO-5135 Change-Id: Ib1c37ec8d5e468de331521ae4be1cd92902a2330 Signed-off-by: Sebastian Luzynski <sebastian.jozef.luzynski@intel.com>
This commit is contained in:
committed by
sys_ocldev
parent
f9a97cbb22
commit
225e7f01b4
@@ -5541,7 +5541,9 @@ cl_int CL_API_CALL clGetKernelMaxConcurrentWorkGroupCountINTEL(cl_command_queue
|
||||
return retVal;
|
||||
}
|
||||
|
||||
*suggestedWorkGroupCount = pKernel->getMaxWorkGroupCount(workDim, localWorkSize);
|
||||
CommandQueue *pCommandQueue = nullptr;
|
||||
WithCastToInternal(commandQueue, &pCommandQueue);
|
||||
*suggestedWorkGroupCount = pKernel->getMaxWorkGroupCount(workDim, localWorkSize, pCommandQueue);
|
||||
|
||||
return retVal;
|
||||
}
|
||||
@@ -5579,6 +5581,13 @@ cl_int CL_API_CALL clEnqueueNDCountKernelINTEL(cl_command_queue commandQueue,
|
||||
return retVal;
|
||||
}
|
||||
|
||||
auto &hardwareInfo = pKernel->getDevice().getHardwareInfo();
|
||||
auto &hwHelper = HwHelper::get(hardwareInfo.platform.eRenderCoreFamily);
|
||||
if (!hwHelper.isCooperativeDispatchSupported(pCommandQueue->getGpgpuEngine().getEngineType(), hardwareInfo.platform.eProductFamily)) {
|
||||
retVal = CL_INVALID_COMMAND_QUEUE;
|
||||
return retVal;
|
||||
}
|
||||
|
||||
size_t globalWorkSize[3];
|
||||
for (size_t i = 0; i < workDim; i++) {
|
||||
globalWorkSize[i] = workgroupCount[i] * localWorkSize[i];
|
||||
@@ -5589,7 +5598,7 @@ cl_int CL_API_CALL clEnqueueNDCountKernelINTEL(cl_command_queue commandQueue,
|
||||
for (size_t i = 0; i < workDim; i++) {
|
||||
requestedNumberOfWorkgroups *= workgroupCount[i];
|
||||
}
|
||||
size_t maximalNumberOfWorkgroupsAllowed = pKernel->getMaxWorkGroupCount(workDim, localWorkSize);
|
||||
size_t maximalNumberOfWorkgroupsAllowed = pKernel->getMaxWorkGroupCount(workDim, localWorkSize, pCommandQueue);
|
||||
if (requestedNumberOfWorkgroups > maximalNumberOfWorkgroupsAllowed) {
|
||||
retVal = CL_INVALID_VALUE;
|
||||
return retVal;
|
||||
|
||||
Reference in New Issue
Block a user