Disable EU fusion based on kernel properties from compiler

Related-To: NEO-6633

Signed-off-by: Konstanty Misiak <konstanty.misiak@intel.com>
This commit is contained in:
Konstanty Misiak
2022-02-10 23:33:40 +00:00
committed by Compute-Runtime-Automation
parent 13bc2300e1
commit cf1bc3a2ba
37 changed files with 228 additions and 95 deletions

View File

@@ -107,9 +107,9 @@ WorkSizeInfo createWorkSizeInfoFromDispatchInfo(const DispatchInfo &dispatchInfo
numThreadsPerSubSlice,
static_cast<uint32_t>(device.getSharedDeviceInfo().localMemSize),
false,
false);
false,
kernelInfo.kernelDescriptor.kernelAttributes.flags.requiresDisabledEUFusion);
wsInfo.setIfUseImg(kernelInfo);
wsInfo.setMinWorkGroupSize(&device.getHardwareInfo());
return wsInfo;
}

View File

@@ -772,6 +772,8 @@ CompletionStamp CommandQueueHw<GfxFamily>::enqueueNonBlocked(
dispatchFlags.pipelineSelectArgs.mediaSamplerRequired = mediaSamplerRequired;
dispatchFlags.pipelineSelectArgs.specialPipelineSelectMode = specialPipelineSelectMode;
dispatchFlags.disableEUFusion = kernel->getKernelInfo().kernelDescriptor.kernelAttributes.flags.requiresDisabledEUFusion;
const bool isHandlingBarrier = getGpgpuCommandStreamReceiver().isStallingCommandsOnNextFlushRequired();
if (getGpgpuCommandStreamReceiver().peekTimestampPacketWriteEnabled() && !clearDependenciesForSubCapture) {

View File

@@ -564,7 +564,7 @@ cl_int Kernel::getWorkGroupInfo(cl_kernel_work_group_info paramName,
case CL_KERNEL_PREFERRED_WORK_GROUP_SIZE_MULTIPLE:
preferredWorkGroupSizeMultiple = kernelInfo.getMaxSimdSize();
if (hwHelper.isFusedEuDispatchEnabled(hwInfo)) {
if (hwHelper.isFusedEuDispatchEnabled(hwInfo) && !kernelDescriptor.kernelAttributes.flags.requiresDisabledEUFusion) {
preferredWorkGroupSizeMultiple *= 2;
}
srcSize = sizeof(preferredWorkGroupSizeMultiple);