Files
compute-runtime/opencl/source/helpers/cl_preemption_helper.cpp
Mateusz Jablonski c9664e6bad refactor: rename global debug manager to debugManager
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2023-11-30 13:00:59 +01:00

36 lines
1.1 KiB
C++

/*
* Copyright (C) 2021-2023 Intel Corporation
*
* SPDX-License-Identifier: MIT
*
*/
#include "opencl/source/helpers/cl_preemption_helper.h"
#include "opencl/source/helpers/dispatch_info.h"
namespace NEO {
PreemptionMode ClPreemptionHelper::taskPreemptionMode(Device &device, const MultiDispatchInfo &multiDispatchInfo) {
PreemptionMode devMode = device.getPreemptionMode();
for (const auto &di : multiDispatchInfo) {
auto kernel = di.getKernel();
const KernelDescriptor *kernelDescriptor = nullptr;
if (kernel != nullptr) {
kernelDescriptor = &kernel->getDescriptor();
}
PreemptionFlags flags = PreemptionHelper::createPreemptionLevelFlags(device, kernelDescriptor);
PreemptionMode taskMode = PreemptionHelper::taskPreemptionMode(devMode, flags);
if (devMode > taskMode) {
devMode = taskMode;
}
PRINT_DEBUG_STRING(debugManager.flags.PrintDebugMessages.get(), stdout, "devMode = %d, taskMode = %d.\n",
static_cast<int>(device.getPreemptionMode()), static_cast<int>(taskMode));
}
return devMode;
}
} // namespace NEO