mirror of
https://github.com/intel/compute-runtime.git
synced 2025-12-21 09:14:47 +08:00
feature: Enable support for cl_intel_subgroup_2d_block_io
This change enables support for cl_intel_subgroup_2d_block_io extension for PVC and later. Related-To: GSD-7825 Signed-off-by: Ratajewski, Andrzej <andrzej.ratajewski@intel.com>
This commit is contained in:
committed by
Compute-Runtime-Automation
parent
014720fc29
commit
0b0f7bd4cd
@@ -64,6 +64,7 @@ class CompilerProductHelper {
|
||||
virtual bool isCreateBufferWithPropertiesSupported() const = 0;
|
||||
virtual bool isSubgroupNamedBarrierSupported() const = 0;
|
||||
virtual bool isSubgroupExtendedBlockReadSupported() const = 0;
|
||||
virtual bool isSubgroup2DBlockIOSupported() const = 0;
|
||||
virtual bool isForceToStatelessRequired() const = 0;
|
||||
virtual bool failBuildProgramWithStatefulAccessPreference() const = 0;
|
||||
virtual bool isDotIntegerProductExtensionSupported() const = 0;
|
||||
@@ -111,6 +112,7 @@ class CompilerProductHelperHw : public CompilerProductHelper {
|
||||
bool isCreateBufferWithPropertiesSupported() const override;
|
||||
bool isSubgroupNamedBarrierSupported() const override;
|
||||
bool isSubgroupExtendedBlockReadSupported() const override;
|
||||
bool isSubgroup2DBlockIOSupported() const override;
|
||||
bool isForceToStatelessRequired() const override;
|
||||
bool failBuildProgramWithStatefulAccessPreference() const override;
|
||||
bool isDotIntegerProductExtensionSupported() const override;
|
||||
|
||||
@@ -192,6 +192,9 @@ std::string CompilerProductHelperHw<gfxProduct>::getDeviceExtensions(const Hardw
|
||||
if (isSubgroupExtendedBlockReadSupported()) {
|
||||
extensions += "cl_intel_subgroup_extended_block_read ";
|
||||
}
|
||||
if (isSubgroup2DBlockIOSupported()) {
|
||||
extensions += "cl_intel_subgroup_2d_block_io ";
|
||||
}
|
||||
if (isDotIntegerProductExtensionSupported()) {
|
||||
extensions += "cl_khr_integer_dot_product ";
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2022-2023 Intel Corporation
|
||||
* Copyright (C) 2022-2024 Intel Corporation
|
||||
*
|
||||
* SPDX-License-Identifier: MIT
|
||||
*
|
||||
@@ -26,4 +26,9 @@ bool CompilerProductHelperHw<gfxProduct>::isSubgroupExtendedBlockReadSupported()
|
||||
return false;
|
||||
}
|
||||
|
||||
template <PRODUCT_FAMILY gfxProduct>
|
||||
bool CompilerProductHelperHw<gfxProduct>::isSubgroup2DBlockIOSupported() const {
|
||||
return false;
|
||||
}
|
||||
|
||||
} // namespace NEO
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2022-2023 Intel Corporation
|
||||
* Copyright (C) 2022-2024 Intel Corporation
|
||||
*
|
||||
* SPDX-License-Identifier: MIT
|
||||
*
|
||||
@@ -30,4 +30,9 @@ bool CompilerProductHelperHw<gfxProduct>::isSubgroupExtendedBlockReadSupported()
|
||||
return true;
|
||||
}
|
||||
|
||||
template <PRODUCT_FAMILY gfxProduct>
|
||||
bool CompilerProductHelperHw<gfxProduct>::isSubgroup2DBlockIOSupported() const {
|
||||
return true;
|
||||
}
|
||||
|
||||
} // namespace NEO
|
||||
|
||||
@@ -114,6 +114,18 @@ HWTEST2_F(CompilerProductHelperFixture, GivenPreXeHpcThenSubgroupExtendedBlockRe
|
||||
EXPECT_FALSE(compilerProductHelper.isSubgroupExtendedBlockReadSupported());
|
||||
}
|
||||
|
||||
HWTEST2_F(CompilerProductHelperFixture, GivenXeHpcAndLaterThenSubgroup2DBlockIOIsSupported, IsAtLeastXeHpcCore) {
|
||||
auto &compilerProductHelper = pDevice->getCompilerProductHelper();
|
||||
|
||||
EXPECT_TRUE(compilerProductHelper.isSubgroup2DBlockIOSupported());
|
||||
}
|
||||
|
||||
HWTEST2_F(CompilerProductHelperFixture, GivenPreXeHpcThenSubgroup2DBlockIOIsNotSupported, IsAtMostXeHpgCore) {
|
||||
auto &compilerProductHelper = pDevice->getCompilerProductHelper();
|
||||
|
||||
EXPECT_FALSE(compilerProductHelper.isSubgroup2DBlockIOSupported());
|
||||
}
|
||||
|
||||
HWTEST2_F(CompilerProductHelperFixture, GivenCompilerProductHelperThenBFloat16ConversionIsSupportedBasedOnReleaseHelper, IsNotXeHpcCore) {
|
||||
auto &compilerProductHelper = pDevice->getCompilerProductHelper();
|
||||
auto releaseHelper = pDevice->getReleaseHelper();
|
||||
|
||||
Reference in New Issue
Block a user