SYCL™ 2020 Specification (Revision 3)

SYCL™ 2020 Specification (Revision 3)

SYCL™ 2020 Specification (revision 3) The Khronos® SYCL™ Working Group 2021-03-04 21:39:10Z: from git SYCL-2020/final-rev3 commit: 3aa000fbe94ab385edb02d24cadc0b94acd45604 SYCL 2020 rev 3 Table of Contents 1. Acknowledgements . 12 2. Introduction . 14 3. SYCL architecture . 16 3.1. Overview . 16 3.2. Anatomy of a SYCL application . 16 3.3. Normative references . 18 3.4. Non-normative notes and examples . 18 3.5. The SYCL platform model . 18 3.6. The SYCL backend model . 19 3.6.1. Platform mixed version support . 20 3.7. SYCL execution model . 20 3.7.1. SYCL application execution model . 20 3.7.1.1. SYCL backend resources managed by the SYCL application . 21 3.7.1.2. SYCL command groups and execution order . 21 3.7.1.3. Controlling execution order with events . 23 3.7.2. SYCL kernel execution model . 23 3.7.2.1. Basic kernels . 23 3.7.2.2. ND-range kernels . 24 3.7.2.3. Backend-specific kernels . 24 3.8. Memory model . 24 3.8.1. SYCL application memory model . 24 3.8.2. SYCL device memory model . 27 3.8.2.1. Access to memory. 28 3.8.3. SYCL memory consistency model . 28 3.8.3.1. Memory ordering . 29 3.8.3.2. Memory scope. 29 3.8.3.3. Atomic operations . 30 3.8.3.4. Forward progress . 30 3.9. The SYCL programming model . 31 3.9.1. Minimum version of C++ . 31 3.9.2. Alignment with future versions of C++ . 31 3.9.3. Basic data parallel kernels . 31 3.9.4. Work-group data parallel kernels . 32 3.9.5. Hierarchical data parallel kernels. 32 3.9.6. Kernels that are not launched over parallel instances. 33 3.9.7. Pre-defined kernels. 33 3.9.8. Synchronization. 33 3.9.8.1. Synchronization in the SYCL application . 33 3.9.8.2. Synchronization in SYCL kernels . 34 3.9.9. Error handling . 34 3.9.10. Fallback mechanism. 34 2 | Table of Contents SYCL 2020 rev 3 3.9.11. Scheduling of kernels and data movement. 34 3.9.12. Managing object lifetimes . 35 3.9.13. Device discovery and selection . 35 3.9.14. Interfacing with the SYCL backend API . 35 3.10. Memory objects . 36 3.11. Multi-dimensional objects and linearization. 37 3.11.1. Linearization . 37 3.11.2. Multi-dimensional subscript operators . 37 3.12. Implementation options . 37 3.12.1. Single source multiple compiler passes. 38 3.12.2. Single source single compiler pass . 38 3.12.3. Library-only implementation. 38 3.13. Language restrictions in kernels . 38 3.13.1. Device copyable . ..

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    504 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us