Skip to content

Commit 3283c9e

Browse files
committed
Adapt to UR changes; use SYCL spec APIs.
1 parent f0fb6f3 commit 3283c9e

File tree

2 files changed

+31
-8
lines changed

2 files changed

+31
-8
lines changed

deps/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ target_link_libraries(oneapi_support
1919
# XXX: we don't want to link against this plugin, but otherwise the run-time
2020
# loader doesn't find it (since it's located in the non-global Conda
2121
# library directory, and we can't set LD_LIBRARY_PATH from within Julia).
22-
pi_level_zero
22+
ur_adapter_level_zero
2323
)
2424

2525
install(TARGETS oneapi_support

deps/src/sycl.cpp

Lines changed: 30 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@
66

77
extern "C" int syclPlatformCreate(syclPlatform_t *obj,
88
ze_driver_handle_t driver) {
9-
auto sycl_platform = sycl::ext::oneapi::level_zero::make_platform((pi_native_handle) driver);
9+
auto sycl_platform =
10+
sycl::make_platform<sycl::backend::ext_oneapi_level_zero>(driver);
1011
*obj = new syclPlatform_st({sycl_platform});
1112
return 0;
1213
}
@@ -19,7 +20,7 @@ extern "C" int syclPlatformDestroy(syclPlatform_t obj) {
1920
extern "C" int syclDeviceCreate(syclDevice_t *obj, syclPlatform_t platform,
2021
ze_device_handle_t device) {
2122
auto sycl_device =
22-
sycl::ext::oneapi::level_zero::make_device(platform->val, (pi_native_handle) device);
23+
sycl::make_device<sycl::backend::ext_oneapi_level_zero>(device);
2324
*obj = new syclDevice_st({sycl_device});
2425
return 0;
2526
}
@@ -35,9 +36,15 @@ extern "C" int syclContextCreate(syclContext_t *obj, syclDevice_t *devices,
3536
std::vector<sycl::device> sycl_devices(ndevices);
3637
for (size_t i = 0; i < ndevices; i++)
3738
sycl_devices[i] = devices[i]->val;
39+
auto sycl_ownership =
40+
keep_ownership ? sycl::ext::oneapi::level_zero::ownership::keep
41+
: sycl::ext::oneapi::level_zero::ownership::transfer;
42+
sycl::backend_input_t<sycl::backend::ext_oneapi_level_zero, sycl::context>
43+
sycl_context_input = {context, sycl_devices, sycl_ownership};
3844

3945
auto sycl_context =
40-
sycl::ext::oneapi::level_zero::make_context(sycl_devices, (pi_native_handle) context, keep_ownership);
46+
sycl::make_context<sycl::backend::ext_oneapi_level_zero>(
47+
sycl_context_input);
4148
*obj = new syclContext_st({sycl_context});
4249
return 0;
4350
}
@@ -51,7 +58,15 @@ extern "C" int syclQueueCreate(syclQueue_t *obj, syclContext_t context,
5158
syclDevice_t device,
5259
ze_command_queue_handle_t queue,
5360
int keep_ownership) {
54-
auto sycl_queue = sycl::ext::oneapi::level_zero::make_queue(context->val, device->val, (pi_native_handle) queue, false, keep_ownership, {});
61+
auto sycl_ownership =
62+
keep_ownership ? sycl::ext::oneapi::level_zero::ownership::keep
63+
: sycl::ext::oneapi::level_zero::ownership::transfer;
64+
auto sycl_queue_input =
65+
sycl::backend_input_t<sycl::backend::ext_oneapi_level_zero,
66+
sycl::queue>{queue, device->val, sycl_ownership};
67+
68+
auto sycl_queue = sycl::make_queue<sycl::backend::ext_oneapi_level_zero>(
69+
sycl_queue_input, context->val);
5570
*obj = new syclQueue_st({sycl_queue});
5671
return 0;
5772
}
@@ -63,9 +78,17 @@ extern "C" int syclQueueDestroy(syclQueue_t obj) {
6378

6479
extern "C" int syclEventCreate(syclEvent_t *obj, syclContext_t context,
6580
ze_event_handle_t event, int keep_ownership) {
66-
auto sycl_event = sycl::ext::oneapi::level_zero::make_event(context->val, (pi_native_handle) event, keep_ownership);
67-
*obj = new syclEvent_st({sycl_event});
68-
return 0;
81+
auto sycl_ownership =
82+
keep_ownership ? sycl::ext::oneapi::level_zero::ownership::keep
83+
: sycl::ext::oneapi::level_zero::ownership::transfer;
84+
auto sycl_event_input =
85+
sycl::backend_input_t<sycl::backend::ext_oneapi_level_zero,
86+
sycl::event>{event, sycl_ownership};
87+
88+
auto sycl_event = sycl::make_event<sycl::backend::ext_oneapi_level_zero>(
89+
sycl_event_input, context->val);
90+
*obj = new syclEvent_st({sycl_event});
91+
return 0;
6992
}
7093

7194
extern "C" int syclEventDestroy(syclEvent_t obj) {

0 commit comments

Comments
 (0)