Date: Monday, July 13, 2020 @ 01:04:19 Author: svenstaro Revision: 663386
upgpkg: magma 2.5.3-2: cuda 11 rebuild I had to disable magma-sparse for the time being but that's ok as pytorch doesn't need it. Added: magma/trunk/disable_magma_sparse.patch Modified: magma/trunk/PKGBUILD ----------------------------+ PKGBUILD | 32 ++++++++++++------- disable_magma_sparse.patch | 69 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 89 insertions(+), 12 deletions(-) Modified: PKGBUILD =================================================================== --- PKGBUILD 2020-07-13 00:35:19 UTC (rev 663385) +++ PKGBUILD 2020-07-13 01:04:19 UTC (rev 663386) @@ -5,42 +5,50 @@ pkgname=magma pkgver=2.5.3 -pkgrel=1 +pkgrel=2 pkgdesc="Matrix Algebra on GPU and Multicore Architectures" arch=('x86_64') url="https://icl.cs.utk.edu/magma/" license=('custom') depends=('blas' 'gcc9' 'lapack' 'cuda') -makedepends=('gcc9-fortran' 'cmake') +makedepends=('gcc9-fortran' 'cmake' 'ninja') optdepends=('python2: for examples and tests' 'gcc9-fortran: Fortran interface') source=("${pkgname}-${pkgver}.tar.gz::http://icl.cs.utk.edu/projectsfiles/${pkgname}/downloads/${pkgname}-${pkgver}.tar.gz" - 'cuda11.patch') + 'cuda11.patch' + 'disable_magma_sparse.patch') sha256sums=('c602d269a9f9a3df28f6a4f593be819abb12ed3fa413bba1ff8183de721c5ef6' - '7a32d8de6fa845131eed3f7345baeb1531ef1d3cfa7e565b258e4cfbbaa66a5c') + '7a32d8de6fa845131eed3f7345baeb1531ef1d3cfa7e565b258e4cfbbaa66a5c' + '259c38004b26395278cdaf431591974e0589dedc0f8bfc14413f854c2a10424f') prepare() { - mkdir "${srcdir}"/build - patch -Np1 -i "${srcdir}/cuda11.patch" -d "${srcdir}/${pkgname}-${pkgver}" + cd ${pkgname}-${pkgver} + patch -Np1 -i "${srcdir}/cuda11.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 "${srcdir}"/build + cd ${pkgname}-${pkgver} CC=gcc-9 \ CXX=g++-9 \ FC=gfortran-9 \ - cmake "${srcdir}/${pkgname}-${pkgver}" \ + cmake \ + -Bbuild \ + -GNinja \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_INSTALL_PREFIX=/usr \ -DBUILD_SHARED_LIBS=ON \ - -DGPU_TARGET="sm_35 sm_37 sm_50 sm_53 sm_60 sm_61 sm_62 sm_70 sm_72 sm_75 sm_80" - make + -DGPU_TARGET="sm_53 sm_60 sm_61 sm_62 sm_70 sm_72 sm_75 sm_80" + ninja -C build } package() { - cd "${srcdir}"/build - make DESTDIR="${pkgdir}" install + 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/ Added: disable_magma_sparse.patch =================================================================== --- disable_magma_sparse.patch (rev 0) +++ disable_magma_sparse.patch 2020-07-13 01:04:19 UTC (rev 663386) @@ -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 )