Enable Opencl 3.0 support on TGLLP

Related-To: NEO-4368

Change-Id: I59e015ee28d29eab4aaf8781ac1ffb3a9cde4d09
Signed-off-by: Filip Hazubski <filip.hazubski@intel.com>
This commit is contained in:
Filip Hazubski 2020-05-21 13:10:22 +02:00 committed by sys_ocldev
parent 8529775429
commit 41fef1c71e
5 changed files with 20 additions and 50 deletions

2
Jenkinsfile vendored
View File

@ -1,5 +1,5 @@
#!groovy
dependenciesRevision='2016dec18656a06fbc3608d55f91577f89936522-1414'
strategy='EQUAL'
allowedCD=257
allowedCD=256
allowedF=21

View File

@ -48,7 +48,7 @@ const RuntimeCapabilityTable TGLLP::capabilityTable{
PreemptionMode::ThreadGroup, // defaultPreemptionMode
aub_stream::ENGINE_CCS, // defaultEngineType
0, // maxRenderFrequency
21, // clVersionSupport
30, // clVersionSupport
CmdServicesMemTraceVersion::DeviceValues::Tgllp, // aubDeviceId
1, // extraQuantityThreadsPerEU
64, // slmSize

View File

@ -60,16 +60,13 @@ Program::Program(ExecutionEnvironment &executionEnvironment, Context *context, b
}
numDevices = 1;
char paramValue[32] = {};
bool force32BitAddressess = false;
if (pClDevice) {
pClDevice->getDeviceInfo(CL_DEVICE_VERSION, 32, paramValue, nullptr);
if (strstr(paramValue, "2.1")) {
auto areOcl21FeaturesEnabled = pClDevice->areOcl21FeaturesEnabled();
if (areOcl21FeaturesEnabled) {
internalOptions = "-ocl-version=210 ";
} else if (strstr(paramValue, "2.0")) {
internalOptions = "-ocl-version=200 ";
} else if (strstr(paramValue, "1.2")) {
} else {
internalOptions = "-ocl-version=120 ";
}
force32BitAddressess = pClDevice->getSharedDeviceInfo().force32BitAddressess;

View File

@ -14,10 +14,10 @@ using namespace NEO;
typedef Test<DeviceFixture> Gen12LpDeviceCaps;
GEN12LPTEST_F(Gen12LpDeviceCaps, reportsOcl21) {
TGLLPTEST_F(Gen12LpDeviceCaps, givenGen12LpDeviceWhenQueryingDeviceInfoThenOcl30IsReported) {
const auto &caps = pClDevice->getDeviceInfo();
EXPECT_STREQ("OpenCL 2.1 NEO ", caps.clVersion);
EXPECT_STREQ("OpenCL C 2.0 ", caps.clCVersion);
EXPECT_STREQ("OpenCL 3.0 NEO ", caps.clVersion);
EXPECT_STREQ("OpenCL C 3.0 ", caps.clCVersion);
}
TGLLPTEST_F(Gen12LpDeviceCaps, lpSkusDontSupportFP64) {

View File

@ -1555,54 +1555,33 @@ INSTANTIATE_TEST_CASE_P(ProgramFromSourceTests,
::testing::ValuesIn(KernelNames)));
TEST_F(ProgramTests, WhenProgramIsCreatedThenCorrectOclVersionIsInOptions) {
auto defaultSetting = DebugManager.flags.DisableStatelessToStatefulOptimization.get();
DebugManagerStateRestore restorer;
DebugManager.flags.DisableStatelessToStatefulOptimization.set(false);
MockProgram program(*pDevice->getExecutionEnvironment(), pContext, false, pDevice);
char paramValue[32];
pClDevice->getDeviceInfo(CL_DEVICE_VERSION, 32, paramValue, 0);
if (strstr(paramValue, "2.1")) {
if (pClDevice->areOcl21FeaturesEnabled()) {
EXPECT_TRUE(CompilerOptions::contains(program.getInternalOptions(), "-ocl-version=210")) << program.getInternalOptions();
} else if (strstr(paramValue, "2.0")) {
EXPECT_TRUE(CompilerOptions::contains(program.getInternalOptions(), "-ocl-version=200")) << program.getInternalOptions();
} else if (strstr(paramValue, "1.2")) {
EXPECT_TRUE(CompilerOptions::contains(program.getInternalOptions(), "-ocl-version=120")) << program.getInternalOptions();
} else {
EXPECT_TRUE(CompilerOptions::contains(program.getInternalOptions(), "-ocl-version=000")) << program.getInternalOptions();
EXPECT_TRUE(CompilerOptions::contains(program.getInternalOptions(), "-ocl-version=120")) << program.getInternalOptions();
}
DebugManager.flags.DisableStatelessToStatefulOptimization.set(defaultSetting);
}
TEST_F(ProgramTests, GivenForced20WhenProgramIsCreatedThenOcl20IsInOptions) {
auto defaultVersion = pClDevice->deviceInfo.clVersion;
pClDevice->deviceInfo.clVersion = "OpenCL 2.0";
TEST_F(ProgramTests, GivenOcl21FeaturesEnabledWhenProgramIsCreatedThenOcl21IsInOptions) {
pClDevice->ocl21FeaturesEnabled = true;
MockProgram program(*pDevice->getExecutionEnvironment(), pContext, false, pDevice);
char paramValue[32];
pClDevice->getDeviceInfo(CL_DEVICE_VERSION, 32, paramValue, 0);
EXPECT_STREQ("OpenCL 2.0", paramValue);
EXPECT_TRUE(CompilerOptions::contains(program.getInternalOptions(), "-ocl-version=200"));
pClDevice->deviceInfo.clVersion = defaultVersion;
EXPECT_TRUE(CompilerOptions::contains(program.getInternalOptions(), "-ocl-version=210"));
}
TEST_F(ProgramTests, GivenStatelessToStatefulIsDisabledWhenProgramIsCreatedThenGreaterThan4gbBuffersRequiredOptionIsSet) {
DebugManagerStateRestore restorer;
DebugManager.flags.DisableStatelessToStatefulOptimization.set(true);
MockProgram program(*pDevice->getExecutionEnvironment(), pContext, false, pDevice);
char paramValue[32];
pClDevice->getDeviceInfo(CL_DEVICE_VERSION, 32, paramValue, 0);
if (strstr(paramValue, "2.1")) {
if (pClDevice->areOcl21FeaturesEnabled()) {
EXPECT_TRUE(CompilerOptions::contains(program.getInternalOptions(), "-ocl-version=210")) << program.getInternalOptions();
EXPECT_TRUE(CompilerOptions::contains(program.getInternalOptions(), NEO::CompilerOptions::greaterThan4gbBuffersRequired));
} else if (strstr(paramValue, "2.0")) {
EXPECT_TRUE(CompilerOptions::contains(program.getInternalOptions(), "-ocl-version=200")) << program.getInternalOptions();
EXPECT_TRUE(CompilerOptions::contains(program.getInternalOptions(), NEO::CompilerOptions::greaterThan4gbBuffersRequired));
} else if (strstr(paramValue, "1.2")) {
EXPECT_TRUE(CompilerOptions::contains(program.getInternalOptions(), "-ocl-version=120")) << program.getInternalOptions();
EXPECT_TRUE(CompilerOptions::contains(program.getInternalOptions(), NEO::CompilerOptions::greaterThan4gbBuffersRequired));
} else {
EXPECT_TRUE(CompilerOptions::contains(program.getInternalOptions(), "-ocl-version=000")) << program.getInternalOptions();
EXPECT_TRUE(CompilerOptions::contains(program.getInternalOptions(), "-ocl-version=120")) << program.getInternalOptions();
EXPECT_TRUE(CompilerOptions::contains(program.getInternalOptions(), NEO::CompilerOptions::greaterThan4gbBuffersRequired));
}
}
@ -1658,16 +1637,10 @@ TEST_F(ProgramTests, GivenForce32BitAddressessWhenProgramIsCreatedThenGreaterTha
if (pDevice) {
const_cast<DeviceInfo *>(&pDevice->getDeviceInfo())->force32BitAddressess = true;
MockProgram program(*pDevice->getExecutionEnvironment(), pContext, false, pDevice);
char paramValue[32];
pClDevice->getDeviceInfo(CL_DEVICE_VERSION, 32, paramValue, 0);
if (strstr(paramValue, "2.1")) {
if (pClDevice->areOcl21FeaturesEnabled()) {
EXPECT_TRUE(CompilerOptions::contains(program.getInternalOptions(), "-ocl-version=210")) << program.getInternalOptions();
} else if (strstr(paramValue, "2.0")) {
EXPECT_TRUE(CompilerOptions::contains(program.getInternalOptions(), "-ocl-version=200")) << program.getInternalOptions();
} else if (strstr(paramValue, "1.2")) {
EXPECT_TRUE(CompilerOptions::contains(program.getInternalOptions(), "-ocl-version=120")) << program.getInternalOptions();
} else {
EXPECT_TRUE(CompilerOptions::contains(program.getInternalOptions(), "-ocl-version=000")) << program.getInternalOptions();
EXPECT_TRUE(CompilerOptions::contains(program.getInternalOptions(), "-ocl-version=120")) << program.getInternalOptions();
}
if (pDevice->areSharedSystemAllocationsAllowed()) {
EXPECT_TRUE(CompilerOptions::contains(program.getInternalOptions(), CompilerOptions::greaterThan4gbBuffersRequired)) << program.getInternalOptions();