Skip to content

Commit a9ec77f

Browse files
Add scenarios using BCS to image SVM tests (#301)
* Add scenarios using BCS to image SVM tests - Added new scenarios - Refactored code for choosing queue ordinals Signed-off-by: Misiak, Konstanty <konstanty.misiak@intel.com>
1 parent f6ab42a commit a9ec77f

File tree

5 files changed

+400
-92
lines changed

5 files changed

+400
-92
lines changed

conformance_tests/core/test_copy/src/test_copy.cpp

Lines changed: 66 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -29,29 +29,6 @@ using lzt::to_int;
2929
using lzt::to_u32;
3030
using lzt::to_u8;
3131

32-
void get_copy_and_compute_ordinals(
33-
const std::vector<ze_command_queue_group_properties_t>
34-
&cmd_queue_group_props,
35-
int &compute_ordinal, int &copy_ordinal) {
36-
for (uint32_t i = 0; i < cmd_queue_group_props.size(); i++) {
37-
if (cmd_queue_group_props[i].flags &
38-
ZE_COMMAND_QUEUE_GROUP_PROPERTY_FLAG_COMPUTE &&
39-
compute_ordinal < 0) {
40-
compute_ordinal = to_int(i);
41-
}
42-
if (cmd_queue_group_props[i].flags &
43-
ZE_COMMAND_QUEUE_GROUP_PROPERTY_FLAG_COPY &&
44-
!(cmd_queue_group_props[i].flags &
45-
ZE_COMMAND_QUEUE_GROUP_PROPERTY_FLAG_COMPUTE) &&
46-
copy_ordinal < 0) {
47-
copy_ordinal = to_int(i);
48-
}
49-
if (compute_ordinal >= 0 && copy_ordinal >= 0) {
50-
break;
51-
}
52-
}
53-
}
54-
5532
class zeCommandListAppendMemoryFillTests : public ::testing::Test {
5633
protected:
5734
void RunMaxMemoryFillTest(bool is_immediate, bool is_shared_system);
@@ -69,15 +46,20 @@ void zeCommandListAppendMemoryFillTests::
6946
auto cmd_queue_group_props = get_command_queue_group_properties(
7047
zeDevice::get_instance()->get_device());
7148

72-
int compute_ordinal = -1, copy_ordinal = -1;
73-
get_copy_and_compute_ordinals(cmd_queue_group_props, compute_ordinal,
74-
copy_ordinal);
75-
ASSERT_TRUE((use_copy_engine && copy_ordinal >= 0) ||
76-
(!use_copy_engine && compute_ordinal >= 0));
49+
const ze_command_queue_group_property_flags_t queue_group_flags_set =
50+
use_copy_engine
51+
? ZE_COMMAND_QUEUE_GROUP_PROPERTY_FLAG_COPY
52+
: (ZE_COMMAND_QUEUE_GROUP_PROPERTY_FLAG_COMPUTE |
53+
ZE_COMMAND_QUEUE_GROUP_PROPERTY_FLAG_COOPERATIVE_KERNELS);
54+
const ze_command_queue_group_property_flags_t queue_group_flags_not_set =
55+
use_copy_engine ? ZE_COMMAND_QUEUE_GROUP_PROPERTY_FLAG_COMPUTE : 0;
56+
auto ordinal = lzt::get_queue_ordinal(
57+
cmd_queue_group_props, queue_group_flags_set, queue_group_flags_not_set);
58+
ASSERT_TRUE(ordinal);
7759

7860
auto cmd_bundle = lzt::create_command_bundle(
7961
lzt::get_default_context(), zeDevice::get_instance()->get_device(), 0,
80-
to_u32(use_copy_engine ? copy_ordinal : compute_ordinal), is_immediate);
62+
*ordinal, is_immediate);
8163
const size_t size = 4096;
8264
void *memory = lzt::allocate_device_memory_with_allocator_selector(
8365
size, is_shared_system);
@@ -212,15 +194,20 @@ void zeCommandListAppendMemoryFillTests::
212194
auto cmd_queue_group_props = get_command_queue_group_properties(
213195
zeDevice::get_instance()->get_device());
214196

215-
int compute_ordinal = -1, copy_ordinal = -1;
216-
get_copy_and_compute_ordinals(cmd_queue_group_props, compute_ordinal,
217-
copy_ordinal);
218-
ASSERT_TRUE((use_copy_engine && copy_ordinal >= 0) ||
219-
(!use_copy_engine && compute_ordinal >= 0));
197+
const ze_command_queue_group_property_flags_t queue_group_flags_set =
198+
use_copy_engine
199+
? ZE_COMMAND_QUEUE_GROUP_PROPERTY_FLAG_COPY
200+
: (ZE_COMMAND_QUEUE_GROUP_PROPERTY_FLAG_COMPUTE |
201+
ZE_COMMAND_QUEUE_GROUP_PROPERTY_FLAG_COOPERATIVE_KERNELS);
202+
const ze_command_queue_group_property_flags_t queue_group_flags_not_set =
203+
use_copy_engine ? ZE_COMMAND_QUEUE_GROUP_PROPERTY_FLAG_COMPUTE : 0;
204+
auto ordinal = lzt::get_queue_ordinal(
205+
cmd_queue_group_props, queue_group_flags_set, queue_group_flags_not_set);
206+
ASSERT_TRUE(ordinal);
220207

221208
auto cmd_bundle = lzt::create_command_bundle(
222209
lzt::get_default_context(), zeDevice::get_instance()->get_device(), 0,
223-
to_u32(use_copy_engine ? copy_ordinal : compute_ordinal), is_immediate);
210+
*ordinal, is_immediate);
224211
const size_t size = 4096;
225212
void *memory = lzt::allocate_device_memory_with_allocator_selector(
226213
size, is_shared_system);
@@ -307,15 +294,20 @@ void zeCommandListAppendMemoryFillTests::
307294
auto cmd_queue_group_props = get_command_queue_group_properties(
308295
zeDevice::get_instance()->get_device());
309296

310-
int compute_ordinal = -1, copy_ordinal = -1;
311-
get_copy_and_compute_ordinals(cmd_queue_group_props, compute_ordinal,
312-
copy_ordinal);
313-
ASSERT_TRUE((use_copy_engine && copy_ordinal >= 0) ||
314-
(!use_copy_engine && compute_ordinal >= 0));
297+
const ze_command_queue_group_property_flags_t queue_group_flags_set =
298+
use_copy_engine
299+
? ZE_COMMAND_QUEUE_GROUP_PROPERTY_FLAG_COPY
300+
: (ZE_COMMAND_QUEUE_GROUP_PROPERTY_FLAG_COMPUTE |
301+
ZE_COMMAND_QUEUE_GROUP_PROPERTY_FLAG_COOPERATIVE_KERNELS);
302+
const ze_command_queue_group_property_flags_t queue_group_flags_not_set =
303+
use_copy_engine ? ZE_COMMAND_QUEUE_GROUP_PROPERTY_FLAG_COMPUTE : 0;
304+
auto ordinal = lzt::get_queue_ordinal(
305+
cmd_queue_group_props, queue_group_flags_set, queue_group_flags_not_set);
306+
ASSERT_TRUE(ordinal);
315307

316308
auto cmd_bundle = lzt::create_command_bundle(
317309
lzt::get_default_context(), zeDevice::get_instance()->get_device(), 0,
318-
to_u32(use_copy_engine ? copy_ordinal : compute_ordinal), is_immediate);
310+
*ordinal, is_immediate);
319311
const size_t size = 4096;
320312
void *memory = lzt::allocate_device_memory_with_allocator_selector(
321313
size, is_shared_system);
@@ -1367,15 +1359,20 @@ void zeCommandListAppendMemoryCopyTests::
13671359
auto cmd_queue_group_props = get_command_queue_group_properties(
13681360
zeDevice::get_instance()->get_device());
13691361

1370-
int compute_ordinal = -1, copy_ordinal = -1;
1371-
get_copy_and_compute_ordinals(cmd_queue_group_props, compute_ordinal,
1372-
copy_ordinal);
1373-
ASSERT_TRUE((use_copy_engine && copy_ordinal >= 0) ||
1374-
(!use_copy_engine && compute_ordinal >= 0));
1362+
const ze_command_queue_group_property_flags_t queue_group_flags_set =
1363+
use_copy_engine
1364+
? ZE_COMMAND_QUEUE_GROUP_PROPERTY_FLAG_COPY
1365+
: (ZE_COMMAND_QUEUE_GROUP_PROPERTY_FLAG_COMPUTE |
1366+
ZE_COMMAND_QUEUE_GROUP_PROPERTY_FLAG_COOPERATIVE_KERNELS);
1367+
const ze_command_queue_group_property_flags_t queue_group_flags_not_set =
1368+
use_copy_engine ? ZE_COMMAND_QUEUE_GROUP_PROPERTY_FLAG_COMPUTE : 0;
1369+
auto ordinal = lzt::get_queue_ordinal(
1370+
cmd_queue_group_props, queue_group_flags_set, queue_group_flags_not_set);
1371+
ASSERT_TRUE(ordinal);
13751372

13761373
auto cmd_bundle = lzt::create_command_bundle(
13771374
lzt::get_default_context(), zeDevice::get_instance()->get_device(), 0,
1378-
to_u32(use_copy_engine ? copy_ordinal : compute_ordinal), is_immediate);
1375+
*ordinal, is_immediate);
13791376

13801377
const size_t size = 16;
13811378
const std::vector<char> host_memory(size, 123);
@@ -1449,15 +1446,20 @@ void zeCommandListAppendMemoryCopyTests::
14491446
auto cmd_queue_group_props = get_command_queue_group_properties(
14501447
zeDevice::get_instance()->get_device());
14511448

1452-
int compute_ordinal = -1, copy_ordinal = -1;
1453-
get_copy_and_compute_ordinals(cmd_queue_group_props, compute_ordinal,
1454-
copy_ordinal);
1455-
ASSERT_TRUE((use_copy_engine && copy_ordinal >= 0) ||
1456-
(!use_copy_engine && compute_ordinal >= 0));
1449+
const ze_command_queue_group_property_flags_t queue_group_flags_set =
1450+
use_copy_engine
1451+
? ZE_COMMAND_QUEUE_GROUP_PROPERTY_FLAG_COPY
1452+
: (ZE_COMMAND_QUEUE_GROUP_PROPERTY_FLAG_COMPUTE |
1453+
ZE_COMMAND_QUEUE_GROUP_PROPERTY_FLAG_COOPERATIVE_KERNELS);
1454+
const ze_command_queue_group_property_flags_t queue_group_flags_not_set =
1455+
use_copy_engine ? ZE_COMMAND_QUEUE_GROUP_PROPERTY_FLAG_COMPUTE : 0;
1456+
auto ordinal = lzt::get_queue_ordinal(
1457+
cmd_queue_group_props, queue_group_flags_set, queue_group_flags_not_set);
1458+
ASSERT_TRUE(ordinal);
14571459

14581460
auto cmd_bundle = lzt::create_command_bundle(
14591461
lzt::get_default_context(), zeDevice::get_instance()->get_device(), 0,
1460-
to_u32(use_copy_engine ? copy_ordinal : compute_ordinal), is_immediate);
1462+
*ordinal, is_immediate);
14611463

14621464
lzt::zeEventPool ep;
14631465
const size_t size = 16;
@@ -1543,15 +1545,20 @@ void zeCommandListAppendMemoryCopyTests::
15431545
auto cmd_queue_group_props = get_command_queue_group_properties(
15441546
zeDevice::get_instance()->get_device());
15451547

1546-
int compute_ordinal = -1, copy_ordinal = -1;
1547-
get_copy_and_compute_ordinals(cmd_queue_group_props, compute_ordinal,
1548-
copy_ordinal);
1549-
ASSERT_TRUE((use_copy_engine && copy_ordinal >= 0) ||
1550-
(!use_copy_engine && compute_ordinal >= 0));
1548+
const ze_command_queue_group_property_flags_t queue_group_flags_set =
1549+
use_copy_engine
1550+
? ZE_COMMAND_QUEUE_GROUP_PROPERTY_FLAG_COPY
1551+
: (ZE_COMMAND_QUEUE_GROUP_PROPERTY_FLAG_COMPUTE |
1552+
ZE_COMMAND_QUEUE_GROUP_PROPERTY_FLAG_COOPERATIVE_KERNELS);
1553+
const ze_command_queue_group_property_flags_t queue_group_flags_not_set =
1554+
use_copy_engine ? ZE_COMMAND_QUEUE_GROUP_PROPERTY_FLAG_COMPUTE : 0;
1555+
auto ordinal = lzt::get_queue_ordinal(
1556+
cmd_queue_group_props, queue_group_flags_set, queue_group_flags_not_set);
1557+
ASSERT_TRUE(ordinal);
15511558

15521559
auto cmd_bundle = lzt::create_command_bundle(
15531560
lzt::get_default_context(), zeDevice::get_instance()->get_device(), 0,
1554-
to_u32(use_copy_engine ? copy_ordinal : compute_ordinal), is_immediate);
1561+
*ordinal, is_immediate);
15551562

15561563
lzt::zeEventPool ep;
15571564
const size_t size = 16;

0 commit comments

Comments
 (0)