-
Notifications
You must be signed in to change notification settings - Fork 745
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][DOC] Add table with DPC++ extensions status #1619
Changes from all commits
a3c149e
934ba64
77e41b9
ea0d072
f390659
ad84252
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,48 @@ | ||
# Extensions | ||
|
||
This is where documents can be found that propose extensions to the SYCL | ||
The directory contains documents that describe DPC++ extensions to SYCL | ||
specification. | ||
|
||
DPC++ extensions status: | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Could we please maintain more info about the extensions and capture this:
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I think that if we add all this information the table will be too complex, but I can add a couple of columns that can be filled in future. |
||
|
||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. These others seem to be missing too:
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. @bader , do we have an extension doc for the printf extension? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
I've requested it here, but there were updates yet. @AlexeySachkov any updates? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. @pvchupin Should we track non-Intel extensions here? What if they are not implemented so far? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I think this table purpose is to clarify what we support or planning to prototype in the nearest future (Intel or non-Intel doesn't matter). There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Ok, are you OK if these extensions are added to the table in a separate PR(preferably by the authors)? |
||
| Extension | Status | Comment | | ||
|-------------|:------------|:------------| | ||
| [SYCL_INTEL_bitcast](Bitcast/SYCL_INTEL_bitcast.asciidoc) | Proposal | | | ||
| [C and C++ Standard libraries support](C-CXX-StandardLibrary/C-CXX-StandardLibrary.rst) | Partially supported(OpenCL: CPU, GPU) | | | ||
| [SYCL_INTEL_data_flow_pipes](DataFlowPipes/data_flow_pipes.asciidoc) | Partially supported(OpenCL: ACCELERATOR) | kernel_host_pipe_support part is not implemented | | ||
| [SYCL_INTEL_deduction_guides](deduction_guides/SYCL_INTEL_deduction_guides.asciidoc) | Supported | | | ||
| [SYCL_INTEL_device_specific_kernel_queries](DeviceSpecificKernelQueries/SYCL_INTEL_device_specific_kernel_queries.asciidoc) | Proposal | | | ||
| [SYCL_INTEL_enqueue_barrier](EnqueueBarrier/enqueue_barrier.asciidoc) | Proposal | | | ||
| [SYCL_INTEL_extended_atomics](ExtendedAtomics/SYCL_INTEL_extended_atomics.asciidoc) | Proposal | | | ||
| [SYCL_INTEL_group_algorithms](GroupAlgorithms/SYCL_INTEL_group_algorithms.asciidoc) | Supported(OpenCL) | | | ||
| [SYCL_INTEL_group_mask](./GroupMask/SYCL_INTEL_group_mask.asciidoc) | Proposal | | | ||
| [FPGA selector](IntelFPGA/FPGASelector.md) | Supported | | | ||
| [FPGA reg](IntelFPGA/FPGAReg.md) | Supported(OpenCL: ACCELERATOR) | | | ||
| [SYCL_INTEL_kernel_restrict_all](KernelRestrictAll/SYCL_INTEL_kernel_restrict_all.asciidoc) | Supported(OpenCL) | | | ||
| [SYCL_INTEL_attribute_style](KernelRHSAttributes/SYCL_INTEL_attribute_style.asciidoc) | Proposal | | | ||
| [Queue Order Properties](OrderedQueue/OrderedQueue_v2.adoc) | Supported | | | ||
| [Queue Shortcuts](QueueShortcuts/QueueShortcuts.adoc) | Supported | | | ||
| [Reductions for ND-Range Parallelism](Reduction/Reduction.md) | Partially supported(OpenCL: CPU, GPU) | Not supported: multiple reduction vars, multi-dimensional reduction vars | | ||
| [SYCL_INTEL_relax_standard_layout](RelaxStdLayout/SYCL_INTEL_relax_standard_layout.asciidoc) | Supported | | | ||
| [SYCL_INTEL_reqd_work_group_size](ReqdWorkGroupSize/SYCL_INTEL_reqd_work_group_size.asciidoc) | Supported(OpenCL: CPU, GPU) | | | ||
| [SPV_INTEL_function_pointers](SPIRV/SPV_INTEL_function_pointers.asciidoc) | Supported(OpenCL: CPU, GPU; HOST) | | | ||
| [SPV_INTEL_inline_assembly](SPIRV/SPV_INTEL_inline_assembly.asciidoc) | Supported(OpenCL: GPU) | | | ||
| [SYCL_INTEL_static_local_memory_query](StaticLocalMemoryQuery/SYCL_INTEL_static_local_memory_query.asciidoc) | Proposal | | | ||
| [SYCL_INTEL_sub_group_algorithms](SubGroupAlgorithms/SYCL_INTEL_sub_group_algorithms.asciidoc) | Partially supported(OpenCL: CPU, GPU) | Features from SYCL_INTEL_group_algorithms extended to sub-groups | | ||
| [Sub-groups for NDRange Parallelism](SubGroupNDRange/SubGroupNDRange.md) | Deprecated(OpenCL: CPU, GPU) | | | ||
| [Sub-groups](SubGroup/SYCL_INTEL_sub_group.asciidoc) | Supported(OpenCL) | | | ||
| [SYCL_INTEL_unnamed_kernel_lambda](UnnamedKernelLambda/SYCL_INTEL_unnamed_kernel_lambda.asciidoc) | Supported(OpenCL) | | | ||
| [Unified Shared Memory](USM/USM.adoc) | Supported(OpenCL) | | | ||
|
||
Legend: | ||
|
||
| Keyword | Meaning | | ||
|-------------|:------------| | ||
| Proposal | A document describing an extension is published, but the extension is not supported yet | | ||
| Supported | An extension is supported | | ||
| Partially supported | An extension is partially supported, see comments column for more info | | ||
| Deprecated | An extension is deprecated and can be removed in future versions | | ||
| (API: DeviceType1, DeviceType2) | An extension is supported when specific combination of API and device types are used. If device type or API are not mentioned then an extension is supported on any device type or API. API can be OpenCL, CUDA, HOST. DeviceType can be CPU, GPU, ACCELERATOR | | ||
|
||
|
||
See [User Manual](../UsersManual.md) to find information how to enable extensions. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Could we add a legend with possible "Status" values?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I have a selfish interest to capture information about the compiler options to turn on/off these extensions.
Do you think we can add another column?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
A column with compiler options which turn on/off specific extensions?
What do you think about having them in https://github.com/intel/llvm/blob/sycl/sycl/doc/UsersManual.md
and add a link from this doc to the user manual?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sounds good to me.
AFAIK, some extensions are "library-only" and there is no dedicated clang driver option to manage library extensions - they are managed through macro definitions.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can we have such macro documented in the user manual as well?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think we should document them and align extensions API with this proposal: https://github.com/intel/llvm/blob/sycl/sycl/doc/extensions/ExtensionMechanism/SYCL_INTEL_extension_api.asciidoc.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Added a link to user manual, please, let me know if something else should be done in scope of this comment.