2023-08-01 23:03:43 +08:00
|
|
|
/*
|
2024-01-31 02:13:08 +08:00
|
|
|
* Copyright (C) 2023-2024 Intel Corporation
|
2023-08-01 23:03:43 +08:00
|
|
|
*
|
|
|
|
* SPDX-License-Identifier: MIT
|
|
|
|
*
|
|
|
|
*/
|
|
|
|
|
|
|
|
#include "shared/source/release_helper/release_helper.h"
|
2024-10-02 17:50:19 +08:00
|
|
|
#include "shared/source/xe_hpg_core/hw_cmds_xe_hpg_core_base.h"
|
2023-08-01 23:03:43 +08:00
|
|
|
|
|
|
|
namespace NEO {
|
|
|
|
|
2023-08-24 18:06:59 +08:00
|
|
|
template <>
|
|
|
|
bool ReleaseHelperHw<release>::isProgramAllStateComputeCommandFieldsWARequired() const {
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
2023-08-01 23:03:43 +08:00
|
|
|
template <>
|
|
|
|
bool ReleaseHelperHw<release>::isSplitMatrixMultiplyAccumulateSupported() const {
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
|
|
|
template <>
|
|
|
|
bool ReleaseHelperHw<release>::isBFloat16ConversionSupported() const {
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
2023-09-20 21:08:46 +08:00
|
|
|
template <>
|
|
|
|
bool ReleaseHelperHw<release>::isDirectSubmissionSupported() const {
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
2023-09-15 18:28:08 +08:00
|
|
|
template <>
|
|
|
|
bool ReleaseHelperHw<release>::isRcsExposureDisabled() const {
|
|
|
|
return true;
|
|
|
|
}
|
2024-07-11 23:00:10 +08:00
|
|
|
|
|
|
|
template <>
|
|
|
|
bool ReleaseHelperHw<release>::isBindlessAddressingDisabled() const {
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
2024-08-24 01:58:00 +08:00
|
|
|
template <>
|
|
|
|
bool ReleaseHelperHw<release>::isGlobalBindlessAllocatorEnabled() const {
|
2024-09-16 20:12:18 +08:00
|
|
|
return true;
|
2024-12-20 20:36:51 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
template <>
|
|
|
|
bool ReleaseHelperHw<release>::getFtrXe2Compression() const {
|
|
|
|
return false;
|
2024-08-24 01:58:00 +08:00
|
|
|
}
|
|
|
|
|
2024-10-02 17:50:19 +08:00
|
|
|
template <>
|
|
|
|
const SizeToPreferredSlmValueArray &ReleaseHelperHw<release>::getSizeToPreferredSlmValue(bool isHeapless) const {
|
|
|
|
using PREFERRED_SLM_ALLOCATION_SIZE = typename XeHpgCoreFamily::INTERFACE_DESCRIPTOR_DATA::PREFERRED_SLM_ALLOCATION_SIZE;
|
|
|
|
static const SizeToPreferredSlmValueArray sizeToPreferredSlmValue = {{
|
2024-12-24 00:49:27 +08:00
|
|
|
{0, PREFERRED_SLM_ALLOCATION_SIZE::PREFERRED_SLM_ALLOCATION_SIZE_0KB},
|
|
|
|
{16 * MemoryConstants::kiloByte, PREFERRED_SLM_ALLOCATION_SIZE::PREFERRED_SLM_ALLOCATION_SIZE_16KB},
|
|
|
|
{32 * MemoryConstants::kiloByte, PREFERRED_SLM_ALLOCATION_SIZE::PREFERRED_SLM_ALLOCATION_SIZE_32KB},
|
|
|
|
{64 * MemoryConstants::kiloByte, PREFERRED_SLM_ALLOCATION_SIZE::PREFERRED_SLM_ALLOCATION_SIZE_64KB},
|
|
|
|
{96 * MemoryConstants::kiloByte, PREFERRED_SLM_ALLOCATION_SIZE::PREFERRED_SLM_ALLOCATION_SIZE_96KB},
|
|
|
|
{std::numeric_limits<uint32_t>::max(), PREFERRED_SLM_ALLOCATION_SIZE::PREFERRED_SLM_ALLOCATION_SIZE_128KB},
|
2024-10-02 17:50:19 +08:00
|
|
|
}};
|
|
|
|
return sizeToPreferredSlmValue;
|
|
|
|
}
|
|
|
|
|
2023-08-01 23:03:43 +08:00
|
|
|
} // namespace NEO
|