@@ -29,29 +29,6 @@ using lzt::to_int;
29
29
using lzt::to_u32;
30
30
using lzt::to_u8;
31
31
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 ©_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
-
55
32
class zeCommandListAppendMemoryFillTests : public ::testing::Test {
56
33
protected:
57
34
void RunMaxMemoryFillTest (bool is_immediate, bool is_shared_system);
@@ -69,15 +46,20 @@ void zeCommandListAppendMemoryFillTests::
69
46
auto cmd_queue_group_props = get_command_queue_group_properties (
70
47
zeDevice::get_instance ()->get_device ());
71
48
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
+ auto compute_ordinal = lzt::get_queue_ordinal (
50
+ cmd_queue_group_props,
51
+ ZE_COMMAND_QUEUE_GROUP_PROPERTY_FLAG_COMPUTE |
52
+ ZE_COMMAND_QUEUE_GROUP_PROPERTY_FLAG_COOPERATIVE_KERNELS,
53
+ 0 );
54
+ auto copy_ordinal = lzt::get_queue_ordinal (
55
+ cmd_queue_group_props, ZE_COMMAND_QUEUE_GROUP_PROPERTY_FLAG_COPY,
56
+ ZE_COMMAND_QUEUE_GROUP_PROPERTY_FLAG_COMPUTE);
57
+ ASSERT_TRUE ((use_copy_engine && copy_ordinal) ||
58
+ (!use_copy_engine && compute_ordinal));
77
59
78
60
auto cmd_bundle = lzt::create_command_bundle (
79
61
lzt::get_default_context (), zeDevice::get_instance ()->get_device (), 0 ,
80
- to_u32 ( use_copy_engine ? copy_ordinal : compute_ordinal) , is_immediate);
62
+ use_copy_engine ? * copy_ordinal : * compute_ordinal, is_immediate);
81
63
const size_t size = 4096 ;
82
64
void *memory = lzt::allocate_device_memory_with_allocator_selector (
83
65
size, is_shared_system);
@@ -212,15 +194,20 @@ void zeCommandListAppendMemoryFillTests::
212
194
auto cmd_queue_group_props = get_command_queue_group_properties (
213
195
zeDevice::get_instance ()->get_device ());
214
196
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
+ auto compute_ordinal = lzt::get_queue_ordinal (
198
+ cmd_queue_group_props,
199
+ ZE_COMMAND_QUEUE_GROUP_PROPERTY_FLAG_COMPUTE |
200
+ ZE_COMMAND_QUEUE_GROUP_PROPERTY_FLAG_COOPERATIVE_KERNELS,
201
+ 0 );
202
+ auto copy_ordinal = lzt::get_queue_ordinal (
203
+ cmd_queue_group_props, ZE_COMMAND_QUEUE_GROUP_PROPERTY_FLAG_COPY,
204
+ ZE_COMMAND_QUEUE_GROUP_PROPERTY_FLAG_COMPUTE);
205
+ ASSERT_TRUE ((use_copy_engine && copy_ordinal) ||
206
+ (!use_copy_engine && compute_ordinal));
220
207
221
208
auto cmd_bundle = lzt::create_command_bundle (
222
209
lzt::get_default_context (), zeDevice::get_instance ()->get_device (), 0 ,
223
- to_u32 ( use_copy_engine ? copy_ordinal : compute_ordinal) , is_immediate);
210
+ use_copy_engine ? * copy_ordinal : * compute_ordinal, is_immediate);
224
211
const size_t size = 4096 ;
225
212
void *memory = lzt::allocate_device_memory_with_allocator_selector (
226
213
size, is_shared_system);
@@ -307,15 +294,20 @@ void zeCommandListAppendMemoryFillTests::
307
294
auto cmd_queue_group_props = get_command_queue_group_properties (
308
295
zeDevice::get_instance ()->get_device ());
309
296
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
+ auto compute_ordinal = lzt::get_queue_ordinal (
298
+ cmd_queue_group_props,
299
+ ZE_COMMAND_QUEUE_GROUP_PROPERTY_FLAG_COMPUTE |
300
+ ZE_COMMAND_QUEUE_GROUP_PROPERTY_FLAG_COOPERATIVE_KERNELS,
301
+ 0 );
302
+ auto copy_ordinal = lzt::get_queue_ordinal (
303
+ cmd_queue_group_props, ZE_COMMAND_QUEUE_GROUP_PROPERTY_FLAG_COPY,
304
+ ZE_COMMAND_QUEUE_GROUP_PROPERTY_FLAG_COMPUTE);
305
+ ASSERT_TRUE ((use_copy_engine && copy_ordinal) ||
306
+ (!use_copy_engine && compute_ordinal));
315
307
316
308
auto cmd_bundle = lzt::create_command_bundle (
317
309
lzt::get_default_context (), zeDevice::get_instance ()->get_device (), 0 ,
318
- to_u32 ( use_copy_engine ? copy_ordinal : compute_ordinal) , is_immediate);
310
+ use_copy_engine ? * copy_ordinal : * compute_ordinal, is_immediate);
319
311
const size_t size = 4096 ;
320
312
void *memory = lzt::allocate_device_memory_with_allocator_selector (
321
313
size, is_shared_system);
@@ -1367,15 +1359,20 @@ void zeCommandListAppendMemoryCopyTests::
1367
1359
auto cmd_queue_group_props = get_command_queue_group_properties (
1368
1360
zeDevice::get_instance ()->get_device ());
1369
1361
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
+ auto compute_ordinal = lzt::get_queue_ordinal (
1363
+ cmd_queue_group_props,
1364
+ ZE_COMMAND_QUEUE_GROUP_PROPERTY_FLAG_COMPUTE |
1365
+ ZE_COMMAND_QUEUE_GROUP_PROPERTY_FLAG_COOPERATIVE_KERNELS,
1366
+ 0 );
1367
+ auto copy_ordinal = lzt::get_queue_ordinal (
1368
+ cmd_queue_group_props, ZE_COMMAND_QUEUE_GROUP_PROPERTY_FLAG_COPY,
1369
+ ZE_COMMAND_QUEUE_GROUP_PROPERTY_FLAG_COMPUTE);
1370
+ ASSERT_TRUE ((use_copy_engine && copy_ordinal) ||
1371
+ (!use_copy_engine && compute_ordinal));
1375
1372
1376
1373
auto cmd_bundle = lzt::create_command_bundle (
1377
1374
lzt::get_default_context (), zeDevice::get_instance ()->get_device (), 0 ,
1378
- to_u32 ( use_copy_engine ? copy_ordinal : compute_ordinal) , is_immediate);
1375
+ use_copy_engine ? * copy_ordinal : * compute_ordinal, is_immediate);
1379
1376
1380
1377
const size_t size = 16 ;
1381
1378
const std::vector<char > host_memory (size, 123 );
@@ -1449,15 +1446,20 @@ void zeCommandListAppendMemoryCopyTests::
1449
1446
auto cmd_queue_group_props = get_command_queue_group_properties (
1450
1447
zeDevice::get_instance ()->get_device ());
1451
1448
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
+ auto compute_ordinal = lzt::get_queue_ordinal (
1450
+ cmd_queue_group_props,
1451
+ ZE_COMMAND_QUEUE_GROUP_PROPERTY_FLAG_COMPUTE |
1452
+ ZE_COMMAND_QUEUE_GROUP_PROPERTY_FLAG_COOPERATIVE_KERNELS,
1453
+ 0 );
1454
+ auto copy_ordinal = lzt::get_queue_ordinal (
1455
+ cmd_queue_group_props, ZE_COMMAND_QUEUE_GROUP_PROPERTY_FLAG_COPY,
1456
+ ZE_COMMAND_QUEUE_GROUP_PROPERTY_FLAG_COMPUTE);
1457
+ ASSERT_TRUE ((use_copy_engine && copy_ordinal) ||
1458
+ (!use_copy_engine && compute_ordinal));
1457
1459
1458
1460
auto cmd_bundle = lzt::create_command_bundle (
1459
1461
lzt::get_default_context (), zeDevice::get_instance ()->get_device (), 0 ,
1460
- to_u32 ( use_copy_engine ? copy_ordinal : compute_ordinal) , is_immediate);
1462
+ use_copy_engine ? * copy_ordinal : * compute_ordinal, is_immediate);
1461
1463
1462
1464
lzt::zeEventPool ep;
1463
1465
const size_t size = 16 ;
@@ -1543,15 +1545,20 @@ void zeCommandListAppendMemoryCopyTests::
1543
1545
auto cmd_queue_group_props = get_command_queue_group_properties (
1544
1546
zeDevice::get_instance ()->get_device ());
1545
1547
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
+ auto compute_ordinal = lzt::get_queue_ordinal (
1549
+ cmd_queue_group_props,
1550
+ ZE_COMMAND_QUEUE_GROUP_PROPERTY_FLAG_COMPUTE |
1551
+ ZE_COMMAND_QUEUE_GROUP_PROPERTY_FLAG_COOPERATIVE_KERNELS,
1552
+ 0 );
1553
+ auto copy_ordinal = lzt::get_queue_ordinal (
1554
+ cmd_queue_group_props, ZE_COMMAND_QUEUE_GROUP_PROPERTY_FLAG_COPY,
1555
+ ZE_COMMAND_QUEUE_GROUP_PROPERTY_FLAG_COMPUTE);
1556
+ ASSERT_TRUE ((use_copy_engine && copy_ordinal) ||
1557
+ (!use_copy_engine && compute_ordinal));
1551
1558
1552
1559
auto cmd_bundle = lzt::create_command_bundle (
1553
1560
lzt::get_default_context (), zeDevice::get_instance ()->get_device (), 0 ,
1554
- to_u32 ( use_copy_engine ? copy_ordinal : compute_ordinal) , is_immediate);
1561
+ use_copy_engine ? * copy_ordinal : * compute_ordinal, is_immediate);
1555
1562
1556
1563
lzt::zeEventPool ep;
1557
1564
const size_t size = 16 ;
0 commit comments