diff options
Diffstat (limited to 'PKGBUILD')
-rw-r--r-- | PKGBUILD | 82 |
1 files changed, 36 insertions, 46 deletions
@@ -1,62 +1,52 @@ -# Maintainer: Markus Näther <naether.markus@gmail.com> +# Maintainer: Torsten Keßler <tpkessler at archlinux dot org> +# Contributor: Markus Näther <naether.markus@gmail.com> pkgname=rocblas -pkgver=3.5.0 +pkgver=5.4.1 pkgrel=1 pkgdesc='Next generation BLAS implementation for ROCm platform' arch=('x86_64') url='https://rocblas.readthedocs.io/en/latest' license=('MIT') -depends=('hip-rocclr' 'openmp') -makedepends=('cmake' 'python' 'python-virtualenv' 'python-pyaml' 'perl-file-which' 'rocm-cmake' 'llvm-amdgpu') +depends=('hip' 'openmp') +makedepends=('rocm-cmake' 'python' 'python-virtualenv' 'python-pyaml' 'python-wheel' + 'perl-file-which' 'python-msgpack' 'msgpack-cxx' 'gcc-fortran') _rocblas='https://github.com/ROCmSoftwarePlatform/rocBLAS' _tensile='https://github.com/ROCmSoftwarePlatform/Tensile' source=("$pkgname-$pkgver.tar.gz::$_rocblas/archive/rocm-$pkgver.tar.gz" - "rocm-tensile-$pkgver.tar.gz::$_tensile/archive/rocm-$pkgver.tar.gz") -sha256sums=('3e372c7c0504c0f18b5e69989083e68a45131e675912082961a736cb3b1222fb' - '1afd2e28065849dc418efdc79fc3216208963cabc0c4efb870440b1c051a0f20') -options=(!strip) - -prepare() { - cd "$srcdir/Tensile-rocm-$pkgver" - # override __hcc_workweek__ - # https://github.com/rocm-arch/rocm-arch/issues/68#issuecomment-604272120 - sed -i 's/__hcc_workweek__/99999/g' $(grep __hcc_workweek__ . -rIl) -} + "$pkgname-tensile-$pkgver.tar.gz::$_tensile/archive/refs/tags/rocm-$pkgver.tar.gz") +sha256sums=('2f6d30b025306ba5f378154eb0494ac9260190120d085b67c3f499e7d2b6a70b' + '6bcc08426c14c203c799c93815293c2a17d5b656936536dcece1302d53816cef') +options=(!lto) +_dirname="$(basename "$_rocblas")-$(basename "${source[0]}" ".tar.gz")" +_tensile_dir="$(basename "$_tensile")-$(basename "${source[1]}" ".tar.gz")" build() { - # fix broken build with stack protection - export CFLAGS="$(sed -e 's/-fstack-protector-strong//' <<< "$CFLAGS")" - export CXXFLAGS="$(sed -e 's/-fstack-protector-strong//' <<< "$CXXFLAGS")" - export CPPFLAGS="$(sed -e 's/-fstack-protector-strong//' <<< "$CPPFLAGS")" - - CXX=/opt/rocm/hip/bin/hipcc \ - cmake -B build -Wno-dev \ - -DCMAKE_INSTALL_PREFIX=/opt/rocm \ - -DCMAKE_PREFIX_PATH=/opt/rocm/llvm/lib/cmake/llvm \ - -Damd_comgr_DIR=/opt/rocm/lib/cmake/amd_comgr \ - -DBUILD_WITH_TENSILE=ON \ - -DTensile_TEST_LOCAL_PATH="$srcdir/Tensile-rocm-$pkgver" \ - -DTensile_COMPILER=hipcc \ - -DTensile_ARCHITECTURE=all \ - -DTensile_LOGIC=asm_full \ - -DBUILD_CLIENTS_TESTS=OFF \ - -DBUILD_CLIENTS_BENCHMARKS=OFF \ - -DBUILD_CLIENTS_SAMPLES=OFF \ - -DBUILD_TESTING=OFF \ - "$srcdir/rocBLAS-rocm-$pkgver" - - # Fix for latest llvm - sed -i 's/Impl::inputOne(io, key, \*value)/Impl::inputOne(io, key.str(), \*value)/g' \ - $srcdir/build/virtualenv/lib/python*/site-packages/Tensile/Source/lib/include/Tensile/llvm/YAML.hpp - - make -C build + # -fcf-protection is not supported by HIP, see + # https://docs.amd.com/bundle/ROCm-Compiler-Reference-Guide-v5.4/page/Appendix_A.html + PATH="/opt/rocm/llvm/bin:/opt/rocm/bin:${PATH}" \ + CXXFLAGS="${CXXFLAGS} -fcf-protection=none" \ + cmake \ + -Wno-dev \ + -B build \ + -S "$_dirname" \ + -DCMAKE_BUILD_TYPE=None \ + -DCMAKE_CXX_COMPILER=/opt/rocm/bin/hipcc \ + -DCMAKE_INSTALL_PREFIX=/opt/rocm \ + -DCMAKE_PREFIX_PATH=/opt/rocm/llvm/lib/cmake/llvm \ + -Damd_comgr_DIR=/opt/rocm/lib/cmake/amd_comgr \ + -DBUILD_WITH_TENSILE=ON \ + -DTensile_LIBRARY_FORMAT=yaml \ + -DTensile_CODE_OBJECT_VERSION=V3 \ + -DCMAKE_TOOLCHAIN_FILE=toolchain-linux.cmake \ + -DTensile_TEST_LOCAL_PATH="$srcdir/$_tensile_dir" + cmake --build build } package() { - DESTDIR="$pkgdir" make -C build install + DESTDIR="$pkgdir" cmake --install build + + echo "/opt/rocm/$pkgname/lib" > "$pkgname.conf" + install -Dm644 "$pkgname.conf" "$pkgdir/etc/ld.so.conf.d/rocblas.conf" - install -Dm644 /dev/stdin "$pkgdir/etc/ld.so.conf.d/rocblas.conf" << EOF -/opt/rocm/rocblas/lib -EOF - install -Dm644 "$srcdir/rocBLAS-rocm-$pkgver/LICENSE.md" "$pkgdir/usr/share/licenses/$pkgname/LICENSE" + install -Dm644 "$_dirname/LICENSE.md" "$pkgdir/usr/share/licenses/$pkgname/LICENSE" } |