73 lines
1.6 KiB
Nix
73 lines
1.6 KiB
Nix
{
|
|
lib,
|
|
stdenv,
|
|
fetchFromGitHub,
|
|
cmake,
|
|
gfortran,
|
|
python3,
|
|
amd-blis,
|
|
aocl-utils,
|
|
|
|
withOpenMP ? true,
|
|
blas64 ? false,
|
|
withAMDOpt ? true,
|
|
}:
|
|
|
|
stdenv.mkDerivation rec {
|
|
pname = "amd-libflame";
|
|
version = "5.0";
|
|
|
|
src = fetchFromGitHub {
|
|
owner = "amd";
|
|
repo = "libflame";
|
|
rev = version;
|
|
hash = "sha256-Shsv5Zd59FN5tq1LY7QqPRtAHEysHIVbPeKIIZ/2eMw=";
|
|
};
|
|
|
|
postPatch = ''
|
|
patchShebangs build
|
|
|
|
# Enforce reproducible build compiler flags
|
|
substituteInPlace CMakeLists.txt --replace '-mtune=native' ""
|
|
'';
|
|
|
|
passthru = {
|
|
inherit blas64;
|
|
};
|
|
|
|
nativeBuildInputs = [
|
|
cmake
|
|
gfortran
|
|
python3
|
|
];
|
|
|
|
buildInputs = [
|
|
amd-blis
|
|
aocl-utils
|
|
];
|
|
|
|
cmakeFlags =
|
|
[
|
|
"-DLIBAOCLUTILS_LIBRARY_PATH=${lib.getLib aocl-utils}/lib/libaoclutils${stdenv.hostPlatform.extensions.sharedLibrary}"
|
|
"-DLIBAOCLUTILS_INCLUDE_PATH=${lib.getDev aocl-utils}/include"
|
|
"-DENABLE_BUILTIN_LAPACK2FLAME=ON"
|
|
"-DENABLE_CBLAS_INTERFACES=ON"
|
|
"-DENABLE_EXT_LAPACK_INTERFACE=ON"
|
|
]
|
|
++ lib.optional (!withOpenMP) "-DENABLE_MULTITHREADING=OFF"
|
|
++ lib.optional blas64 "-DENABLE_ILP64=ON"
|
|
++ lib.optional withAMDOpt "-DENABLE_AMD_OPT=ON";
|
|
|
|
postInstall = ''
|
|
ln -s $out/lib/libflame.so $out/lib/liblapack.so.3
|
|
ln -s $out/lib/libflame.so $out/lib/liblapacke.so.3
|
|
'';
|
|
|
|
meta = with lib; {
|
|
description = "LAPACK-compatible linear algebra library optimized for AMD CPUs";
|
|
homepage = "https://developer.amd.com/amd-aocl/blas-library/";
|
|
license = licenses.bsd3;
|
|
maintainers = [ maintainers.markuskowa ];
|
|
platforms = [ "x86_64-linux" ];
|
|
};
|
|
}
|