Commit 7a9a425
[SYCL][CUDA] Initial CUDA backend support (#1091)
* [SYCL][LIBCLC] Additional libclc builtins to support SYCL work
Adds builtins to libclc to support the CUDA backend for SYCL.
Contributors
Alexander Johnston <[email protected]>
David Wood <[email protected]>
Victor Lomuller <[email protected]>
Signed-off-by: Alexander Johnston <[email protected]>
* [SYCL] CMake and lit support for SYCL CUDA backend
Adds defines CMake and lit variables used for SYCL CUDA backend
development and test
Contributors
Alexander Johnston <[email protected]>
Bjoern Knafla <[email protected]>
Ruyman Reyes <[email protected]>
Signed-off-by: Alexander Johnston <[email protected]>
* [SYCL] Local Accessor Support for CUDA
Provides the LocalAccessorToSharedMemory compiler pass required
for supporting SYCL local accessors in CUDA.
Contributors
Alexander Johnston <[email protected]>
David Wood <[email protected]>
Signed-off-by: Alexander Johnston <[email protected]>
* [SYCL][CUDA] Change __spirv_BuiltIn.. to functions
Changes the following builtins to functions
__spirv_BuiltInGlobalSize
__spirv_BuiltInWorkgroupSize
__spirv_BuiltInNumWorkgroups
__spirv_BuiltInLocalInvocationId
__spirv_BuiltInWorkgroupId
__spirv_BuiltInGlobalOffset
Contributors
David Wood <[email protected]>
Signed-off-by: Alexander Johnston <[email protected]>
* [SYCL][CUDA] Add SYCL CUDA support to clang driver
Adds CUDA support for sycl compilation in the clang driver
Contributors
Alexander Johnston <[email protected]>
David Wood <[email protected]>
Victor Lomuller <[email protected]>
Signed-off-by: Alexander Johnston <[email protected]>
* [SYCL][CUDA] Initial Implementation of the CUDA backend
Contributors
Alan Forbes <[email protected]>
Alexander Johnston <[email protected]>
Bjoern Knafla <[email protected]>
Daniel Soutar <[email protected]>
David Wood <[email protected]>
Kumudha Narasimhan <[email protected]>
Mehdi Goli <[email protected]>
Przemek Malon <[email protected]>
Ruyman Reyes <[email protected]>
Stuart Adams <[email protected]>
Svetlozar Georgiev <[email protected]>
Steffen Larsen <[email protected]>
Victor Lomuller <[email protected]>
Signed-off-by: Alexander Johnston <[email protected]>
* [SYCL] Update libclc install rules
Have libclc install clc-* and libspirv-* to lib and share
Signed-off-by: Alexander Johnston <[email protected]>
* [SYCL][CUDA] Inline cl namespace to simplify SYCL API usage
Synchronise the CUDA backend with the general SYCL changes from #974.
Signed-off-by: Andrea Bocci <[email protected]>
* Added missing flags for device-side builtins
Signed-off-by: Alexander Johnston <[email protected]>
* [SYCL][CUDA] Removing unnecessary tool from the tree
Acked-by: Victor Lomuller <[email protected]>
Signed-off-by: Ruyman <[email protected]>
* [SYCL][PI] Fix kernel group info parameter conversion
Signed-off-by: Steffen Larsen <[email protected]>
* [SYCL][CUDA] Refactor __SYCL_INLINE macro
Synchronise the CUDA backend with the general SYCL changes from #1121.
Signed-off-by: Andrea Bocci <[email protected]>
* [SYCL] Have default_selector consider SYCL_BE
Have the default_selector consider the env var SYCL_BE when rating
device scores to make choosing a backend easier.
Signed-off-by: Alexander Johnston <[email protected]>
* [SYCL] Select GlobalPlugin based on SYCL_BE
Rather than choose the last found plugin as GlobalPlugin, select
it depending on the SYCL_BE env var.
Signed-off-by: Alexander Johnston <[email protected]>
* [SYCL] Improve default device selection checks
Better checks for CUDA and OpenCL devices to match with SYCL_BE in the
default device selection, based on the platform version info.
Signed-off-by: Alexander Johnston <[email protected]>
* [SYCL] Formatting update for device_selector.cpp
Signed-off-by: Alexander Johnston <[email protected]>
* [SYCL] Changed CUDA unit tests to call through plugin
Signed-off-by: Steffen Larsen <[email protected]>
* [SYCL] Pass SYCL_BE=PI_OPENCL in check-sycl
To ensure that the check-sycl targets test OpenCL devices, pass
SYCL_BE=PI_OPENCL. This mirrors the check-sycl-cuda target which
passes SYCL_BE=PI_CUDA. Without this it is nondeterministic which
device is tested by check-sycl.
Signed-off-by: Alexander Johnston <[email protected]>
* [SYCL][CUDA] Remove PI_CUDA specific details from clang
Removes PI_CUDA specific code paths and tests from clang, opting to
always enable them.
Signed-off-by: Alexander Johnston <[email protected]>
* [SYCL][CUDA] Disable linear_id/opencl-interop.cpp for cuda
Signed-off-by: Alexander Johnston <[email protected]>
* [SYCL][CUDA] Further fixes to CUDA device selection
Fix platform string comparison for CUDA platform detection.
Fix device info platform query so that it uses the device's plugin,
rather than the GlobalPlugin.
Signed-off-by: Alexander Johnston <[email protected]>
* [SYCL][CUDA] Code style and cleanup to CUDA support
Signed-off-by: Alexander Johnston <[email protected]>
* [SYCL] Enable asserts in all buildbot builds
Signed-off-by: Alexander Johnston <[email protected]>
* [SYCL][CUDA] Minor test and build configuration
Fix minor test and build configuration issues introduced in the
development of the CUDA backend.
Signed-off-by: Alexander Johnston <[email protected]>
Co-authored-by: Andrea Bocci <[email protected]>
Co-authored-by: Ruyman <[email protected]>
Co-authored-by: Steffen Larsen <[email protected]>1 parent a0c0e33 commit 7a9a425
File tree
820 files changed
+20902
-3437
lines changed- buildbot
- clang
- include/clang
- Basic
- Driver
- lib
- Basic/Targets
- CodeGen
- SYCLLowerIR
- Driver
- ToolChains
- Frontend
- Sema
- test
- Driver
- Inputs/SYCL
- Misc
- libclc
- amdgcn-amdhsa
- libspirv
- workitem
- lib/workitem
- amdgcn
- libspirv
- workitem
- lib
- workitem
- cmake
- modules
- generic
- include
- clc
- async
- spirv
- async
- atomic
- common
- explicit_fence
- float
- geometric
- image
- integer
- math
- misc
- relational
- synchronization
- workitem
- libspirv
- async
- atomic
- common
- integer
- math
- relational
- workitem
- lib
- async
- atomic
- cl_khr_int64_base_atomics
- cl_khr_int64_extended_atomics
- common
- integer
- math
- relational
- synchronization
- workitem
- ptx-nvidiacl
- include
- libspirv
- math
- synchronization
- workitem
- lib
- synchronization
- workitem
- r600
- libspirv
- workitem
- lib
- workitem
- utils
- llvm-spirv
- lib/SPIRV
- libSPIRV
- test
- llvm
- lib/Target/NVPTX
- SYCL
- test/CodeGen/NVPTX
- tools
- sycl
- doc
- cuda
- include/CL
- __spirv
- sycl
- backend
- detail
- plugins
- cuda
- opencl
- source
- detail
- devicelib
- error_handling
- program_manager
- scheduler
- test
- aot
- basic_tests
- accessor
- buffer
- handler
- sampler
- stream
- vectors
- built-ins
- device-code-split
- fpga_tests
- function-pointers
- functor
- hier_par
- kernel-and-program
- kernel_from_file
- linear_id
- multi_ptr
- multisource
- ordered_queue
- program_manager
- regression
- scheduler
- separate-compile
- struct_param
- sub_group
- usm
- tools
- unittests/pi
- cuda
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
820 files changed
+20902
-3437
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
11 | 11 | | |
12 | 12 | | |
13 | 13 | | |
14 | | - | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
15 | 20 | | |
16 | 21 | | |
17 | | - | |
| 22 | + | |
18 | 23 | | |
19 | | - | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
20 | 34 | | |
21 | 35 | | |
22 | 36 | | |
23 | | - | |
24 | | - | |
25 | | - | |
26 | | - | |
27 | | - | |
28 | | - | |
29 | | - | |
30 | | - | |
31 | | - | |
32 | | - | |
33 | | - | |
34 | | - | |
35 | | - | |
36 | | - | |
37 | | - | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
38 | 57 | | |
39 | 58 | | |
40 | 59 | | |
| |||
63 | 82 | | |
64 | 83 | | |
65 | 84 | | |
| 85 | + | |
| 86 | + | |
66 | 87 | | |
67 | 88 | | |
68 | 89 | | |
| |||
74 | 95 | | |
75 | 96 | | |
76 | 97 | | |
77 | | - | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
64 | 64 | | |
65 | 65 | | |
66 | 66 | | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
67 | 70 | | |
68 | 71 | | |
69 | 72 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
28 | 28 | | |
29 | 29 | | |
30 | 30 | | |
31 | | - | |
| 31 | + | |
32 | 32 | | |
33 | 33 | | |
34 | 34 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1872 | 1872 | | |
1873 | 1873 | | |
1874 | 1874 | | |
| 1875 | + | |
| 1876 | + | |
| 1877 | + | |
1875 | 1878 | | |
1876 | 1879 | | |
1877 | 1880 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
57 | 57 | | |
58 | 58 | | |
59 | 59 | | |
60 | | - | |
| 60 | + | |
| 61 | + | |
61 | 62 | | |
62 | 63 | | |
63 | 64 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
141 | 141 | | |
142 | 142 | | |
143 | 143 | | |
| 144 | + | |
| 145 | + | |
| 146 | + | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
144 | 150 | | |
145 | 151 | | |
146 | 152 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
842 | 842 | | |
843 | 843 | | |
844 | 844 | | |
845 | | - | |
846 | | - | |
847 | | - | |
848 | 845 | | |
849 | 846 | | |
850 | 847 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
755 | 755 | | |
756 | 756 | | |
757 | 757 | | |
| 758 | + | |
| 759 | + | |
| 760 | + | |
| 761 | + | |
| 762 | + | |
| 763 | + | |
758 | 764 | | |
759 | 765 | | |
760 | 766 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
10 | 10 | | |
11 | 11 | | |
12 | 12 | | |
| 13 | + | |
13 | 14 | | |
14 | 15 | | |
15 | 16 | | |
| |||
33 | 34 | | |
34 | 35 | | |
35 | 36 | | |
| 37 | + | |
36 | 38 | | |
37 | 39 | | |
38 | 40 | | |
| |||
326 | 328 | | |
327 | 329 | | |
328 | 330 | | |
| 331 | + | |
| 332 | + | |
| 333 | + | |
| 334 | + | |
| 335 | + | |
| 336 | + | |
| 337 | + | |
| 338 | + | |
| 339 | + | |
| 340 | + | |
| 341 | + | |
329 | 342 | | |
330 | 343 | | |
331 | 344 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
240 | 240 | | |
241 | 241 | | |
242 | 242 | | |
| 243 | + | |
| 244 | + | |
243 | 245 | | |
244 | 246 | | |
245 | 247 | | |
| |||
0 commit comments