[arch-commits] Commit in magma/repos (4 files)

Konstantin Gizdov kgizdov at archlinux.org
Thu Oct 1 21:54:13 UTC 2020


    Date: Thursday, October 1, 2020 @ 21:54:12
  Author: kgizdov
Revision: 714405

archrelease: copy trunk to community-staging-x86_64

Added:
  magma/repos/community-staging-x86_64/
  magma/repos/community-staging-x86_64/PKGBUILD
    (from rev 714404, magma/trunk/PKGBUILD)
  magma/repos/community-staging-x86_64/cuda11.1.patch
    (from rev 714404, magma/trunk/cuda11.1.patch)
  magma/repos/community-staging-x86_64/disable_magma_sparse.patch
    (from rev 714404, magma/trunk/disable_magma_sparse.patch)

----------------------------+
 PKGBUILD                   |   60 ++++++++++++++++++++++++++++++
 cuda11.1.patch             |   84 +++++++++++++++++++++++++++++++++++++++++++
 disable_magma_sparse.patch |   69 +++++++++++++++++++++++++++++++++++
 3 files changed, 213 insertions(+)

Copied: magma/repos/community-staging-x86_64/PKGBUILD (from rev 714404, magma/trunk/PKGBUILD)
===================================================================
--- community-staging-x86_64/PKGBUILD	                        (rev 0)
+++ community-staging-x86_64/PKGBUILD	2020-10-01 21:54:12 UTC (rev 714405)
@@ -0,0 +1,60 @@
+# Maintainer: Sven-Hendrik Haase <svenstaro at gmail.com>
+# Contributor: bartus <arch-user-repoᘓbartus.33mail.com>
+# Contributor: pingplug <pingplug at foxmail.com>
+# Contributor: cornholio <vigo.the.unholy.carpathian at gmail.com>
+
+pkgname=magma
+pkgver=2.5.3
+pkgrel=4
+pkgdesc="Matrix Algebra on GPU and Multicore Architectures"
+arch=('x86_64')
+url="https://icl.cs.utk.edu/magma/"
+license=('custom')
+depends=('blas' 'lapack' 'cuda')
+makedepends=('gcc-fortran' 'cmake' 'ninja')
+optdepends=('python: for examples and tests'
+            'gcc-fortran: Fortran interface')
+source=("${pkgname}-${pkgver}.tar.gz::http://icl.cs.utk.edu/projectsfiles/${pkgname}/downloads/${pkgname}-${pkgver}.tar.gz"
+        'cuda11.1.patch'
+        'disable_magma_sparse.patch')
+sha256sums=('c602d269a9f9a3df28f6a4f593be819abb12ed3fa413bba1ff8183de721c5ef6'
+            '4d6e7e844a5aa5a771480a1fa61daaf85981f52d852ee444d7ffda63ac9a2db2'
+            '259c38004b26395278cdaf431591974e0589dedc0f8bfc14413f854c2a10424f')
+
+prepare() {
+  cd ${pkgname}-${pkgver}
+  patch -Np1 -i "${srcdir}/cuda11.1.patch"
+
+  # Temporarily disable magma-sparse until it's fixed by magma upstream:
+  # https://bugs.archlinux.org/task/67094
+  patch -Np1 -i "${srcdir}/disable_magma_sparse.patch"
+}
+
+build() {
+  cd ${pkgname}-${pkgver}
+
+  CC=/usr/bin/gcc \
+  CXX=/usr/bin/g++ \
+  FC=/usr/bin/gfortran \
+  cmake \
+    -Bbuild \
+    -GNinja \
+    -DCMAKE_BUILD_TYPE=Release \
+    -DCMAKE_INSTALL_PREFIX=/usr \
+    -DBUILD_SHARED_LIBS=ON \
+    -DGPU_TARGET="sm_52 sm_53 sm_60 sm_61 sm_62 sm_70 sm_72 sm_75 sm_80 sm_86"
+  ninja -C build
+}
+
+package() {
+  cd ${pkgname}-${pkgver}
+  DESTDIR="${pkgdir}" ninja -Cbuild install
+
+  install -d "${pkgdir}"/usr/share/magma/example
+  cp -r "${srcdir}"/magma-${pkgver}/example/* "${pkgdir}"/usr/share/magma/example/
+  install -d "${pkgdir}"/usr/share/magma/testing
+  cp -r "${srcdir}"/magma-${pkgver}/testing/* "${pkgdir}"/usr/share/magma/testing/
+  install -Dm644 "${srcdir}"/magma-${pkgver}/COPYRIGHT "${pkgdir}"/usr/share/licenses/magma/LICENSE
+}
+
+# vim:set ts=2 sw=2 et:

Copied: magma/repos/community-staging-x86_64/cuda11.1.patch (from rev 714404, magma/trunk/cuda11.1.patch)
===================================================================
--- community-staging-x86_64/cuda11.1.patch	                        (rev 0)
+++ community-staging-x86_64/cuda11.1.patch	2020-10-01 21:54:12 UTC (rev 714405)
@@ -0,0 +1,84 @@
+diff -aur --color magma-2.5.3-old/CMakeLists.txt magma-2.5.3-new/CMakeLists.txt
+--- magma-2.5.3-old/CMakeLists.txt	2020-10-01 23:41:29.087168262 +0300
++++ magma-2.5.3-new/CMakeLists.txt	2020-10-01 23:46:00.735320487 +0300
+@@ -101,7 +101,7 @@
+ 
+ # ----------------------------------------
+ # locate CUDA libraries
+-set( GPU_TARGET "Kepler Maxwell Pascal" CACHE STRING "CUDA architectures to compile for; one or more of Fermi, Kepler, Maxwell, Pascal, Volta, or valid sm_[0-9][0-9]" )
++set( GPU_TARGET "Kepler Maxwell Pascal" CACHE STRING "CUDA architectures to compile for; one or more of Fermi, Kepler, Maxwell, Pascal, Volta, Turing, Ampere or valid sm_[0-9][0-9]" )
+ find_package( CUDA )
+ if (CUDA_FOUND)
+     message( STATUS "Found CUDA ${CUDA_VERSION}" )
+@@ -136,21 +136,25 @@
+     endif()
+ 
+     if (${GPU_TARGET} MATCHES Maxwell)
+-        set( GPU_TARGET "${GPU_TARGET} sm_50" )
++        set( GPU_TARGET "${GPU_TARGET} sm_50 sm_52 sm_53" )
+     endif()
+ 
+     if (${GPU_TARGET} MATCHES Pascal)
+-        set( GPU_TARGET "${GPU_TARGET} sm_60" )
++        set( GPU_TARGET "${GPU_TARGET} sm_60 sm_61 sm_62" )
+     endif()
+ 
+     if (${GPU_TARGET} MATCHES Volta)
+-        set( GPU_TARGET "${GPU_TARGET} sm_70" )
++        set( GPU_TARGET "${GPU_TARGET} sm_70 sm_72" )
+     endif()
+ 
+     if (${GPU_TARGET} MATCHES Turing)
+         set( GPU_TARGET "${GPU_TARGET} sm_75" )
+     endif()
+ 
++    if (${GPU_TARGET} MATCHES Ampere)
++        set( GPU_TARGET "${GPU_TARGET} sm_80 sm_86" )
++    endif()
++
+     if (${GPU_TARGET} MATCHES sm_20)
+         if (NOT MIN_ARCH)
+             set( MIN_ARCH 200 )
+@@ -259,8 +263,26 @@
+         message( STATUS "    compile for CUDA arch 7.5 (Turing)" )
+     endif()
+ 
++    if (${GPU_TARGET} MATCHES sm_80)
++        if (NOT MIN_ARCH)
++            set( MIN_ARCH 800 )
++        endif()
++        set( NV_SM ${NV_SM} -gencode arch=compute_80,code=sm_80 )
++        set( NV_COMP        -gencode arch=compute_80,code=compute_80 )
++        message( STATUS "    compile for CUDA arch 8.0 (Ampere)" )
++    endif()
++
++    if (${GPU_TARGET} MATCHES sm_86)
++        if (NOT MIN_ARCH)
++            set( MIN_ARCH 860 )
++        endif()
++        set( NV_SM ${NV_SM} -gencode arch=compute_86,code=sm_86 )
++        set( NV_COMP        -gencode arch=compute_86,code=compute_86 )
++        message( STATUS "    compile for CUDA arch 8.6 (Ampere)" )
++    endif()
++
+     if (NOT MIN_ARCH)
+-        message( FATAL_ERROR "GPU_TARGET must contain one or more of Fermi, Kepler, Maxwell, Pascal, Volta, Turing, or valid sm_[0-9][0-9]" )
++        message( FATAL_ERROR "GPU_TARGET must contain one or more of Fermi, Kepler, Maxwell, Pascal, Volta, Turing, Ampere or valid sm_[0-9][0-9]" )
+     endif()
+ 
+         set( CUDA_NVCC_FLAGS ${CUDA_NVCC_FLAGS} -Xcompiler -fPIC -DHAVE_CUBLAS ${NV_SM} ${NV_COMP} ${FORTRAN_CONVENTION} )
+diff -aur --color magma-2.5.3-old/interface_cuda/interface.cpp magma-2.5.3-new/interface_cuda/interface.cpp
+--- magma-2.5.3-old/interface_cuda/interface.cpp	2020-03-30 03:48:24.000000000 +0300
++++ magma-2.5.3-new/interface_cuda/interface.cpp	2020-06-22 15:48:15.192500739 +0300
+@@ -458,7 +458,11 @@
+             err = cudaPointerGetAttributes( &attr, const_cast<void*>( A ));
+             if ( ! err ) {
+                 // definitely know type
++#if (CUDA_VERSION >= 10000)
++                return (attr.type == cudaMemoryTypeDevice);
++#else
+                 return (attr.memoryType == cudaMemoryTypeDevice);
++#endif
+             }
+             else if ( err == cudaErrorInvalidValue ) {
+                 // clear error; see http://icl.cs.utk.edu/magma/forum/viewtopic.php?f=2&t=529

Copied: magma/repos/community-staging-x86_64/disable_magma_sparse.patch (from rev 714404, magma/trunk/disable_magma_sparse.patch)
===================================================================
--- community-staging-x86_64/disable_magma_sparse.patch	                        (rev 0)
+++ community-staging-x86_64/disable_magma_sparse.patch	2020-10-01 21:54:12 UTC (rev 714405)
@@ -0,0 +1,69 @@
+diff -ruN magma-2.5.3/CMakeLists.txt magma-2.5.3-patched/CMakeLists.txt
+--- magma-2.5.3/CMakeLists.txt	2020-03-30 02:48:20.000000000 +0200
++++ magma-2.5.3-patched/CMakeLists.txt	2020-07-13 02:39:59.957710966 +0200
+@@ -491,19 +504,19 @@
+ # compile MAGMA sparse library
+ 
+ # sparse doesn't have Fortran at the moment, so no need for above shenanigans
+-include_directories( sparse/include )
+-include_directories( sparse/control )
+-include_directories( testing )
+-cuda_add_library( magma_sparse ${libsparse_all} )
+-target_link_libraries( magma_sparse
+-    magma
+-    ${blas_fix}
+-    ${LAPACK_LIBRARIES}
+-    ${CUDA_CUDART_LIBRARY}
+-    ${CUDA_CUBLAS_LIBRARIES}
+-    ${CUDA_cusparse_LIBRARY}
+-)
+-add_custom_target( sparse-lib DEPENDS magma_sparse )
++# include_directories( sparse/include )
++# include_directories( sparse/control )
++# include_directories( testing )
++# cuda_add_library( magma_sparse ${libsparse_all} )
++# target_link_libraries( magma_sparse
++#     magma
++#     ${blas_fix}
++#     ${LAPACK_LIBRARIES}
++#     ${CUDA_CUDART_LIBRARY}
++#     ${CUDA_CUBLAS_LIBRARIES}
++#     ${CUDA_cusparse_LIBRARY}
++# )
++# add_custom_target( sparse-lib DEPENDS magma_sparse )
+ 
+ 
+ # ----------------------------------------
+@@ -534,21 +547,21 @@
+ 
+ # ----------------------------------------
+ # compile each sparse tester
+-set( CMAKE_RUNTIME_OUTPUT_DIRECTORY sparse/testing )
+-foreach( TEST ${sparse_testing_all} )
+-    string( REGEX REPLACE "\\.(cpp|f90|F90)"     "" EXE ${TEST} )
+-    string( REGEX REPLACE "sparse/testing/" "" EXE ${EXE} )
+-    #message( "${TEST} --> ${EXE}" )
+-    add_executable( ${EXE} ${TEST} )
+-    target_link_libraries( ${EXE} magma_sparse magma )
+-    list( APPEND sparse-testing ${EXE} )
+-endforeach()
+-add_custom_target( sparse-testing DEPENDS ${sparse-testing} )
++# set( CMAKE_RUNTIME_OUTPUT_DIRECTORY sparse/testing )
++# foreach( TEST ${sparse_testing_all} )
++#     string( REGEX REPLACE "\\.(cpp|f90|F90)"     "" EXE ${TEST} )
++#     string( REGEX REPLACE "sparse/testing/" "" EXE ${EXE} )
++#     #message( "${TEST} --> ${EXE}" )
++#     add_executable( ${EXE} ${TEST} )
++#     target_link_libraries( ${EXE} magma_sparse magma )
++#     list( APPEND sparse-testing ${EXE} )
++# endforeach()
++# add_custom_target( sparse-testing DEPENDS ${sparse-testing} )
+ 
+ 
+ # ----------------------------------------
+ # what to install
+-install( TARGETS magma magma_sparse ${blas_fix}
++install( TARGETS magma ${blas_fix}
+          RUNTIME DESTINATION bin
+          LIBRARY DESTINATION lib
+          ARCHIVE DESTINATION lib )



More information about the arch-commits mailing list