Skip to content

Commit 92da52d

Browse files
authored
[UR] Improve testing for gfx1100 on OpenCL (#17747)
The driver I have at least has a number of issues, the largest of which is that it lacks an IR compiler. This updates tests so that they are skipped if required.
1 parent 090a353 commit 92da52d

17 files changed

+104
-57
lines changed

unified-runtime/test/conformance/context/urContextSetExtendedDeleter.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@ UUR_INSTANTIATE_DEVICE_TEST_SUITE(urContextSetExtendedDeleterTest);
1414

1515
TEST_P(urContextSetExtendedDeleterTest, Success) {
1616
UUR_KNOWN_FAILURE_ON(uur::LevelZero{}, uur::LevelZeroV2{}, uur::NativeCPU{});
17+
// Segfault
18+
UUR_KNOWN_FAILURE_ON(uur::OpenCL{"gfx1100"});
1719

1820
bool called = false;
1921
{

unified-runtime/test/conformance/enqueue/urEnqueueEventsWaitMultiDevice.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ void checkDevicesSupportSharedUSM(
2020
uur::GetDeviceUSMSingleSharedSupport(device, shared_usm_single));
2121
if (!shared_usm_single) {
2222
GTEST_SKIP() << "Shared USM is not supported by the device.";
23+
return;
2324
}
2425
}
2526
}
@@ -31,7 +32,7 @@ struct urEnqueueEventsWaitMultiDeviceTest
3132

3233
UUR_RETURN_ON_FATAL_FAILURE(uur::urMultiQueueMultiDeviceTest<2>::SetUp());
3334

34-
checkDevicesSupportSharedUSM(devices);
35+
UUR_RETURN_ON_FATAL_FAILURE(checkDevicesSupportSharedUSM(devices));
3536

3637
ptrs.resize(devices.size());
3738
for (size_t i = 0; i < devices.size(); i++) {
@@ -129,7 +130,7 @@ struct urEnqueueEventsWaitMultiDeviceMTTest
129130
UUR_RETURN_ON_FATAL_FAILURE(
130131
uur::urMultiQueueMultiDeviceTestWithParam<8,
131132
uur::BoolTestParam>::SetUp());
132-
checkDevicesSupportSharedUSM(devices);
133+
UUR_RETURN_ON_FATAL_FAILURE(checkDevicesSupportSharedUSM(devices));
133134

134135
ptrs.resize(devices.size());
135136
for (size_t i = 0; i < devices.size(); i++) {

unified-runtime/test/conformance/enqueue/urEnqueueKernelLaunch.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -529,8 +529,9 @@ struct urEnqueueKernelLaunchMultiDeviceTest
529529

530530
uur::KernelsEnvironment::instance->LoadSource("foo", platform, il_binary);
531531

532-
ASSERT_SUCCESS(uur::KernelsEnvironment::instance->CreateProgram(
533-
platform, context, devices[0], *il_binary, nullptr, &program));
532+
UUR_RETURN_ON_FATAL_FAILURE(
533+
uur::KernelsEnvironment::instance->CreateProgram(
534+
platform, context, devices[0], *il_binary, nullptr, &program));
534535

535536
ASSERT_SUCCESS(urProgramBuild(context, program, nullptr));
536537
ASSERT_SUCCESS(urKernelCreate(program, kernelName.data(), &kernel));

unified-runtime/test/conformance/enqueue/urEnqueueKernelLaunchAndMemcpyInOrder.cpp

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -65,9 +65,10 @@ struct urMultiQueueLaunchMemcpyTest
6565
metadatas.empty() ? nullptr : metadatas.data()};
6666

6767
uur::raii::Program program;
68-
ASSERT_SUCCESS(uur::KernelsEnvironment::instance->CreateProgram(
69-
platform, context, devices[i], *il_binary, &properties,
70-
&programs[i]));
68+
UUR_RETURN_ON_FATAL_FAILURE(
69+
uur::KernelsEnvironment::instance->CreateProgram(
70+
platform, context, devices[i], *il_binary, &properties,
71+
&programs[i]));
7172

7273
UUR_ASSERT_SUCCESS_OR_UNSUPPORTED(
7374
urProgramBuild(context, programs[i], nullptr));

unified-runtime/test/conformance/exp_command_buffer/fixtures.h

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -246,8 +246,9 @@ struct TestKernel {
246246
UR_STRUCTURE_TYPE_PROGRAM_PROPERTIES, nullptr,
247247
static_cast<uint32_t>(Metadatas.size()),
248248
Metadatas.empty() ? nullptr : Metadatas.data()};
249-
ASSERT_SUCCESS(uur::KernelsEnvironment::instance->CreateProgram(
250-
Platform, Context, Device, *ILBinary, &Properties, &Program));
249+
UUR_RETURN_ON_FATAL_FAILURE(
250+
uur::KernelsEnvironment::instance->CreateProgram(
251+
Platform, Context, Device, *ILBinary, &Properties, &Program));
251252

252253
auto KernelNames =
253254
uur::KernelsEnvironment::instance->GetEntryPointNames(Name);

unified-runtime/test/conformance/kernel/urKernelCreate.cpp

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -74,8 +74,10 @@ TEST_P(urMultiDeviceKernelCreateTest, WithProgramBuild) {
7474

7575
const ur_program_properties_t properties = {
7676
UR_STRUCTURE_TYPE_PROGRAM_PROPERTIES, nullptr, 0, nullptr};
77-
ASSERT_SUCCESS(uur::KernelsEnvironment::instance->CreateProgram(
78-
platform, context, devices[i], *il_binary, &properties, program.ptr()));
77+
UUR_RETURN_ON_FATAL_FAILURE(
78+
uur::KernelsEnvironment::instance->CreateProgram(
79+
platform, context, devices[i], *il_binary, &properties,
80+
program.ptr()));
7981

8082
ASSERT_SUCCESS(urProgramBuild(context, program.get(), nullptr));
8183
ASSERT_SUCCESS(
@@ -107,8 +109,10 @@ TEST_P(urMultiDeviceKernelCreateTest, WithProgramCompileAndLink) {
107109

108110
const ur_program_properties_t properties = {
109111
UR_STRUCTURE_TYPE_PROGRAM_PROPERTIES, nullptr, 0, nullptr};
110-
ASSERT_SUCCESS(uur::KernelsEnvironment::instance->CreateProgram(
111-
platform, context, devices[i], *il_binary, &properties, program.ptr()));
112+
UUR_RETURN_ON_FATAL_FAILURE(
113+
uur::KernelsEnvironment::instance->CreateProgram(
114+
platform, context, devices[i], *il_binary, &properties,
115+
program.ptr()));
112116

113117
ASSERT_SUCCESS(urProgramCompile(context, program.get(), nullptr));
114118

unified-runtime/test/conformance/memory-migrate/urMemBufferMigrateAcrossDevices.cpp

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -71,9 +71,10 @@ struct urMultiDeviceContextMemBufferTest : urMultiDeviceContextTest {
7171
static_cast<uint32_t>(metadatas.size()),
7272
metadatas.empty() ? nullptr : metadatas.data()};
7373
for (auto i = 0u; i < num_devices; ++i) {
74-
ASSERT_SUCCESS(uur::KernelsEnvironment::instance->CreateProgram(
75-
platform, context, devices[i], *il_binary, &properties,
76-
&programs[i]));
74+
UUR_RETURN_ON_FATAL_FAILURE(
75+
uur::KernelsEnvironment::instance->CreateProgram(
76+
platform, context, devices[i], *il_binary, &properties,
77+
&programs[i]));
7778
ASSERT_SUCCESS(urProgramBuild(context, programs[i], nullptr));
7879
auto kernel_names =
7980
uur::KernelsEnvironment::instance->GetEntryPointNames(program_name);

unified-runtime/test/conformance/memory/urMemBufferPartition.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,8 @@ TEST_P(urMemBufferPartitionTest, InvalidBufferSize) {
100100

101101
TEST_P(urMemBufferPartitionTest, InvalidValueCreateType) {
102102
UUR_KNOWN_FAILURE_ON(uur::LevelZero{}, uur::NativeCPU{});
103+
// Seems to report "success"
104+
UUR_KNOWN_FAILURE_ON(uur::OpenCL{"gfx1100"});
103105

104106
// create a read only buffer
105107
uur::raii::Mem ro_buffer = nullptr;

unified-runtime/test/conformance/memory/urMemImageCreateWithImageFormatParam.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,9 @@ TEST_P(urMemImageCreateTestWithImageFormatParam, Success) {
100100
UUR_KNOWN_FAILURE_ON(uur::NativeCPU{});
101101
// See https://github.com/oneapi-src/unified-runtime/issues/2638
102102
UUR_KNOWN_FAILURE_ON(uur::OpenCL{"Intel(R) UHD Graphics 770"});
103+
// Reports INVALID_IMAGE_FORMAT_DESCRIPTOR rather than
104+
// UNSUPPORTED_IMAGE_FORMAT
105+
UUR_KNOWN_FAILURE_ON(uur::OpenCL{"gfx1100"});
103106

104107
ur_image_channel_order_t channel_order = std::get<1>(GetParam()).channelOrder;
105108
ur_image_channel_type_t channel_type = std::get<1>(GetParam()).channelType;

unified-runtime/test/conformance/program/urProgramCreateWithIL.cpp

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -34,17 +34,17 @@ struct urProgramCreateWithILTest : uur::urContextTest {
3434
UUR_INSTANTIATE_DEVICE_TEST_SUITE(urProgramCreateWithILTest);
3535

3636
TEST_P(urProgramCreateWithILTest, Success) {
37-
UUR_KNOWN_FAILURE_ON(uur::CUDA{});
37+
UUR_KNOWN_FAILURE_ON(uur::CUDA{}, uur::OpenCL{"gfx1100"});
3838

3939
ur_program_handle_t program = nullptr;
40-
ASSERT_SUCCESS(urProgramCreateWithIL(context, il_binary->data(),
41-
il_binary->size(), nullptr, &program));
40+
UUR_ASSERT_SUCCESS_OR_UNSUPPORTED(urProgramCreateWithIL(
41+
context, il_binary->data(), il_binary->size(), nullptr, &program));
4242
ASSERT_NE(nullptr, program);
4343
ASSERT_SUCCESS(urProgramRelease(program));
4444
}
4545

4646
TEST_P(urProgramCreateWithILTest, SuccessWithProperties) {
47-
UUR_KNOWN_FAILURE_ON(uur::CUDA{});
47+
UUR_KNOWN_FAILURE_ON(uur::CUDA{}, uur::OpenCL{"gfx1100"});
4848

4949
std::string string = "test metadata";
5050
ur_program_metadata_value_t md_value_string;
@@ -80,7 +80,7 @@ TEST_P(urProgramCreateWithILTest, SuccessWithProperties) {
8080
static_cast<uint32_t>(metadatas.size()), metadatas.data()};
8181

8282
ur_program_handle_t program = nullptr;
83-
ASSERT_SUCCESS(urProgramCreateWithIL(
83+
UUR_ASSERT_SUCCESS_OR_UNSUPPORTED(urProgramCreateWithIL(
8484
context, il_binary->data(), il_binary->size(), &properties, &program));
8585
ASSERT_NE(nullptr, program);
8686
ASSERT_SUCCESS(urProgramRelease(program));
@@ -140,7 +140,8 @@ TEST_P(urProgramCreateWithILTest, InvalidBinary) {
140140
auto result = urProgramCreateWithIL(context, &binary, 5, nullptr, &program);
141141
// The driver is not required to reject the binary
142142
ASSERT_TRUE(result == UR_RESULT_ERROR_INVALID_BINARY ||
143-
result == UR_RESULT_SUCCESS);
143+
result == UR_RESULT_SUCCESS ||
144+
result == UR_RESULT_ERROR_COMPILER_NOT_AVAILABLE);
144145
}
145146

146147
TEST_P(urProgramCreateWithILTest, CompilerNotAvailable) {

0 commit comments

Comments
 (0)