Skip to content

Commit 8687a88

Browse files
refactor: unify programming of preferred slm size 2/n
- add interface that will provide all preferred slm sizes for all releases Related-To: NEO-12639 Signed-off-by: Zbigniew Zdanowicz <[email protected]>
1 parent e240dca commit 8687a88

17 files changed

+104
-10
lines changed

shared/source/command_container/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ set(NEO_CORE_COMMAND_CONTAINER
2020
${CMAKE_CURRENT_SOURCE_DIR}/implicit_scaling.cpp
2121
${CMAKE_CURRENT_SOURCE_DIR}/implicit_scaling.h
2222
${CMAKE_CURRENT_SOURCE_DIR}/implicit_scaling_before_xe_hp.inl
23+
${CMAKE_CURRENT_SOURCE_DIR}/definitions/encode_size_preferred_slm_value.h
2324
${CMAKE_CURRENT_SOURCE_DIR}/definitions/encode_surface_state_args_base.h
2425
${CMAKE_CURRENT_SOURCE_DIR}/definitions${BRANCH_DIR_SUFFIX}encode_surface_state.inl
2526
${CMAKE_CURRENT_SOURCE_DIR}/definitions${BRANCH_DIR_SUFFIX}encode_surface_state_args.h
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
/*
2+
* Copyright (C) 2024 Intel Corporation
3+
*
4+
* SPDX-License-Identifier: MIT
5+
*
6+
*/
7+
8+
#pragma once
9+
10+
#include <cstdint>
11+
12+
namespace NEO {
13+
struct SizeToPreferredSlmValue {
14+
uint32_t upperLimit;
15+
uint32_t valueToProgram;
16+
};
17+
} // namespace NEO

shared/source/release_helper/release_helper.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,11 @@
77

88
#pragma once
99

10+
#include "shared/source/command_container/definitions/encode_size_preferred_slm_value.h"
1011
#include "shared/source/helpers/hw_ip_version.h"
1112
#include "shared/source/utilities/stackvec.h"
1213

14+
#include <array>
1315
#include <memory>
1416
#include <optional>
1517
#include <string>
@@ -25,6 +27,7 @@ using createReleaseHelperFunctionType = std::unique_ptr<ReleaseHelper> (*)(Hardw
2527
inline createReleaseHelperFunctionType *releaseHelperFactory[maxArchitecture]{};
2628

2729
using ThreadsPerEUConfigs = StackVec<uint32_t, 6>;
30+
using SizeToPreferredSlmValueArray = std::array<SizeToPreferredSlmValue, 12>;
2831

2932
class ReleaseHelper {
3033
public:
@@ -60,6 +63,7 @@ class ReleaseHelper {
6063
virtual uint32_t getAdditionalExtraCaps() const = 0;
6164
virtual bool isLocalOnlyAllowed() const = 0;
6265
virtual bool isMidThreadPreemptionDisallowedForRayTracingKernels() const = 0;
66+
virtual const SizeToPreferredSlmValueArray &getSizeToPreferredSlmValue(bool isHeapless) const = 0;
6367

6468
protected:
6569
ReleaseHelper(HardwareIpVersion hardwareIpVersion) : hardwareIpVersion(hardwareIpVersion) {}
@@ -102,6 +106,7 @@ class ReleaseHelperHw : public ReleaseHelper {
102106
uint32_t getAdditionalExtraCaps() const override;
103107
bool isLocalOnlyAllowed() const override;
104108
bool isMidThreadPreemptionDisallowedForRayTracingKernels() const override;
109+
const SizeToPreferredSlmValueArray &getSizeToPreferredSlmValue(bool isHeapless) const override;
105110

106111
protected:
107112
ReleaseHelperHw(HardwareIpVersion hardwareIpVersion) : ReleaseHelper(hardwareIpVersion) {}

shared/source/release_helper/release_helper_base.inl

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -162,4 +162,10 @@ bool ReleaseHelperHw<releaseType>::isMidThreadPreemptionDisallowedForRayTracingK
162162
return false;
163163
}
164164

165+
template <ReleaseType releaseType>
166+
const SizeToPreferredSlmValueArray &ReleaseHelperHw<releaseType>::getSizeToPreferredSlmValue(bool isHeapless) const {
167+
static const SizeToPreferredSlmValueArray sizeToPreferredSlmValue = {};
168+
return sizeToPreferredSlmValue;
169+
}
170+
165171
} // namespace NEO

shared/test/common/mocks/mock_release_helper.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,5 +43,9 @@ class MockReleaseHelper : public ReleaseHelper {
4343
ADDMETHOD_CONST_NOBASE(getAdditionalExtraCaps, uint32_t, {}, ());
4444
ADDMETHOD_CONST_NOBASE(isLocalOnlyAllowed, bool, {}, ());
4545
ADDMETHOD_CONST_NOBASE(isMidThreadPreemptionDisallowedForRayTracingKernels, bool, false, ());
46+
const SizeToPreferredSlmValueArray &getSizeToPreferredSlmValue(bool isHeapless) const override {
47+
static SizeToPreferredSlmValueArray sizeToPreferredSlmValue = {};
48+
return sizeToPreferredSlmValue;
49+
}
4650
};
4751
} // namespace NEO

shared/test/unit_test/release_helper/release_helper_12_55_tests.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,11 @@ TEST_F(ReleaseHelper1255Tests, whenGettingAdditionalFp16AtomicCapabilitiesThenRe
7171
TEST_F(ReleaseHelper1255Tests, whenGettingAdditionalExtraKernelCapabilitiesThenReturnNoCapabilities) {
7272
whenGettingAdditionalExtraKernelCapabilitiesThenReturnNoCapabilities();
7373
}
74+
7475
TEST_F(ReleaseHelper1255Tests, whenIsLocalOnlyAllowedCalledThenTrueReturned) {
7576
whenIsLocalOnlyAllowedCalledThenTrueReturned();
7677
}
78+
79+
TEST_F(ReleaseHelper1255Tests, whenGettingPreferredSlmSizeThenAllEntriesEmpty) {
80+
whenGettingPreferredSlmSizeThenAllEntriesEmpty();
81+
}

shared/test/unit_test/release_helper/release_helper_12_56_tests.cpp

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,11 @@ TEST_F(ReleaseHelper1256Tests, whenGettingAdditionalFp16AtomicCapabilitiesThenRe
7171
TEST_F(ReleaseHelper1256Tests, whenGettingAdditionalExtraKernelCapabilitiesThenReturnNoCapabilities) {
7272
whenGettingAdditionalExtraKernelCapabilitiesThenReturnNoCapabilities();
7373
}
74+
7475
TEST_F(ReleaseHelper1256Tests, whenIsLocalOnlyAllowedCalledThenTrueReturned) {
7576
whenIsLocalOnlyAllowedCalledThenTrueReturned();
76-
}
77+
}
78+
79+
TEST_F(ReleaseHelper1256Tests, whenGettingPreferredSlmSizeThenAllEntriesEmpty) {
80+
whenGettingPreferredSlmSizeThenAllEntriesEmpty();
81+
}

shared/test/unit_test/release_helper/release_helper_12_57_tests.cpp

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,11 @@ TEST_F(ReleaseHelper1257Tests, whenGettingAdditionalFp16AtomicCapabilitiesThenRe
7171
TEST_F(ReleaseHelper1257Tests, whenGettingAdditionalExtraKernelCapabilitiesThenReturnNoCapabilities) {
7272
whenGettingAdditionalExtraKernelCapabilitiesThenReturnNoCapabilities();
7373
}
74+
7475
TEST_F(ReleaseHelper1257Tests, whenIsLocalOnlyAllowedCalledThenTrueReturned) {
7576
whenIsLocalOnlyAllowedCalledThenTrueReturned();
76-
}
77+
}
78+
79+
TEST_F(ReleaseHelper1257Tests, whenGettingPreferredSlmSizeThenAllEntriesEmpty) {
80+
whenGettingPreferredSlmSizeThenAllEntriesEmpty();
81+
}

shared/test/unit_test/release_helper/release_helper_12_60_tests.cpp

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,4 +55,8 @@ TEST_F(ReleaseHelper1260Tests, whenGettingAdditionalExtraKernelCapabilitiesThenR
5555

5656
TEST_F(ReleaseHelper1260Tests, whenIsLocalOnlyAllowedCalledThenTrueReturned) {
5757
whenIsLocalOnlyAllowedCalledThenTrueReturned();
58-
}
58+
}
59+
60+
TEST_F(ReleaseHelper1260Tests, whenGettingPreferredSlmSizeThenAllEntriesEmpty) {
61+
whenGettingPreferredSlmSizeThenAllEntriesEmpty();
62+
}

shared/test/unit_test/release_helper/release_helper_12_61_tests.cpp

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,4 +54,8 @@ TEST_F(ReleaseHelper1261Tests, whenGettingAdditionalExtraKernelCapabilitiesThenR
5454

5555
TEST_F(ReleaseHelper1261Tests, whenIsLocalOnlyAllowedCalledThenTrueReturned) {
5656
whenIsLocalOnlyAllowedCalledThenTrueReturned();
57-
}
57+
}
58+
59+
TEST_F(ReleaseHelper1261Tests, whenGettingPreferredSlmSizeThenAllEntriesEmpty) {
60+
whenGettingPreferredSlmSizeThenAllEntriesEmpty();
61+
}

shared/test/unit_test/release_helper/release_helper_12_70_tests.cpp

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,11 @@ TEST_F(ReleaseHelper1270Tests, whenGettingAdditionalFp16AtomicCapabilitiesThenRe
8686
TEST_F(ReleaseHelper1270Tests, whenGettingAdditionalExtraKernelCapabilitiesThenReturnNoCapabilities) {
8787
whenGettingAdditionalExtraKernelCapabilitiesThenReturnNoCapabilities();
8888
}
89+
8990
TEST_F(ReleaseHelper1270Tests, whenIsLocalOnlyAllowedCalledThenTrueReturned) {
9091
whenIsLocalOnlyAllowedCalledThenTrueReturned();
91-
}
92+
}
93+
94+
TEST_F(ReleaseHelper1270Tests, whenGettingPreferredSlmSizeThenAllEntriesEmpty) {
95+
whenGettingPreferredSlmSizeThenAllEntriesEmpty();
96+
}

shared/test/unit_test/release_helper/release_helper_12_71_tests.cpp

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,11 @@ TEST_F(ReleaseHelper1271Tests, whenGettingAdditionalFp16AtomicCapabilitiesThenRe
8787
TEST_F(ReleaseHelper1271Tests, whenGettingAdditionalExtraKernelCapabilitiesThenReturnNoCapabilities) {
8888
whenGettingAdditionalExtraKernelCapabilitiesThenReturnNoCapabilities();
8989
}
90+
9091
TEST_F(ReleaseHelper1271Tests, whenIsLocalOnlyAllowedCalledThenTrueReturned) {
9192
whenIsLocalOnlyAllowedCalledThenTrueReturned();
92-
}
93+
}
94+
95+
TEST_F(ReleaseHelper1271Tests, whenGettingPreferredSlmSizeThenAllEntriesEmpty) {
96+
whenGettingPreferredSlmSizeThenAllEntriesEmpty();
97+
}

shared/test/unit_test/release_helper/release_helper_12_74_tests.cpp

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,11 @@ TEST_F(ReleaseHelper1274Tests, whenGettingAdditionalFp16AtomicCapabilitiesThenRe
7070
TEST_F(ReleaseHelper1274Tests, whenGettingAdditionalExtraKernelCapabilitiesThenReturnNoCapabilities) {
7171
whenGettingAdditionalExtraKernelCapabilitiesThenReturnNoCapabilities();
7272
}
73+
7374
TEST_F(ReleaseHelper1274Tests, whenIsLocalOnlyAllowedCalledThenTrueReturned) {
7475
whenIsLocalOnlyAllowedCalledThenTrueReturned();
75-
}
76+
}
77+
78+
TEST_F(ReleaseHelper1274Tests, whenGettingPreferredSlmSizeThenAllEntriesEmpty) {
79+
whenGettingPreferredSlmSizeThenAllEntriesEmpty();
80+
}

shared/test/unit_test/release_helper/release_helper_20_01_tests.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,3 +74,7 @@ TEST_F(ReleaseHelper2001Tests, whenGettingAdditionalExtraKernelCapabilitiesThenR
7474
TEST_F(ReleaseHelper2001Tests, whenIsLocalOnlyAllowedCalledThenFalseReturned) {
7575
whenIsLocalOnlyAllowedCalledThenFalseReturned();
7676
}
77+
78+
TEST_F(ReleaseHelper2001Tests, whenGettingPreferredSlmSizeThenAllEntriesEmpty) {
79+
whenGettingPreferredSlmSizeThenAllEntriesEmpty();
80+
}

shared/test/unit_test/release_helper/release_helper_20_04_tests.cpp

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,11 @@ TEST_F(ReleaseHelper2004Tests, whenGettingAdditionalFp16AtomicCapabilitiesThenRe
9191
TEST_F(ReleaseHelper2004Tests, whenGettingAdditionalExtraKernelCapabilitiesThenReturnNoCapabilities) {
9292
whenGettingAdditionalExtraKernelCapabilitiesThenReturnNoCapabilities();
9393
}
94+
9495
TEST_F(ReleaseHelper2004Tests, whenIsLocalOnlyAllowedCalledThenFalseReturned) {
9596
whenIsLocalOnlyAllowedCalledThenFalseReturned();
96-
}
97+
}
98+
99+
TEST_F(ReleaseHelper2004Tests, whenGettingPreferredSlmSizeThenAllEntriesEmpty) {
100+
whenGettingPreferredSlmSizeThenAllEntriesEmpty();
101+
}

shared/test/unit_test/release_helper/release_helper_tests_base.cpp

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -120,4 +120,18 @@ void ReleaseHelperTestsBase::whenIsLocalOnlyAllowedCalledThenFalseReturned() {
120120

121121
EXPECT_FALSE(releaseHelper->isLocalOnlyAllowed());
122122
}
123-
}
123+
}
124+
125+
void ReleaseHelperTestsBase::whenGettingPreferredSlmSizeThenAllEntriesEmpty() {
126+
for (auto &revision : getRevisions()) {
127+
ipVersion.revision = revision;
128+
releaseHelper = ReleaseHelper::create(ipVersion);
129+
ASSERT_NE(nullptr, releaseHelper);
130+
131+
auto &preferredSlmValueArray = releaseHelper->getSizeToPreferredSlmValue(false);
132+
for (const auto &elem : preferredSlmValueArray) {
133+
EXPECT_EQ(0u, elem.upperLimit);
134+
EXPECT_EQ(0u, elem.valueToProgram);
135+
}
136+
}
137+
}

shared/test/unit_test/release_helper/release_helper_tests_base.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ struct ReleaseHelperTestsBase : public ::testing::Test {
3131
void whenGettingAdditionalExtraKernelCapabilitiesThenReturnNoCapabilities();
3232
void whenIsLocalOnlyAllowedCalledThenTrueReturned();
3333
void whenIsLocalOnlyAllowedCalledThenFalseReturned();
34-
34+
void whenGettingPreferredSlmSizeThenAllEntriesEmpty();
3535
virtual std::vector<uint32_t> getRevisions() = 0;
3636

3737
std::unique_ptr<ReleaseHelper> releaseHelper;

0 commit comments

Comments
 (0)