Skip to content

Conversation

@EwanC
Copy link
Collaborator

@EwanC EwanC commented May 17, 2023

Although we have implemented an emulation mode for when a SYCL backend doesn't support PI/UR command-buffers, we don't have good implementation coverage across its usage on all possible backends.

Providing an extension support query would allow us to limit the backends we support while in experimental status. This could be to say CUDA and Level Zero, and maybe OpenCL, but we don't need to specify that here. Otherwise, users with backends we've not tested could try to use the extension and crash, even with emulation mode.

Longer term, I think we could remove this query once the implementation is more mature and we have faith in emulation mode support on all backends, but I don't think that's the case at the moment.

Although we have an emulation mode for when a SYCL backend
doesn't support PI/UR command-buffers, we don't have good implementation coverage
across it's usage on all possible backends.

Providing a support query would allow us to limit the backends we support
while an experimental extension to say CUDA and Level Zero, and maybe
OpenCL. Rather than
having users with FPGA and esimd_emulator trying to use the extension and
crashing because we've not tested these platforms even with emulation
mode.

We could remove this query once the implementation is more mature and
we can trust emulation mode support on all backends, but I don't
think that's the case at the moment.
@EwanC EwanC added Graph Implementation Related to DPC++ implementation and testing Spec Revision 1 labels May 17, 2023
@EwanC EwanC requested review from Bensuo, julianmi and reble May 17, 2023 08:22
@Bensuo
Copy link
Collaborator

Bensuo commented May 17, 2023

This might be overcomplicating it, but would it be useful to instead of returning a bool return some enum that would let the user know whether it's natively supported, emulated or unsupported?

@EwanC
Copy link
Collaborator Author

EwanC commented May 17, 2023

This might be overcomplicating it, but would it be useful to instead of returning a bool return some enum that would let the user know whether it's natively supported, emulated or unsupported?

Like that idea 👍 It's easy to provide the extra info, and I don't think it places any extra burden on users that don't care about emulated v native.

@EwanC EwanC force-pushed the ewan/device_support_query branch 2 times, most recently from 2bba7e0 to 1ce0473 Compare May 18, 2023 08:28
@EwanC
Copy link
Collaborator Author

EwanC commented May 18, 2023

This might be overcomplicating it, but would it be useful to instead of returning a bool return some enum that would let the user know whether it's natively supported, emulated or unsupported?

Like that idea 👍 It's easy to provide the extra info, and I don't think it places any extra burden on users that don't care about emulated v native.

Pushed a commit with this change now.

Copy link
Collaborator

@julianmi julianmi left a comment

Choose a reason for hiding this comment

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

LGTM

This provides extra information about how support is
implemented.
@EwanC EwanC force-pushed the ewan/device_support_query branch from 1ce0473 to bab9c2b Compare May 22, 2023 10:14
@EwanC EwanC merged commit 6a3b016 into sycl-graph-update May 22, 2023
EwanC pushed a commit that referenced this pull request May 23, 2023
Implement the device info `graph_support` query defined
by spec PR #178

This only reports that graphs are supported on Level Zero
devices.
EwanC pushed a commit that referenced this pull request May 23, 2023
Implement the device info `graph_support` query defined
by spec PR #178

This only reports that graphs are supported on Level Zero
devices.
EwanC pushed a commit that referenced this pull request May 23, 2023
Implement the device info `graph_support` query defined
by spec PR #178

This only reports that graphs are supported on Level Zero
devices.
@Bensuo Bensuo deleted the ewan/device_support_query branch August 7, 2023 16:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Graph Implementation Related to DPC++ implementation and testing Spec Revision 1

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants