2021-10-26 15:25:20 +00:00
|
|
|
/*
|
2023-01-17 11:19:19 +00:00
|
|
|
* Copyright (C) 2021-2023 Intel Corporation
|
2021-10-26 15:25:20 +00:00
|
|
|
*
|
|
|
|
|
* SPDX-License-Identifier: MIT
|
|
|
|
|
*
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
#pragma once
|
|
|
|
|
|
2022-06-27 14:58:29 +00:00
|
|
|
#include "shared/source/helpers/cache_policy.h"
|
2023-02-02 14:25:08 +00:00
|
|
|
#include "shared/source/helpers/compiler_product_helper.h"
|
2021-10-26 15:25:20 +00:00
|
|
|
|
|
|
|
|
namespace NEO {
|
|
|
|
|
|
|
|
|
|
template <PRODUCT_FAMILY gfxProduct>
|
2022-11-30 14:28:39 +00:00
|
|
|
bool CompilerProductHelperHw<gfxProduct>::isForceEmuInt32DivRemSPRequired() const {
|
2021-10-26 15:25:20 +00:00
|
|
|
return false;
|
|
|
|
|
}
|
2022-11-23 11:12:58 +00:00
|
|
|
|
2021-10-26 15:25:20 +00:00
|
|
|
template <PRODUCT_FAMILY gfxProduct>
|
2022-11-30 14:28:39 +00:00
|
|
|
bool CompilerProductHelperHw<gfxProduct>::isStatelessToStatefulBufferOffsetSupported() const {
|
2021-10-26 15:25:20 +00:00
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
|
2022-06-20 12:39:11 +00:00
|
|
|
template <PRODUCT_FAMILY gfxProduct>
|
2022-11-30 14:28:39 +00:00
|
|
|
const char *CompilerProductHelperHw<gfxProduct>::getCachingPolicyOptions(bool isDebuggerActive) const {
|
2022-08-23 11:48:18 +00:00
|
|
|
return L1CachePolicyHelper<gfxProduct>::getCachingPolicyOptions(isDebuggerActive);
|
2022-11-23 11:12:58 +00:00
|
|
|
}
|
|
|
|
|
|
2023-02-08 13:41:50 +00:00
|
|
|
template <PRODUCT_FAMILY gfxProduct>
|
|
|
|
|
bool CompilerProductHelperHw<gfxProduct>::failBuildProgramWithStatefulAccessPreference() const {
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
|
2023-03-14 12:42:51 +00:00
|
|
|
template <PRODUCT_FAMILY gfxProduct>
|
|
|
|
|
std::string CompilerProductHelperHw<gfxProduct>::getExtensions(const HardwareInfo &hwInfo) const {
|
|
|
|
|
std::string extensions = "";
|
|
|
|
|
|
|
|
|
|
if (isCreateBufferWithPropertiesSupported()) {
|
|
|
|
|
extensions += "cl_intel_create_buffer_with_properties ";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (isDotAccumulateSupported()) {
|
|
|
|
|
extensions += "cl_intel_dot_accumulate ";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (isSubgroupLocalBlockIoSupported()) {
|
|
|
|
|
extensions += "cl_intel_subgroup_local_block_io ";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (isMatrixMultiplyAccumulateSupported(hwInfo)) {
|
|
|
|
|
extensions += "cl_intel_subgroup_matrix_multiply_accumulate ";
|
|
|
|
|
extensions += "cl_intel_subgroup_split_matrix_multiply_accumulate ";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (isSubgroupNamedBarrierSupported()) {
|
|
|
|
|
extensions += "cl_khr_subgroup_named_barrier ";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (isSubgroupExtendedBlockReadSupported()) {
|
|
|
|
|
extensions += "cl_intel_subgroup_extended_block_read ";
|
|
|
|
|
}
|
|
|
|
|
return extensions;
|
|
|
|
|
}
|
|
|
|
|
|
2021-10-26 15:25:20 +00:00
|
|
|
} // namespace NEO
|