/* * Copyright (C) 2018-2019 Intel Corporation * * SPDX-License-Identifier: MIT * */ #pragma once #include "runtime/gen11/hw_cmds_base.h" namespace NEO { struct EHL : public ICLFamily { static const PLATFORM platform; static const HardwareInfo hwInfo; static FeatureTable featureTable; static WorkaroundTable workaroundTable; static const uint32_t threadsPerEu = 7; static const uint32_t maxEuPerSubslice = 8; static const uint32_t maxSlicesSupported = 1; static const uint32_t maxSubslicesSupported = 4; static const RuntimeCapabilityTable capabilityTable; static void (*setupHardwareInfo)(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable, const std::string &hwInfoConfig); static void setupFeatureAndWorkaroundTable(HardwareInfo *hwInfo); }; class EHL_1x2x4 : public EHL { public: static void setupHardwareInfo(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable); static const HardwareInfo hwInfo; private: static GT_SYSTEM_INFO gtSystemInfo; }; class EHL_1x4x4 : public EHL { public: static void setupHardwareInfo(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable); static const HardwareInfo hwInfo; private: static GT_SYSTEM_INFO gtSystemInfo; }; class EHL_1x4x8 : public EHL { public: static void setupHardwareInfo(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable); static const HardwareInfo hwInfo; private: static GT_SYSTEM_INFO gtSystemInfo; }; } // namespace NEO