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 <alexander@codeplay.com>
David Wood <david.wood@codeplay.com>
Victor Lomuller <victor@codeplay.com>
Signed-off-by: Alexander Johnston <alexander@codeplay.com>
* [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 <alexander@codeplay.com>
Bjoern Knafla <bjoern@codeplay.com>
Ruyman Reyes <ruyman@codeplay.com>
Signed-off-by: Alexander Johnston <alexander@codeplay.com>
* [SYCL] Local Accessor Support for CUDA
Provides the LocalAccessorToSharedMemory compiler pass required
for supporting SYCL local accessors in CUDA.
Contributors
Alexander Johnston <alexander@codeplay.com>
David Wood <david.wood@codeplay.com>
Signed-off-by: Alexander Johnston <alexander@codeplay.com>
* [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 <david.wood@codeplay.com>
Signed-off-by: Alexander Johnston <alexander@codeplay.com>
* [SYCL][CUDA] Add SYCL CUDA support to clang driver
Adds CUDA support for sycl compilation in the clang driver
Contributors
Alexander Johnston <alexander@codeplay.com>
David Wood <david.wood@codeplay.com>
Victor Lomuller <victor@codeplay.com>
Signed-off-by: Alexander Johnston <alexander@codeplay.com>
* [SYCL][CUDA] Initial Implementation of the CUDA backend
Contributors
Alan Forbes <alan.forbes@codeplay.com>
Alexander Johnston <alexander@codeplay.com>
Bjoern Knafla <bjoern@codeplay.com>
Daniel Soutar <daniel.soutar@codeplay.com>
David Wood <david.wood@codeplay.com>
Kumudha Narasimhan <kumudha.narasimhan@codeplay.com>
Mehdi Goli <mehdi.goli@codeplay.com>
Przemek Malon <przemek.malon@codeplay.com>
Ruyman Reyes <ruyman@codeplay.com>
Stuart Adams <stuart.adams@codeplay.com>
Svetlozar Georgiev <svetlozar.georgiev@codeplay.com>
Steffen Larsen <steffen.larsen@codeplay.com>
Victor Lomuller <victor@codeplay.com>
Signed-off-by: Alexander Johnston <alexander@codeplay.com>
* [SYCL] Update libclc install rules
Have libclc install clc-* and libspirv-* to lib and share
Signed-off-by: Alexander Johnston <alexander@codeplay.com>
* [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 <andrea.bocci@cern.ch>
* Added missing flags for device-side builtins
Signed-off-by: Alexander Johnston <alexander@codeplay.com>
* [SYCL][CUDA] Removing unnecessary tool from the tree
Acked-by: Victor Lomuller <victor@codeplay.com>
Signed-off-by: Ruyman <ruyman@codeplay.com>
* [SYCL][PI] Fix kernel group info parameter conversion
Signed-off-by: Steffen Larsen <steffen.larsen@codeplay.com>
* [SYCL][CUDA] Refactor __SYCL_INLINE macro
Synchronise the CUDA backend with the general SYCL changes from #1121.
Signed-off-by: Andrea Bocci <andrea.bocci@cern.ch>
* [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 <alexander@codeplay.com>
* [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 <alexander@codeplay.com>
* [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 <alexander@codeplay.com>
* [SYCL] Formatting update for device_selector.cpp
Signed-off-by: Alexander Johnston <alexander@codeplay.com>
* [SYCL] Changed CUDA unit tests to call through plugin
Signed-off-by: Steffen Larsen <steffen.larsen@codeplay.com>
* [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 <alexander@codeplay.com>
* [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 <alexander@codeplay.com>
* [SYCL][CUDA] Disable linear_id/opencl-interop.cpp for cuda
Signed-off-by: Alexander Johnston <alexander@codeplay.com>
* [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 <alexander@codeplay.com>
* [SYCL][CUDA] Code style and cleanup to CUDA support
Signed-off-by: Alexander Johnston <alexander@codeplay.com>
* [SYCL] Enable asserts in all buildbot builds
Signed-off-by: Alexander Johnston <alexander@codeplay.com>
* [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 <alexander@codeplay.com>
Co-authored-by: Andrea Bocci <andrea.bocci@cern.ch>
Co-authored-by: Ruyman <ruyman@codeplay.com>
Co-authored-by: Steffen Larsen <56076654+steffenlarsen@users.noreply.github.com>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