Skip to content

Commit d007147

Browse files
committed
Refactor Level Zero utils in tests
1 parent 55dc026 commit d007147

File tree

6 files changed

+57
-62
lines changed

6 files changed

+57
-62
lines changed

src/utils/utils_level_zero.cpp

Lines changed: 1 addition & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -344,12 +344,6 @@ int utils_ze_get_drivers(uint32_t *drivers_num_,
344344
ze_driver_handle_t *drivers = NULL;
345345
uint32_t drivers_num = 0;
346346

347-
ret = utils_ze_init_level_zero();
348-
if (ret != 0) {
349-
fprintf(stderr, "utils_ze_init_level_zero() failed!\n");
350-
goto init_fail;
351-
}
352-
353347
ze_result = libze_ops.zeDriverGet(&drivers_num, NULL);
354348
if (ze_result != ZE_RESULT_SUCCESS) {
355349
fprintf(stderr, "zeDriverGet() failed!\n");
@@ -386,7 +380,6 @@ int utils_ze_get_drivers(uint32_t *drivers_num_,
386380
*drivers_ = NULL;
387381
}
388382

389-
init_fail:
390383
return ret;
391384
}
392385

@@ -397,12 +390,6 @@ int utils_ze_get_devices(ze_driver_handle_t driver, uint32_t *devices_num_,
397390
uint32_t devices_num = 0;
398391
ze_device_handle_t *devices = NULL;
399392

400-
ret = utils_ze_init_level_zero();
401-
if (ret != 0) {
402-
fprintf(stderr, "utils_ze_init_level_zero() failed!\n");
403-
goto init_fail;
404-
}
405-
406393
ze_result = libze_ops.zeDeviceGet(driver, &devices_num, NULL);
407394
if (ze_result != ZE_RESULT_SUCCESS) {
408395
fprintf(stderr, "zeDeviceGet() failed!\n");
@@ -438,7 +425,7 @@ int utils_ze_get_devices(ze_driver_handle_t driver, uint32_t *devices_num_,
438425
free(devices);
439426
devices = NULL;
440427
}
441-
init_fail:
428+
442429
return ret;
443430
}
444431

src/utils/utils_level_zero.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@
1616
extern "C" {
1717
#endif
1818

19-
int utils_ze_init_level_zero(void);
2019
int utils_ze_init_level_zero(void);
2120

2221
int utils_ze_get_drivers(uint32_t *drivers_num_, ze_driver_handle_t **drivers_);

test/ipcFixtures.hpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121

2222
class MemoryAccessor {
2323
public:
24+
virtual ~MemoryAccessor() = default;
2425
virtual void fill(void *ptr, size_t size, const void *pattern,
2526
size_t pattern_size) = 0;
2627
virtual void copy(void *dst_ptr, void *src_ptr, size_t size) = 0;

test/providers/ipc_level_zero_prov_consumer.c

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (C) 2024 Intel Corporation
2+
* Copyright (C) 2024-2025 Intel Corporation
33
*
44
* Under the Apache License v2.0 with LLVM Exceptions. See LICENSE.TXT.
55
* SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
@@ -27,7 +27,13 @@ int main(int argc, char *argv[]) {
2727
ze_device_handle_t hDevice = NULL;
2828
ze_context_handle_t hContext = NULL;
2929

30-
int ret = utils_ze_find_driver_with_gpu(&driver_idx, &hDriver);
30+
int ret = utils_ze_init_level_zero();
31+
if (ret != 0) {
32+
fprintf(stderr, "utils_ze_init_level_zero() failed!\n");
33+
return -1;
34+
}
35+
36+
ret = utils_ze_find_driver_with_gpu(&driver_idx, &hDriver);
3137
if (ret != 0 || hDriver == NULL) {
3238
fprintf(stderr, "utils_ze_find_driver_with_gpu() failed!\n");
3339
return -1;

test/providers/ipc_level_zero_prov_producer.c

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (C) 2024 Intel Corporation
2+
* Copyright (C) 2024-2025 Intel Corporation
33
*
44
* Under the Apache License v2.0 with LLVM Exceptions. See LICENSE.TXT.
55
* SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
@@ -27,7 +27,13 @@ int main(int argc, char *argv[]) {
2727
ze_device_handle_t hDevice = NULL;
2828
ze_context_handle_t hContext = NULL;
2929

30-
int ret = utils_ze_find_driver_with_gpu(&driver_idx, &hDriver);
30+
int ret = utils_ze_init_level_zero();
31+
if (ret != 0) {
32+
fprintf(stderr, "utils_ze_init_level_zero() failed!\n");
33+
return -1;
34+
}
35+
36+
ret = utils_ze_find_driver_with_gpu(&driver_idx, &hDriver);
3137
if (ret != 0 || hDriver == NULL) {
3238
fprintf(stderr, "utils_ze_find_driver_with_gpu() failed!\n");
3339
return -1;

test/providers/provider_level_zero.cpp

Lines changed: 39 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,13 @@ class LevelZeroTestHelper {
4242
LevelZeroTestHelper::LevelZeroTestHelper() {
4343
uint32_t driver_idx = 0;
4444

45-
int ret = utils_ze_find_driver_with_gpu(&driver_idx, &hDriver_);
45+
int ret = utils_ze_init_level_zero();
46+
if (ret != 0) {
47+
fprintf(stderr, "utils_ze_init_level_zero() failed!\n");
48+
return;
49+
}
50+
51+
ret = utils_ze_find_driver_with_gpu(&driver_idx, &hDriver_);
4652
if (ret != 0 || hDriver_ == NULL) {
4753
fprintf(stderr, "utils_ze_find_driver_with_gpu() failed!\n");
4854
return;
@@ -93,6 +99,11 @@ create_level_zero_prov_params(ze_context_handle_t context,
9399
return params;
94100
}
95101

102+
umf_result_t destroyL0Params(void *params) {
103+
return umfLevelZeroMemoryProviderParamsDestroy(
104+
static_cast<umf_level_zero_memory_provider_params_handle_t>(params));
105+
}
106+
96107
struct LevelZeroProviderInit
97108
: public test,
98109
public ::testing::WithParamInterface<umf_usm_memory_type_t> {};
@@ -225,44 +236,43 @@ class LevelZeroMemoryAccessor : public MemoryAccessor {
225236
ze_context_handle_t hContext_;
226237
};
227238

228-
typedef void *(*pfnProviderParamsCreate)();
229-
typedef umf_result_t (*pfnProviderParamsDestroy)(void *);
230-
231-
using LevelZeroProviderTestParams =
232-
std::tuple<pfnProviderParamsCreate, pfnProviderParamsDestroy,
233-
ze_context_handle_t, umf_usm_memory_type_t, MemoryAccessor *>;
234-
235239
struct umfLevelZeroProviderTest
236240
: umf_test::test,
237-
::testing::WithParamInterface<LevelZeroProviderTestParams> {
241+
::testing::WithParamInterface<umf_usm_memory_type_t> {
238242

239243
void SetUp() override {
240244
test::SetUp();
241245

242-
auto [params_create, params_destroy, ze_context, memory_type,
243-
accessor] = this->GetParam();
246+
umf_usm_memory_type_t memory_type = this->GetParam();
244247

245248
params = nullptr;
246-
if (params_create) {
247-
params =
248-
(umf_level_zero_memory_provider_params_handle_t)params_create();
249-
}
250-
paramsDestroy = params_destroy;
251-
252-
memAccessor = accessor;
253-
hContext = ze_context;
249+
memAccessor = nullptr;
250+
hContext = l0TestHelper.get_test_context();
254251

255252
ASSERT_NE(hContext, nullptr);
256253

257254
switch (memory_type) {
258255
case UMF_MEMORY_TYPE_DEVICE:
259256
zeMemoryTypeExpected = ZE_MEMORY_TYPE_DEVICE;
257+
params = create_level_zero_prov_params(
258+
l0TestHelper.get_test_context(), l0TestHelper.get_test_device(),
259+
memory_type);
260+
memAccessor = std::make_unique<LevelZeroMemoryAccessor>(
261+
l0TestHelper.get_test_context(),
262+
l0TestHelper.get_test_device());
260263
break;
261264
case UMF_MEMORY_TYPE_SHARED:
262265
zeMemoryTypeExpected = ZE_MEMORY_TYPE_SHARED;
266+
params = create_level_zero_prov_params(
267+
l0TestHelper.get_test_context(), l0TestHelper.get_test_device(),
268+
memory_type);
269+
memAccessor = std::make_unique<HostMemoryAccessor>();
263270
break;
264271
case UMF_MEMORY_TYPE_HOST:
265272
zeMemoryTypeExpected = ZE_MEMORY_TYPE_HOST;
273+
params = create_level_zero_prov_params(
274+
l0TestHelper.get_test_context(), nullptr, memory_type);
275+
memAccessor = std::make_unique<HostMemoryAccessor>();
266276
break;
267277
case UMF_MEMORY_TYPE_UNKNOWN:
268278
zeMemoryTypeExpected = ZE_MEMORY_TYPE_UNKNOWN;
@@ -273,17 +283,17 @@ struct umfLevelZeroProviderTest
273283
}
274284

275285
void TearDown() override {
276-
if (paramsDestroy) {
277-
paramsDestroy(params);
286+
if (params) {
287+
destroyL0Params(params);
278288
}
279289

280290
test::TearDown();
281291
}
282292

283-
umf_level_zero_memory_provider_params_handle_t params;
284-
pfnProviderParamsDestroy paramsDestroy = nullptr;
293+
LevelZeroTestHelper l0TestHelper;
294+
umf_level_zero_memory_provider_params_handle_t params = nullptr;
285295

286-
MemoryAccessor *memAccessor = nullptr;
296+
std::unique_ptr<MemoryAccessor> memAccessor = nullptr;
287297
ze_context_handle_t hContext = nullptr;
288298
ze_memory_type_t zeMemoryTypeExpected = ZE_MEMORY_TYPE_UNKNOWN;
289299
};
@@ -487,29 +497,15 @@ void *createL0ParamsHostMemory() {
487497
nullptr, UMF_MEMORY_TYPE_HOST);
488498
}
489499

490-
umf_result_t destroyL0Params(void *params) {
491-
return umfLevelZeroMemoryProviderParamsDestroy(
492-
static_cast<umf_level_zero_memory_provider_params_handle_t>(params));
493-
}
494-
495500
LevelZeroMemoryAccessor
496501
l0Accessor((ze_context_handle_t)l0TestHelper.get_test_context(),
497502
(ze_device_handle_t)l0TestHelper.get_test_device());
498503

499-
HostMemoryAccessor hostAccessor;
500-
501-
INSTANTIATE_TEST_SUITE_P(
502-
umfLevelZeroProviderTestSuite, umfLevelZeroProviderTest,
503-
::testing::Values(
504-
LevelZeroProviderTestParams{createL0ParamsDeviceMemory, destroyL0Params,
505-
l0TestHelper.get_test_context(),
506-
UMF_MEMORY_TYPE_DEVICE, &l0Accessor},
507-
LevelZeroProviderTestParams{createL0ParamsSharedMemory, destroyL0Params,
508-
l0TestHelper.get_test_context(),
509-
UMF_MEMORY_TYPE_SHARED, &hostAccessor},
510-
LevelZeroProviderTestParams{createL0ParamsHostMemory, destroyL0Params,
511-
l0TestHelper.get_test_context(),
512-
UMF_MEMORY_TYPE_HOST, &hostAccessor}));
504+
INSTANTIATE_TEST_SUITE_P(umfLevelZeroProviderTestSuite,
505+
umfLevelZeroProviderTest,
506+
::testing::Values(UMF_MEMORY_TYPE_DEVICE,
507+
UMF_MEMORY_TYPE_SHARED,
508+
UMF_MEMORY_TYPE_HOST));
513509

514510
// TODO: it looks like there is some problem with IPC implementation in Level
515511
// Zero on windows. Issue: #494

0 commit comments

Comments
 (0)