summarylogtreecommitdiffstats
path: root/PKGBUILD
diff options
context:
space:
mode:
Diffstat (limited to 'PKGBUILD')
-rw-r--r--PKGBUILD82
1 files changed, 36 insertions, 46 deletions
diff --git a/PKGBUILD b/PKGBUILD
index fd525f23a9e1..7a6b879627c5 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -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"
}