
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 . ..
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages504 Page
-
File Size-