MAGMA: declare cuda_arch support conflicts (#28811)

This commit is contained in:
Adam J. Stewart 2022-02-10 16:52:23 -06:00 committed by GitHub
parent 93e7efdc42
commit e502a264b5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 11 additions and 28 deletions

View File

@ -57,13 +57,23 @@ class Magma(CMakePackage, CudaPackage, ROCmPackage):
# https://bitbucket.org/icl/magma/issues/25/error-cusparsesolveanalysisinfo_t-does-not
conflicts('^cuda@11:', when='@:2.5.3')
# Many cuda_arch values are not yet recognized by MAGMA's CMakeLists.txt
for target in [10, 11, 12, 13, 21, 32, 52, 53, 61, 62, 72, 86]:
conflicts('cuda_arch={}'.format(target))
# Some cuda_arch values had support added recently
conflicts('cuda_arch=37', when='@:2.5')
conflicts('cuda_arch=60', when='@:2.2')
conflicts('cuda_arch=70', when='@:2.2')
conflicts('cuda_arch=75', when='@:2.5.0')
conflicts('cuda_arch=80', when='@:2.5.3')
patch('ibm-xl.patch', when='@2.2:2.5.0%xl')
patch('ibm-xl.patch', when='@2.2:2.5.0%xl_r')
patch('magma-2.3.0-gcc-4.8.patch', when='@2.3.0%gcc@:4.8')
patch('magma-2.5.0.patch', when='@2.5.0')
patch('magma-2.5.0-cmake.patch', when='@2.5.0')
patch('cmake-W.patch', when='@2.5.0:%nvhpc')
patch('sm_37.patch', when='@2.5.4 cuda_arch=37')
@run_before('cmake')
def generate_cuda(self):

View File

@ -1,27 +0,0 @@
--- a/CMakeLists.txt 2021-06-19 15:53:21.028881552 +0000
+++ b/CMakeLists.txt 2021-06-19 15:54:09.204228276 +0000
@@ -132,7 +132,7 @@
endif()
if (GPU_TARGET MATCHES Kepler)
- set( GPU_TARGET "${GPU_TARGET} sm_30 sm_35" )
+ set( GPU_TARGET "${GPU_TARGET} sm_30 sm_35 sm_37" )
endif()
if (GPU_TARGET MATCHES Maxwell)
@@ -182,6 +182,15 @@
message( STATUS " compile for CUDA arch 3.5 (Kepler)" )
endif()
+ if (GPU_TARGET MATCHES sm_37)
+ if (NOT MIN_ARCH)
+ set( MIN_ARCH 300 )
+ endif()
+ set( NV_SM ${NV_SM} -gencode arch=compute_37,code=sm_37 )
+ set( NV_COMP -gencode arch=compute_37,code=compute_37 )
+ message( STATUS " compile for CUDA arch 3.7 (Kepler)" )
+ endif()
+
if (GPU_TARGET MATCHES sm_50)
if (NOT MIN_ARCH)
set( MIN_ARCH 500 )