mirror of
https://github.com/intel/compute-runtime.git
synced 2026-01-11 00:10:58 +08:00
refactor: unify programming of preferred slm size 5/n
- remove xe2 hpg encode preferred slm size - add xe2 release helper preferred slm array Related-To: NEO-12639 Signed-off-by: Zbigniew Zdanowicz <zbigniew.zdanowicz@intel.com>
This commit is contained in:
committed by
Compute-Runtime-Automation
parent
f117f4c938
commit
9fc4663383
@@ -75,6 +75,34 @@ TEST_F(ReleaseHelper2001Tests, whenIsLocalOnlyAllowedCalledThenFalseReturned) {
|
||||
whenIsLocalOnlyAllowedCalledThenFalseReturned();
|
||||
}
|
||||
|
||||
TEST_F(ReleaseHelper2001Tests, whenGettingPreferredSlmSizeThenAllEntriesEmpty) {
|
||||
whenGettingPreferredSlmSizeThenAllEntriesEmpty();
|
||||
TEST_F(ReleaseHelper2001Tests, whenGettingPreferredSlmSizeThenAllEntriesHaveCorrectValues) {
|
||||
for (auto &revision : getRevisions()) {
|
||||
ipVersion.revision = revision;
|
||||
releaseHelper = ReleaseHelper::create(ipVersion);
|
||||
ASSERT_NE(nullptr, releaseHelper);
|
||||
|
||||
constexpr uint32_t kB = 1024;
|
||||
|
||||
auto &preferredSlmValueArray = releaseHelper->getSizeToPreferredSlmValue(false);
|
||||
EXPECT_EQ(0u, preferredSlmValueArray[0].upperLimit);
|
||||
EXPECT_EQ(0u, preferredSlmValueArray[0].valueToProgram);
|
||||
|
||||
EXPECT_EQ(16 * kB, preferredSlmValueArray[1].upperLimit);
|
||||
EXPECT_EQ(1u, preferredSlmValueArray[1].valueToProgram);
|
||||
|
||||
EXPECT_EQ(32 * kB, preferredSlmValueArray[2].upperLimit);
|
||||
EXPECT_EQ(2u, preferredSlmValueArray[2].valueToProgram);
|
||||
|
||||
EXPECT_EQ(64 * kB, preferredSlmValueArray[3].upperLimit);
|
||||
EXPECT_EQ(3u, preferredSlmValueArray[3].valueToProgram);
|
||||
|
||||
EXPECT_EQ(96 * kB, preferredSlmValueArray[4].upperLimit);
|
||||
EXPECT_EQ(4u, preferredSlmValueArray[4].valueToProgram);
|
||||
|
||||
EXPECT_EQ(128 * kB, preferredSlmValueArray[5].upperLimit);
|
||||
EXPECT_EQ(5u, preferredSlmValueArray[5].valueToProgram);
|
||||
|
||||
EXPECT_EQ(std::numeric_limits<uint32_t>::max(), preferredSlmValueArray[6].upperLimit);
|
||||
EXPECT_EQ(6u, preferredSlmValueArray[6].valueToProgram);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -44,28 +44,8 @@ TEST_F(ReleaseHelper2004Tests, whenGettingCapabilitiesThenCorrectPropertiesAreRe
|
||||
}
|
||||
}
|
||||
|
||||
TEST_F(ReleaseHelper2004Tests, whenGettingMaxPreferredSlmSizeThenSizeSizeIsLimitedBy128K) {
|
||||
for (auto &revision : getRevisions()) {
|
||||
ipVersion.revision = revision;
|
||||
releaseHelper = ReleaseHelper::create(ipVersion);
|
||||
ASSERT_NE(nullptr, releaseHelper);
|
||||
|
||||
using PREFERRED_SLM_ALLOCATION_SIZE = typename Xe2HpgCoreFamily::INTERFACE_DESCRIPTOR_DATA::PREFERRED_SLM_ALLOCATION_SIZE;
|
||||
for (auto &preferredSlmSize : {PREFERRED_SLM_ALLOCATION_SIZE::PREFERRED_SLM_ALLOCATION_SIZE_0K,
|
||||
PREFERRED_SLM_ALLOCATION_SIZE::PREFERRED_SLM_ALLOCATION_SIZE_16K,
|
||||
PREFERRED_SLM_ALLOCATION_SIZE::PREFERRED_SLM_ALLOCATION_SIZE_32K,
|
||||
PREFERRED_SLM_ALLOCATION_SIZE::PREFERRED_SLM_ALLOCATION_SIZE_64K,
|
||||
PREFERRED_SLM_ALLOCATION_SIZE::PREFERRED_SLM_ALLOCATION_SIZE_96K,
|
||||
PREFERRED_SLM_ALLOCATION_SIZE::PREFERRED_SLM_ALLOCATION_SIZE_128K}) {
|
||||
|
||||
auto maxPreferredSlmValue = releaseHelper->getProductMaxPreferredSlmSize(preferredSlmSize);
|
||||
EXPECT_EQ(maxPreferredSlmValue, preferredSlmSize);
|
||||
}
|
||||
auto preferredSlmSize128k = PREFERRED_SLM_ALLOCATION_SIZE::PREFERRED_SLM_ALLOCATION_SIZE_128K;
|
||||
auto preferredSlmSize160k = PREFERRED_SLM_ALLOCATION_SIZE::PREFERRED_SLM_ALLOCATION_SIZE_160K;
|
||||
auto maxPreferredSlmValue = releaseHelper->getProductMaxPreferredSlmSize(preferredSlmSize160k);
|
||||
EXPECT_EQ(maxPreferredSlmValue, preferredSlmSize128k);
|
||||
}
|
||||
TEST_F(ReleaseHelper2004Tests, whenGettingMaxPreferredSlmSizeThenSizeIsNotModified) {
|
||||
whenGettingMaxPreferredSlmSizeThenSizeIsNotModified();
|
||||
}
|
||||
|
||||
TEST_F(ReleaseHelper2004Tests, whenShouldAdjustCalledThenTrueReturned) {
|
||||
@@ -96,6 +76,31 @@ TEST_F(ReleaseHelper2004Tests, whenIsLocalOnlyAllowedCalledThenFalseReturned) {
|
||||
whenIsLocalOnlyAllowedCalledThenFalseReturned();
|
||||
}
|
||||
|
||||
TEST_F(ReleaseHelper2004Tests, whenGettingPreferredSlmSizeThenAllEntriesEmpty) {
|
||||
whenGettingPreferredSlmSizeThenAllEntriesEmpty();
|
||||
TEST_F(ReleaseHelper2004Tests, whenGettingPreferredSlmSizeThenAllEntriesHaveCorrectValues) {
|
||||
for (auto &revision : getRevisions()) {
|
||||
ipVersion.revision = revision;
|
||||
releaseHelper = ReleaseHelper::create(ipVersion);
|
||||
ASSERT_NE(nullptr, releaseHelper);
|
||||
|
||||
constexpr uint32_t kB = 1024;
|
||||
|
||||
auto &preferredSlmValueArray = releaseHelper->getSizeToPreferredSlmValue(false);
|
||||
EXPECT_EQ(0u, preferredSlmValueArray[0].upperLimit);
|
||||
EXPECT_EQ(0u, preferredSlmValueArray[0].valueToProgram);
|
||||
|
||||
EXPECT_EQ(16 * kB, preferredSlmValueArray[1].upperLimit);
|
||||
EXPECT_EQ(1u, preferredSlmValueArray[1].valueToProgram);
|
||||
|
||||
EXPECT_EQ(32 * kB, preferredSlmValueArray[2].upperLimit);
|
||||
EXPECT_EQ(2u, preferredSlmValueArray[2].valueToProgram);
|
||||
|
||||
EXPECT_EQ(64 * kB, preferredSlmValueArray[3].upperLimit);
|
||||
EXPECT_EQ(3u, preferredSlmValueArray[3].valueToProgram);
|
||||
|
||||
EXPECT_EQ(96 * kB, preferredSlmValueArray[4].upperLimit);
|
||||
EXPECT_EQ(4u, preferredSlmValueArray[4].valueToProgram);
|
||||
|
||||
EXPECT_EQ(std::numeric_limits<uint32_t>::max(), preferredSlmValueArray[5].upperLimit);
|
||||
EXPECT_EQ(5u, preferredSlmValueArray[5].valueToProgram);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user