1717
1818
1919def alpaka_post_filter (row : List ) -> bool :
20+ # debug builds with clang 15 and 16 as CUDA compiler produce a compiler error
21+ # see here: https://github.com/llvm/llvm-project/issues/58491
22+ if (
23+ is_in_row (row , BUILD_TYPE )
24+ and row [param_map [BUILD_TYPE ]][VERSION ] == CMAKE_DEBUG
25+ and row_check_name (row , DEVICE_COMPILER , "==" , CLANG_CUDA )
26+ ):
27+ for clang_cuda_version in ["15" , "16" , "17" ]:
28+ if row_check_version (row , HOST_COMPILER , "==" , clang_cuda_version ):
29+ return False
30+
31+ # Debug builds with nvcc <= 11.6 produce compiler errors
32+ if (
33+ is_in_row (row , BUILD_TYPE )
34+ and row [param_map [BUILD_TYPE ]][VERSION ] == CMAKE_DEBUG
35+ and row_check_name (row , DEVICE_COMPILER , "==" , NVCC )
36+ and row_check_version (row , DEVICE_COMPILER , "<=" , "11.6" )
37+ ):
38+ return False
39+
40+ # because of a compiler bug, we disable mdspan for NVCC <= 11.2
41+ if (
42+ row_check_version (row , MDSPAN , "==" , ON_VER )
43+ and row_check_name (row , DEVICE_COMPILER , "==" , NVCC )
44+ and row_check_version (row , DEVICE_COMPILER , "<=" , "11.2" )
45+ ):
46+ return False
47+
2048 # OpenMP is not supported for clang as cuda compiler
2149 # https://github.com/alpaka-group/alpaka/issues/639
2250 if row_check_name (row , DEVICE_COMPILER , "==" , CLANG_CUDA ) and (
@@ -25,6 +53,18 @@ def alpaka_post_filter(row: List) -> bool:
2553 ):
2654 return False
2755
56+ # there is a compiler bug in GCC 11.4 which avoids working with NVCC 11.5
57+ if (
58+ row_check_name (row , DEVICE_COMPILER , "==" , NVCC )
59+ and (
60+ row_check_version (row , DEVICE_COMPILER , "==" , "11.4" )
61+ or row_check_version (row , DEVICE_COMPILER , "==" , "11.5" )
62+ )
63+ and row_check_name (row , HOST_COMPILER , "==" , GCC )
64+ and row_check_version (row , HOST_COMPILER , "==" , "11" )
65+ ):
66+ return False
67+
2868 # cmake 3.24 and older does not support C++20 for nvcc
2969 if (
3070 row_check_name (row , DEVICE_COMPILER , "==" , NVCC )
@@ -60,42 +100,24 @@ def alpaka_post_filter(row: List) -> bool:
60100 ):
61101 return False
62102
63- # Clang-CUDA has three support levels, full support, partial support, and if newer, then it throws a warning and continues.
64- # We only test unitl the partially supported version in the CI
65-
66- # Clang-CUDA 16 and below officially only partially support as a maximum up to CUDA SDK 11.8, so we disable CI tests for these
67- if row_check_name (row , DEVICE_COMPILER , "==" , CLANG_CUDA ) and row_check_version (row , DEVICE_COMPILER , "<=" , "16" ):
68- return False
69-
70- # Clang-CUDA 17 fully supports up to CUDA SDK 11.8 and partially upto 12.1
71- if (
72- row_check_name (row , DEVICE_COMPILER , "==" , CLANG_CUDA )
73- and row_check_version (row , DEVICE_COMPILER , "==" , "17" )
74- and row_check_backend_version (row , ALPAKA_ACC_GPU_CUDA_ENABLE , ">" , "12.1" )
75- ):
76- return False
77-
78- # Clang-CUDA 18 fully supports up to CUDA SDK 12.3 (unless it is 18.0 which fully supports 12.1 only partially supports 12.3)
79- if (
80- row_check_name (row , DEVICE_COMPILER , "==" , CLANG_CUDA )
81- and row_check_version (row , DEVICE_COMPILER , "==" , "18" )
82- and row_check_backend_version (row , ALPAKA_ACC_GPU_CUDA_ENABLE , ">" , "12.3" )
83- ):
84- return False
85-
86- # Clang-CUDA 19 fully supports up to CUDA SDK 12.3 and partially upto 12.5
87- if (
88- row_check_name (row , DEVICE_COMPILER , "==" , CLANG_CUDA )
89- and row_check_version (row , DEVICE_COMPILER , "==" , "19" )
90- and row_check_backend_version (row , ALPAKA_ACC_GPU_CUDA_ENABLE , ">" , "12.5" )
91- ):
92- return False
103+ # Clang-CUDA 18 only supports up to CUDA SDK 12.1
104+ # if (
105+ # row_check_name(row, DEVICE_COMPILER, "==", CLANG_CUDA)
106+ # and row_check_version(row, DEVICE_COMPILER, "==", "18")
107+ # and row_check_backend_version(row, ALPAKA_ACC_GPU_CUDA_ENABLE, ">", "12.1")
108+ # ):
109+ # return False
93110
94- # Clang-CUDA 20 fully supports up to CUDA SDK 12.3 and partially upto 12.8
111+ # TODO(SimeonEhrig): disable Clang 18 and 19 as Clang-CUDA because of
112+ # several bugs will be fixed in alpaka 2.0.0
95113 if (
96114 row_check_name (row , DEVICE_COMPILER , "==" , CLANG_CUDA )
97- and row_check_version (row , DEVICE_COMPILER , "==" , "20" )
98- and row_check_backend_version (row , ALPAKA_ACC_GPU_CUDA_ENABLE , ">" , "12.8" )
115+ and (
116+ row_check_version (row , DEVICE_COMPILER , "==" , "18" )
117+ or row_check_version (row , DEVICE_COMPILER , "==" , "19" )
118+ or row_check_version (row , DEVICE_COMPILER , "==" , "20" )
119+ )
120+ and row_check_backend_version (row , ALPAKA_ACC_GPU_CUDA_ENABLE , "!=" , OFF_VER )
99121 ):
100122 return False
101123
@@ -121,7 +143,7 @@ def alpaka_post_filter(row: List) -> bool:
121143 # - HIP 6.0 until 6.2
122144 # - If Clang 14 and older is used
123145 # - If CUDA 12.3 and older is used, because the CUDA versions does not support the libstdc++ 13
124- # which is provided by the Ubuntu host compiler GCC 13
146+ # which is provided by the Ubuntu host compiler GCC 13
125147 # the ROCm Ubuntu support is handled by the alpaka-job-matrix-library
126148 if row_check_version (row , UBUNTU , "==" , "22.04" ):
127149 for compiler_type in (HOST_COMPILER , DEVICE_COMPILER ):
0 commit comments