mirror of
https://github.com/intel/compute-runtime.git
synced 2025-09-10 12:53:42 +08:00
Move ClCoreHelper ownership to RootDeviceEnvironment 3/n
Related-To: NEO-6853 Signed-off-by: Kamil Kopryk <kamil.kopryk@intel.com> Use RootDeviceEnvironment getHelper<ClCoreHelper> for - getQueueFamilyName - getKernelPrivateMemSize - preferBlitterForLocalToLocalTransfers
This commit is contained in:

committed by
Compute-Runtime-Automation

parent
5f8cc9b99b
commit
9564af14f5
@ -238,8 +238,8 @@ cl_command_queue_capabilities_intel ClDevice::getQueueFamilyCapabilities(EngineG
|
|||||||
void ClDevice::getQueueFamilyName(char *outputName, EngineGroupType type) {
|
void ClDevice::getQueueFamilyName(char *outputName, EngineGroupType type) {
|
||||||
std::string name{};
|
std::string name{};
|
||||||
|
|
||||||
const auto &clHwHelper = ClHwHelper::get(getHardwareInfo().platform.eRenderCoreFamily);
|
const auto &clCoreHelper = this->getRootDeviceEnvironment().getHelper<ClCoreHelper>();
|
||||||
const bool hasHwSpecificName = clHwHelper.getQueueFamilyName(name, type);
|
const bool hasHwSpecificName = clCoreHelper.getQueueFamilyName(name, type);
|
||||||
|
|
||||||
if (!hasHwSpecificName) {
|
if (!hasHwSpecificName) {
|
||||||
switch (type) {
|
switch (type) {
|
||||||
|
@ -246,8 +246,8 @@ CommandStreamReceiver &CommandQueue::selectCsrForBuiltinOperation(const CsrSelec
|
|||||||
aub_stream::EngineType preferredBcsEngineType = aub_stream::EngineType::NUM_ENGINES;
|
aub_stream::EngineType preferredBcsEngineType = aub_stream::EngineType::NUM_ENGINES;
|
||||||
switch (args.direction) {
|
switch (args.direction) {
|
||||||
case TransferDirection::LocalToLocal: {
|
case TransferDirection::LocalToLocal: {
|
||||||
const auto &clHwHelper = ClHwHelper::get(device->getHardwareInfo().platform.eRenderCoreFamily);
|
const auto &clCoreHelper = device->getRootDeviceEnvironment().getHelper<ClCoreHelper>();
|
||||||
preferBcs = clHwHelper.preferBlitterForLocalToLocalTransfers();
|
preferBcs = clCoreHelper.preferBlitterForLocalToLocalTransfers();
|
||||||
if (auto flag = DebugManager.flags.PreferCopyEngineForCopyBufferToBuffer.get(); flag != -1) {
|
if (auto flag = DebugManager.flags.PreferCopyEngineForCopyBufferToBuffer.get(); flag != -1) {
|
||||||
preferBcs = static_cast<bool>(flag);
|
preferBcs = static_cast<bool>(flag);
|
||||||
}
|
}
|
||||||
|
@ -8,13 +8,22 @@
|
|||||||
#include "opencl/extensions/public/cl_ext_private.h"
|
#include "opencl/extensions/public/cl_ext_private.h"
|
||||||
|
|
||||||
template <>
|
template <>
|
||||||
inline bool ClHwHelperHw<Family>::preferBlitterForLocalToLocalTransfers() const {
|
std::vector<uint32_t> ClHwHelperHw<Family>::getSupportedThreadArbitrationPolicies() const {
|
||||||
return false;
|
return std::vector<uint32_t>{CL_KERNEL_EXEC_INFO_THREAD_ARBITRATION_POLICY_OLDEST_FIRST_INTEL, CL_KERNEL_EXEC_INFO_THREAD_ARBITRATION_POLICY_ROUND_ROBIN_INTEL, CL_KERNEL_EXEC_INFO_THREAD_ARBITRATION_POLICY_AFTER_DEPENDENCY_ROUND_ROBIN_INTEL, CL_KERNEL_EXEC_INFO_THREAD_ARBITRATION_POLICY_STALL_BASED_ROUND_ROBIN_INTEL};
|
||||||
}
|
}
|
||||||
|
|
||||||
template <>
|
template <>
|
||||||
std::vector<uint32_t> ClHwHelperHw<Family>::getSupportedThreadArbitrationPolicies() const {
|
inline bool ClHwHelperHw<Family>::getQueueFamilyName(std::string &name, EngineGroupType type) const {
|
||||||
return std::vector<uint32_t>{CL_KERNEL_EXEC_INFO_THREAD_ARBITRATION_POLICY_OLDEST_FIRST_INTEL, CL_KERNEL_EXEC_INFO_THREAD_ARBITRATION_POLICY_ROUND_ROBIN_INTEL, CL_KERNEL_EXEC_INFO_THREAD_ARBITRATION_POLICY_AFTER_DEPENDENCY_ROUND_ROBIN_INTEL, CL_KERNEL_EXEC_INFO_THREAD_ARBITRATION_POLICY_STALL_BASED_ROUND_ROBIN_INTEL};
|
switch (type) {
|
||||||
|
case EngineGroupType::RenderCompute:
|
||||||
|
name = "cccs";
|
||||||
|
return true;
|
||||||
|
case EngineGroupType::LinkedCopy:
|
||||||
|
name = "linked bcs";
|
||||||
|
return true;
|
||||||
|
default:
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
template <>
|
template <>
|
||||||
|
@ -551,7 +551,7 @@ cl_int Kernel::getWorkGroupInfo(cl_kernel_work_group_info paramName,
|
|||||||
size_t maxWorkgroupSize;
|
size_t maxWorkgroupSize;
|
||||||
const auto &hwInfo = clDevice.getHardwareInfo();
|
const auto &hwInfo = clDevice.getHardwareInfo();
|
||||||
auto &hwHelper = HwHelper::get(hwInfo.platform.eRenderCoreFamily);
|
auto &hwHelper = HwHelper::get(hwInfo.platform.eRenderCoreFamily);
|
||||||
auto &clHwHelper = ClHwHelper::get(hwInfo.platform.eRenderCoreFamily);
|
auto &clCoreHelper = clDevice.getRootDeviceEnvironment().getHelper<ClCoreHelper>();
|
||||||
GetInfoHelper info(paramValue, paramValueSize, paramValueSizeRet);
|
GetInfoHelper info(paramValue, paramValueSize, paramValueSizeRet);
|
||||||
|
|
||||||
switch (paramName) {
|
switch (paramName) {
|
||||||
@ -594,7 +594,7 @@ cl_int Kernel::getWorkGroupInfo(cl_kernel_work_group_info paramName,
|
|||||||
pSrc = &scratchSize;
|
pSrc = &scratchSize;
|
||||||
break;
|
break;
|
||||||
case CL_KERNEL_PRIVATE_MEM_SIZE:
|
case CL_KERNEL_PRIVATE_MEM_SIZE:
|
||||||
privateMemSize = clHwHelper.getKernelPrivateMemSize(kernelInfo);
|
privateMemSize = clCoreHelper.getKernelPrivateMemSize(kernelInfo);
|
||||||
srcSize = sizeof(privateMemSize);
|
srcSize = sizeof(privateMemSize);
|
||||||
pSrc = &privateMemSize;
|
pSrc = &privateMemSize;
|
||||||
break;
|
break;
|
||||||
|
@ -29,20 +29,6 @@ bool ClHwHelperHw<Family>::requiresAuxResolves(const KernelInfo &kernelInfo, con
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
template <>
|
|
||||||
inline bool ClHwHelperHw<Family>::getQueueFamilyName(std::string &name, EngineGroupType type) const {
|
|
||||||
switch (type) {
|
|
||||||
case EngineGroupType::RenderCompute:
|
|
||||||
name = "cccs";
|
|
||||||
return true;
|
|
||||||
case EngineGroupType::LinkedCopy:
|
|
||||||
name = "linked bcs";
|
|
||||||
return true;
|
|
||||||
default:
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
template <>
|
template <>
|
||||||
cl_version ClHwHelperHw<Family>::getDeviceIpVersion(const HardwareInfo &hwInfo) const {
|
cl_version ClHwHelperHw<Family>::getDeviceIpVersion(const HardwareInfo &hwInfo) const {
|
||||||
return makeDeviceIpVersion(12, 8, makeDeviceRevision(hwInfo));
|
return makeDeviceIpVersion(12, 8, makeDeviceRevision(hwInfo));
|
||||||
|
@ -1817,7 +1817,8 @@ TEST_F(CsrSelectionCommandQueueWithBlitterTests, givenBlitterPresentAndLocalToLo
|
|||||||
DebugManagerStateRestore restore{};
|
DebugManagerStateRestore restore{};
|
||||||
DebugManager.flags.EnableBlitterForEnqueueOperations.set(1);
|
DebugManager.flags.EnableBlitterForEnqueueOperations.set(1);
|
||||||
|
|
||||||
const bool hwPreference = ClHwHelper::get(::defaultHwInfo->platform.eRenderCoreFamily).preferBlitterForLocalToLocalTransfers();
|
auto &clCoreHelper = clDevice->getRootDeviceEnvironment().getHelper<ClCoreHelper>();
|
||||||
|
const bool hwPreference = clCoreHelper.preferBlitterForLocalToLocalTransfers();
|
||||||
const auto &hwPreferenceCsr = hwPreference ? *queue->getBcsCommandStreamReceiver(aub_stream::ENGINE_BCS) : queue->getGpgpuCommandStreamReceiver();
|
const auto &hwPreferenceCsr = hwPreference ? *queue->getBcsCommandStreamReceiver(aub_stream::ENGINE_BCS) : queue->getGpgpuCommandStreamReceiver();
|
||||||
|
|
||||||
BuiltinOpParams builtinOpParams{};
|
BuiltinOpParams builtinOpParams{};
|
||||||
|
@ -1324,7 +1324,9 @@ HWTEST_TEMPLATED_F(BcsBufferTests, givenDebugFlagSetToOneWhenEnqueueingCopyLocal
|
|||||||
MockBuffer dstMemObj{dstGraphicsAllocation};
|
MockBuffer dstMemObj{dstGraphicsAllocation};
|
||||||
srcGraphicsAllocation.memoryPool = MemoryPool::LocalMemory;
|
srcGraphicsAllocation.memoryPool = MemoryPool::LocalMemory;
|
||||||
dstGraphicsAllocation.memoryPool = MemoryPool::LocalMemory;
|
dstGraphicsAllocation.memoryPool = MemoryPool::LocalMemory;
|
||||||
const bool preferBlitterHw = ClHwHelper::get(::defaultHwInfo->platform.eRenderCoreFamily).preferBlitterForLocalToLocalTransfers();
|
|
||||||
|
auto &clCoreHelper = this->device->getRootDeviceEnvironment().getHelper<ClCoreHelper>();
|
||||||
|
const bool preferBlitterHw = clCoreHelper.preferBlitterForLocalToLocalTransfers();
|
||||||
uint32_t expectedBlitBufferCalled = 0;
|
uint32_t expectedBlitBufferCalled = 0;
|
||||||
|
|
||||||
DebugManager.flags.PreferCopyEngineForCopyBufferToBuffer.set(-1);
|
DebugManager.flags.PreferCopyEngineForCopyBufferToBuffer.set(-1);
|
||||||
|
@ -24,15 +24,23 @@
|
|||||||
|
|
||||||
#include "hw_cmds_xe_hpc_core_base.h"
|
#include "hw_cmds_xe_hpc_core_base.h"
|
||||||
|
|
||||||
using HwHelperTestsXeHpcCore = Test<ClDeviceFixture>;
|
using ClHwHelperTestsXeHpcCore = Test<ClDeviceFixture>;
|
||||||
|
;
|
||||||
|
|
||||||
XE_HPC_CORETEST_F(HwHelperTestsXeHpcCore, givenXeHpcThenAuxTranslationIsNotRequired) {
|
XE_HPC_CORETEST_F(ClHwHelperTestsXeHpcCore, givenXeHpcThenAuxTranslationIsNotRequired) {
|
||||||
auto &clCoreHelper = getHelper<ClCoreHelper>();
|
auto &clCoreHelper = getHelper<ClCoreHelper>();
|
||||||
KernelInfo kernelInfo{};
|
KernelInfo kernelInfo{};
|
||||||
|
|
||||||
EXPECT_FALSE(clCoreHelper.requiresAuxResolves(kernelInfo, getRootDeviceEnvironment()));
|
EXPECT_FALSE(clCoreHelper.requiresAuxResolves(kernelInfo, getRootDeviceEnvironment()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
XE_HPC_CORETEST_F(ClHwHelperTestsXeHpcCore, WhenCheckingPreferenceForBlitterForLocalToLocalTransfersThenReturnFalse) {
|
||||||
|
auto &clCoreHelper = getHelper<ClCoreHelper>();
|
||||||
|
EXPECT_FALSE(clCoreHelper.preferBlitterForLocalToLocalTransfers());
|
||||||
|
}
|
||||||
|
|
||||||
|
using HwHelperTestsXeHpcCore = Test<ClDeviceFixture>;
|
||||||
|
|
||||||
XE_HPC_CORETEST_F(HwHelperTestsXeHpcCore, givenHwHelperwhenAskingForDcFlushThenReturnFalse) {
|
XE_HPC_CORETEST_F(HwHelperTestsXeHpcCore, givenHwHelperwhenAskingForDcFlushThenReturnFalse) {
|
||||||
EXPECT_FALSE(MemorySynchronizationCommands<FamilyType>::getDcFlushEnable(true, *defaultHwInfo));
|
EXPECT_FALSE(MemorySynchronizationCommands<FamilyType>::getDcFlushEnable(true, *defaultHwInfo));
|
||||||
}
|
}
|
||||||
@ -717,10 +725,6 @@ XE_HPC_CORETEST_F(HwHelperTestsXeHpcCore, WhenCheckingSipWAThenFalseIsReturned)
|
|||||||
EXPECT_FALSE(HwHelper::get(renderCoreFamily).isSipWANeeded(*defaultHwInfo));
|
EXPECT_FALSE(HwHelper::get(renderCoreFamily).isSipWANeeded(*defaultHwInfo));
|
||||||
}
|
}
|
||||||
|
|
||||||
XE_HPC_CORETEST_F(HwHelperTestsXeHpcCore, WhenCheckingPreferenceForBlitterForLocalToLocalTransfersThenReturnFalse) {
|
|
||||||
EXPECT_FALSE(ClHwHelper::get(renderCoreFamily).preferBlitterForLocalToLocalTransfers());
|
|
||||||
}
|
|
||||||
|
|
||||||
XE_HPC_CORETEST_F(HwHelperTestsXeHpcCore, givenBdA0WhenBcsSubDeviceSupportIsCheckedThenReturnFalse) {
|
XE_HPC_CORETEST_F(HwHelperTestsXeHpcCore, givenBdA0WhenBcsSubDeviceSupportIsCheckedThenReturnFalse) {
|
||||||
DebugManagerStateRestore restore;
|
DebugManagerStateRestore restore;
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user