refactor: Unify logic for getting atomic FP caps 1/n

- Separate logic for fp16/32/46 caps.
- Add aggregated constexprs for local & global caps of given type
- Pass arguments by reference
- Add hwInfo as argument for future refactors
- Add static_asserts in L0 to ensure there is no mismatch between
internal/external caps
Signed-off-by: Kacper Nowak <kacper.nowak@intel.com>
This commit is contained in:
Kacper Nowak
2024-02-06 15:48:22 +00:00
committed by Compute-Runtime-Automation
parent dac2af299b
commit 999ec9b2ca
6 changed files with 56 additions and 11 deletions

View File

@@ -80,7 +80,10 @@ class ProductHelper {
virtual uint64_t getSingleDeviceSharedMemCapabilities() const = 0;
virtual uint64_t getCrossDeviceSharedMemCapabilities() const = 0;
virtual uint64_t getSharedSystemMemCapabilities(const HardwareInfo *hwInfo) const = 0;
virtual void getKernelExtendedProperties(uint32_t *fp16, uint32_t *fp32, uint32_t *fp64) const = 0;
virtual void getKernelFp16AtomicCapabilities(const HardwareInfo &hwInfo, uint32_t &fp16) const = 0;
virtual void getKernelFp32AtomicCapabilities(const HardwareInfo &hwInfo, uint32_t &fp32) const = 0;
virtual void getKernelFp64AtomicCapabilities(const HardwareInfo &hwInfo, uint32_t &fp64) const = 0;
virtual void getKernelExtendedProperties(const HardwareInfo &hwInfo, uint32_t &fp16, uint32_t &fp32, uint32_t &fp64) const = 0;
virtual std::vector<int32_t> getKernelSupportedThreadArbitrationPolicies() const = 0;
virtual uint32_t getDeviceMemoryMaxClkRate(const HardwareInfo &hwInfo, const OSInterface *osIface, uint32_t subDeviceIndex) const = 0;
virtual uint64_t getDeviceMemoryPhysicalSizeInBytes(const OSInterface *osIface, uint32_t subDeviceIndex) const = 0;