64 lines
2.6 KiB
Bash
64 lines
2.6 KiB
Bash
# POWER Maintainer: Alexander Baldeck <alex.bldck@gmail.com>
|
|
# Maintainer: Torsten Keßler <tpkessler at archlinux dot org>
|
|
# Contributor: Markus Näther <naether.markus@gmail.com>
|
|
# Contributor: Lubosz Sarnecki <lubosz@gmail.com>
|
|
pkgname=rocblas
|
|
pkgver=6.2.4
|
|
pkgrel=1
|
|
pkgdesc='Next generation BLAS implementation for ROCm platform'
|
|
arch=(x86_64 powerpc64le powerpc64 riscv64)
|
|
url='https://rocblas.readthedocs.io/en/latest'
|
|
license=('MIT')
|
|
depends=('rocm-core' 'hip-runtime-amd' 'glibc' 'gcc-libs' 'openmp')
|
|
makedepends=('rocm-cmake' 'python' 'python-virtualenv' 'python-pyaml' 'python-wheel' 'git'
|
|
'python-msgpack' 'python-joblib' 'perl-file-which' '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"
|
|
"$pkgname-tensile-$pkgver.tar.gz::$_tensile/archive/refs/tags/rocm-$pkgver.tar.gz"
|
|
"remove-mf16c-flag-as-f16-intrinsics.patch")
|
|
sha256sums=('8bacf74e3499c445f1bb0a8048df1ef3ce6f72388739b1823b5784fd1e8aa22a'
|
|
'dd0721e4371c8752aa4b14362f75d7ebb7805f57dcb990e03ae08cef4a291383'
|
|
'5ed4d48d747c36c7a3739abd0ee791d92754cbabade09be0e80261d3431bb268')
|
|
options=(!lto)
|
|
_dirname="$(basename "$_rocblas")-$(basename "${source[0]}" ".tar.gz")"
|
|
_tensile_dir="$(basename "$_tensile")-$(basename "${source[1]}" ".tar.gz")"
|
|
|
|
|
|
prepare() {
|
|
cd "$_dirname"
|
|
# https://github.com/ROCm/Tensile/issues/2044
|
|
patch -Np1 -i ../remove-mf16c-flag-as-f16-intrinsics.patch
|
|
}
|
|
|
|
build() {
|
|
# Compile source code for supported GPU archs in parallel
|
|
export HIPCC_COMPILE_FLAGS_APPEND="-parallel-jobs=4"
|
|
export HIPCC_LINK_FLAGS_APPEND="-parallel-jobs=4"
|
|
# -fcf-protection is not supported by HIP, see
|
|
# https://rocm.docs.amd.com/projects/llvm-project/en/latest/reference/rocmcc.html#support-status-of-other-clang-options
|
|
local cmake_args=(
|
|
-Wno-dev
|
|
-S "$_dirname"
|
|
-B build
|
|
-D CMAKE_BUILD_TYPE=None
|
|
-D CMAKE_CXX_COMPILER=/opt/rocm/bin/hipcc
|
|
-D CMAKE_TOOLCHAIN_FILE=toolchain-linux.cmake
|
|
-D CMAKE_CXX_FLAGS="${CXXFLAGS} -fcf-protection=none"
|
|
-D CMAKE_INSTALL_PREFIX=/opt/rocm
|
|
-D CMAKE_PREFIX_PATH=/opt/rocm/llvm/lib/cmake/llvm
|
|
-D amd_comgr_DIR=/opt/rocm/lib/cmake/amd_comgr
|
|
-D BUILD_WITH_TENSILE=ON
|
|
-D Tensile_LIBRARY_FORMAT=msgpack
|
|
-D Tensile_TEST_LOCAL_PATH="$srcdir/$_tensile_dir"
|
|
)
|
|
cmake "${cmake_args[@]}"
|
|
cmake --build build
|
|
}
|
|
|
|
package() {
|
|
DESTDIR="$pkgdir" cmake --install build
|
|
|
|
install -Dm644 "$_dirname/LICENSE.md" "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
|
|
}
|