/* * Copyright (C) 2021-2022 Intel Corporation * * SPDX-License-Identifier: MIT * */ #include "shared/source/aub_mem_dump/aub_mem_dump.h" #include "shared/source/helpers/cache_policy.h" #include "shared/source/helpers/constants.h" #include "shared/source/os_interface/hw_info_config.h" #include "platforms.h" namespace NEO { template <> void HwInfoConfigHw::adjustSamplerState(void *sampler, const HardwareInfo &hwInfo) { } template <> void HwInfoConfigHw::convertTimestampsFromOaToCsDomain(uint64_t ×tampData) { } template <> uint32_t HwInfoConfigHw::getMaxThreadsForWorkgroupInDSSOrSS(const HardwareInfo &hwInfo, uint32_t maxNumEUsPerSubSlice, uint32_t maxNumEUsPerDualSubSlice) const { return 0; } template <> uint32_t HwInfoConfigHw::getMaxThreadsForWorkgroup(const HardwareInfo &hwInfo, uint32_t maxNumEUsPerSubSlice) const { return 0; } template <> void HwInfoConfigHw::setForceNonCoherent(void *const commandPtr, const StateComputeModeProperties &properties) { } template <> void HwInfoConfigHw::adjustPlatformForProductFamily(HardwareInfo *hwInfo) { } template <> uint64_t HwInfoConfigHw::getHostMemCapabilities(const HardwareInfo *hwInfo) { return 0; } template <> uint64_t HwInfoConfigHw::getDeviceMemCapabilities() { return 0; } template <> uint64_t HwInfoConfigHw::getSingleDeviceSharedMemCapabilities() { return 0; } template <> uint64_t HwInfoConfigHw::getCrossDeviceSharedMemCapabilities() { return 0; } template <> uint64_t HwInfoConfigHw::getSharedSystemMemCapabilities(const HardwareInfo *hwInfo) { return 0; } template <> void HwInfoConfigHw::getKernelExtendedProperties(uint32_t *fp16, uint32_t *fp32, uint32_t *fp64) { } template <> bool HwInfoConfigHw::overrideGfxPartitionLayoutForWsl() const { return false; } template <> uint32_t HwInfoConfigHw::getDeviceMemoryMaxClkRate(const HardwareInfo &hwInfo, const OSInterface *osIface, uint32_t subDeviceIndex) { return 0; } template <> uint64_t HwInfoConfigHw::getDeviceMemoryPhysicalSizeInBytes(const OSInterface *osIface, uint32_t subDeviceIndex) { return 0; } template <> uint64_t HwInfoConfigHw::getDeviceMemoryMaxBandWidthInBytesPerSecond(const HardwareInfo &hwInfo, const OSInterface *osIface, uint32_t subDeviceIndex) { return 0; } template <> bool HwInfoConfigHw::isAdditionalStateBaseAddressWARequired(const HardwareInfo &hwInfo) const { return false; } template <> bool HwInfoConfigHw::isMaxThreadsForWorkgroupWARequired(const HardwareInfo &hwInfo) const { return false; } template <> bool HwInfoConfigHw::obtainBlitterPreference(const HardwareInfo &hwInfo) const { return false; } template <> bool HwInfoConfigHw::isBlitterFullySupported(const HardwareInfo &hwInfo) const { return false; } template <> bool HwInfoConfigHw::isPageTableManagerSupported(const HardwareInfo &hwInfo) const { return false; } template <> uint32_t HwInfoConfigHw::getHwRevIdFromStepping(uint32_t stepping, const HardwareInfo &hwInfo) const { return CommonConstants::invalidStepping; } template <> AOT::PRODUCT_CONFIG HwInfoConfigHw::getProductConfigFromHwInfo(const HardwareInfo &hwInfo) const { return AOT::UNKNOWN_ISA; } template <> uint32_t HwInfoConfigHw::getSteppingFromHwRevId(const HardwareInfo &hwInfo) const { return CommonConstants::invalidStepping; } template <> uint32_t HwInfoConfigHw::getAubStreamSteppingFromHwRevId(const HardwareInfo &hwInfo) const { switch (getSteppingFromHwRevId(hwInfo)) { default: case REVISION_A0: case REVISION_A1: case REVISION_A3: return AubMemDump::SteppingValues::A; case REVISION_B: return AubMemDump::SteppingValues::B; case REVISION_C: return AubMemDump::SteppingValues::C; case REVISION_D: return AubMemDump::SteppingValues::D; case REVISION_K: return AubMemDump::SteppingValues::K; } } template <> std::string HwInfoConfigHw::getDeviceMemoryName() const { return ""; } template <> void HwInfoConfigHw::setAdditionalPipelineSelectFields(void *pipelineSelectCmd, const PipelineSelectArgs &pipelineSelectArgs, const HardwareInfo &hwInfo) { } template <> bool HwInfoConfigHw::isDefaultEngineTypeAdjustmentRequired(const HardwareInfo &hwInfo) const { return false; } template <> bool HwInfoConfigHw::isDisableOverdispatchAvailable(const HardwareInfo &hwInfo) const { return false; } template <> bool HwInfoConfigHw::allowCompression(const HardwareInfo &hwInfo) const { return false; } template <> bool HwInfoConfigHw::allowStatelessCompression(const HardwareInfo &hwInfo) const { return false; } template <> bool HwInfoConfigHw::isDirectSubmissionSupported(const HardwareInfo &hwInfo) const { return false; } template <> LocalMemoryAccessMode HwInfoConfigHw::getDefaultLocalMemoryAccessMode(const HardwareInfo &hwInfo) const { return LocalMemoryAccessMode::Default; } template <> LocalMemoryAccessMode HwInfoConfigHw::getLocalMemoryAccessMode(const HardwareInfo &hwInfo) const { return LocalMemoryAccessMode::Default; } template <> std::vector HwInfoConfigHw::getKernelSupportedThreadArbitrationPolicies() { return {}; } template <> bool HwInfoConfigHw::isAllocationSizeAdjustmentRequired(const HardwareInfo &hwInfo) const { return false; } template <> bool HwInfoConfigHw::isPrefetchDisablingRequired(const HardwareInfo &hwInfo) const { return false; } template <> bool HwInfoConfigHw::isNewResidencyModelSupported() const { return false; } template <> std::pair HwInfoConfigHw::isPipeControlPriorToNonPipelinedStateCommandsWARequired(const HardwareInfo &hwInfo, bool isRcs) const { return {false, false}; } template <> bool HwInfoConfigHw::heapInLocalMem(const HardwareInfo &hwInfo) const { return false; } template <> void HwInfoConfigHw::setCapabilityCoherencyFlag(const HardwareInfo &hwInfo, bool &coherencyFlag) { } template <> bool HwInfoConfigHw::isAdditionalMediaSamplerProgrammingRequired() const { return false; } template <> bool HwInfoConfigHw::isInitialFlagsProgrammingRequired() const { return false; } template <> bool HwInfoConfigHw::isReturnedCmdSizeForMediaSamplerAdjustmentRequired() const { return false; } template <> bool HwInfoConfigHw::extraParametersInvalid(const HardwareInfo &hwInfo) const { return false; } template <> bool HwInfoConfigHw::pipeControlWARequired(const HardwareInfo &hwInfo) const { return false; } template <> bool HwInfoConfigHw::imagePitchAlignmentWARequired(const HardwareInfo &hwInfo) const { return false; } template <> bool HwInfoConfigHw::isForceEmuInt32DivRemSPWARequired(const HardwareInfo &hwInfo) const { return false; } template <> bool HwInfoConfigHw::is3DPipelineSelectWARequired() const { return false; } template <> bool HwInfoConfigHw::isStorageInfoAdjustmentRequired() const { return false; } template <> bool HwInfoConfigHw::isBlitterForImagesSupported() const { return false; } template <> bool HwInfoConfigHw::isTile64With3DSurfaceOnBCSSupported(const HardwareInfo &hwInfo) const { return false; } template <> bool HwInfoConfigHw::isDcFlushAllowed() const { return true; } template <> uint32_t HwInfoConfigHw::computeMaxNeededSubSliceSpace(const HardwareInfo &hwInfo) const { return hwInfo.gtSystemInfo.MaxSubSlicesSupported; } template <> bool HwInfoConfigHw::getUuid(Device *device, std::array &uuid) const { return false; } template <> bool HwInfoConfigHw::isFlushTaskAllowed() const { return false; } template <> bool HwInfoConfigHw::programAllStateComputeCommandFields() const { return false; } template <> bool HwInfoConfigHw::isSystolicPipelineSelectModeChanged(const HardwareInfo &hwInfo) const { return false; } template <> bool HwInfoConfigHw::isSystolicModeConfigurable(const HardwareInfo &hwInfo) const { return false; } template <> bool HwInfoConfigHw::isComputeDispatchAllWalkerEnableInComputeWalkerRequired(const HardwareInfo &hwInfo) const { return false; } template <> bool HwInfoConfigHw::isGlobalFenceInCommandStreamRequired(const HardwareInfo &hwInfo) const { return false; } template <> bool HwInfoConfigHw::isAdjustProgrammableIdPreferredSlmSizeRequired(const HardwareInfo &hwInfo) const { return false; } template <> uint32_t HwInfoConfigHw::getThreadEuRatioForScratch(const HardwareInfo &hwInfo) const { return 8u; } template <> bool HwInfoConfigHw::isIpSamplingSupported(const HardwareInfo &hwInfo) const { return false; } template <> bool HwInfoConfigHw::isVmBindPatIndexProgrammingSupported() const { return false; } template <> bool HwInfoConfigHw::isBFloat16ConversionSupported(const HardwareInfo &hwInfo) const { return false; } template <> bool HwInfoConfigHw::isMatrixMultiplyAccumulateSupported(const HardwareInfo &hwInfo) const { return false; } template <> void HwInfoConfigHw::updateScmCommand(void *const commandPtr, const StateComputeModeProperties &properties) { } template <> void HwInfoConfigHw::updateIddCommand(void *const commandPtr, uint32_t numGrf, int32_t threadArbitrationPolicy) { } template <> void HwInfoConfigHw::enableCompression(HardwareInfo *hwInfo) { } template <> bool HwInfoConfigHw::isCooperativeEngineSupported(const HardwareInfo &hwInfo) const { return false; } template <> bool HwInfoConfigHw::isTimestampWaitSupportedForEvents() const { return false; } template <> uint64_t HwInfoConfigHw::getHostMemCapabilitiesValue() { return 0; } template <> bool HwInfoConfigHw::isEvictionIfNecessaryFlagSupported() const { return true; } template <> const char *L1CachePolicyHelper::getCachingPolicyOptions(bool isDebuggerActive) { return nullptr; } template <> uint32_t L1CachePolicyHelper::getDefaultL1CachePolicy(bool isDebuggerActive) { return 0u; } template <> bool HwInfoConfigHw::isPrefetcherDisablingInDirectSubmissionRequired() const { return true; } template <> uint32_t L1CachePolicyHelper::getL1CachePolicy(bool isDebuggerActive) { return L1CachePolicyHelper::getDefaultL1CachePolicy(isDebuggerActive); } template <> uint32_t L1CachePolicyHelper::getUncachedL1CachePolicy() { return 1u; } struct UnknownProduct { struct FrontEndStateSupport { static constexpr bool scratchSize = false; static constexpr bool privateScratchSize = false; static constexpr bool computeDispatchAllWalker = false; static constexpr bool disableEuFusion = false; static constexpr bool disableOverdispatch = false; static constexpr bool singleSliceDispatchCcsMode = false; }; struct StateComputeModeStateSupport { static constexpr bool threadArbitrationPolicy = false; static constexpr bool coherencyRequired = false; static constexpr bool largeGrfMode = false; static constexpr bool zPassAsyncComputeThreadLimit = false; static constexpr bool pixelAsyncComputeThreadLimit = false; static constexpr bool devicePreemptionMode = false; }; struct StateBaseAddressStateSupport { static constexpr bool globalAtomics = false; static constexpr bool statelessMocs = false; }; struct PipelineSelectStateSupport { static constexpr bool commandSupport = false; }; struct PreemptionDebugSupport { static constexpr bool preemptionMode = false; static constexpr bool stateSip = false; static constexpr bool csrSurface = false; }; }; template <> struct HwMapper { enum { gfxFamily = IGFX_UNKNOWN_CORE }; static const char *abbreviation; using GfxProduct = UnknownProduct; }; } // namespace NEO #include "shared/source/os_interface/hw_info_config.inl" template class NEO::HwInfoConfigHw; template struct NEO::L1CachePolicyHelper;