Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[SYCL] Add test for extended deleters #11344

Merged
merged 16 commits into from
Oct 20, 2023
Merged
11 changes: 3 additions & 8 deletions sycl/plugins/unified_runtime/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,9 @@
if (NOT DEFINED UNIFIED_RUNTIME_LIBRARY OR NOT DEFINED UNIFIED_RUNTIME_INCLUDE_DIR)
include(FetchContent)

set(UNIFIED_RUNTIME_REPO "https://github.com/oneapi-src/unified-runtime.git")
#commit b38855ed815ffd076bfde5e5e06170ca4f723dc1
#Merge: e6343f4 6a2c548
#Author: Piotr Balcer <piotr.balcer@intel.com>
#Date: Thu Oct 5 12:15:42 2023 +0200
# Merge pull request #920 from jsji/localcopy
# [UR][L0] Copy prebuilt L0 to avoid leaking shared folder path
set(UNIFIED_RUNTIME_TAG b38855ed815ffd076bfde5e5e06170ca4f723dc1)
# TODO remove me before merging
set(UNIFIED_RUNTIME_REPO "https://github.com/hdelan/unified-runtime.git")
set(UNIFIED_RUNTIME_TAG b002e003933169c28f5ac9d31ff8ccda8cb5114a)
hdelan marked this conversation as resolved.
Show resolved Hide resolved

if ("level_zero" IN_LIST SYCL_ENABLE_PLUGINS)
set(UR_BUILD_ADAPTER_L0 ON)
Expand Down
18 changes: 18 additions & 0 deletions sycl/test-e2e/ExtendedDeleters/extended_deleters.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
// REQUIRES: hip, cuda

// RUN: %{build} -o %t.out
// RUN: %{run} %t.out | FileCheck %s

// CHECK: This extended deleter should be called at ctx destruction.

#include <sycl/sycl.hpp>

int main() {
sycl::context c;
sycl::detail::pi::contextSetExtendedDeleter(
c,
[](void *) {
printf("This extended deleter should be called at ctx destruction.");
},
nullptr);
}
Comment on lines +1 to +18
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why do we need it here and not in the UR repo? This makes no sense to me... sycl::detail::pi has to be eradicated from the sycl repo, IMO.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If the test does move to UR it'll need to be in a separate PR.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We already have a test for this in the UR repo but this is something that is used in oneMKL through the sycl::detail::pi interface. I think it's worthwhile having a test to make sure that the SYCL interface is working as well as the UR one.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Contributor

@aelovikov-intel aelovikov-intel Oct 20, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

something that is used in oneMKL through the sycl::detail::pi interface.

That is bad... detail shouldn't be used in production.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There have been some changes in UR contexts of late, and when these are settled we are going to re-review this entry point and see if we can potentially remove it from oneMKL, but as it stands it is necessary

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've submitted oneapi-src/oneMKL#401. Personally, I'm in favor of removing the test: we do not guarantee availability of the tested functionality. The fact that it resides in sycl::detail namespace explicitly communicates that.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we should remove this test whenever we stop using this in oneMKL. The reason why I am adding this test is because this functionality was accidentally removed, and since there was no testing for it we didn't realise that something was broken, and oneMKL ended up breaking.