Skip to content

Add __SYCL_EXPORT to declaration of contextSetExtendedDeleter #1531

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

Merged
merged 2 commits into from
Apr 20, 2020
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions sycl/include/CL/sycl/detail/pi.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -99,9 +99,9 @@ using PiMemObjectType = ::pi_mem_type;
using PiMemImageChannelOrder = ::pi_image_channel_order;
using PiMemImageChannelType = ::pi_image_channel_type;

void contextSetExtendedDeleter(const cl::sycl::context &constext,
pi_context_extended_deleter func,
void *user_data);
__SYCL_EXPORT void contextSetExtendedDeleter(const cl::sycl::context &constext,
Copy link
Contributor

Choose a reason for hiding this comment

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

I don't see any users of it. Why does this need to be exported from libsycl?

Copy link
Contributor

Choose a reason for hiding this comment

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

Please also document the recently added PI API: piextContextSetExtendedDeleter in pi.h

Copy link
Contributor

Choose a reason for hiding this comment

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

Why is it not implemented for OpenCL?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Hi, this function is used in the cuBLAS backend to OneMKL. If it isn't exported, the cuBLAS backend does not work.

uxlfoundation/oneMath#2 (comment)

Good idea, the function will be documented in subsequent commits.

It has no equivelant in OpenCL backend because it isn't required by any OpenCL driven projects. Is there a way you would like this to be marked as CUDA specific?

Copy link
Contributor

Choose a reason for hiding this comment

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

I think using any symbols from sycl::detail namespace is dangerous as it's by design intended for internal implementation details.
I suggest oneMKL to use "public/standard/stable" API if possible.

tagging @mkrainiuk, @mehdi-goli.

Copy link
Contributor

Choose a reason for hiding this comment

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

This is meant to be a temporary fix until there is a SYCL extension to cover for this functionality, that's why its exposing some implementation details, because there is no public API for this at this point.

Copy link
Contributor

Choose a reason for hiding this comment

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

Is there a SYCL extension in flight to support this?

What's exactly the functionality achieved here (it's hard to tell for sure because there is not documentation of this extension)?

I'd like to approve this to unblock MKL, but please create an issue (or just PR) to document the piextContextSetExtendedDeleter and also to discuss if there is a better way to achieve what's needed.

pi_context_extended_deleter func,
void *user_data);

// Function to load the shared library
// Implementation is OS dependent.
Expand Down