Merge pull request #54967 from volhovm/volhovm/clmagma
clmagma: init at 1.3
This commit is contained in:
commit
f8cd096aad
|
@ -0,0 +1,75 @@
|
|||
{ stdenv, fetchurl, gfortran, opencl-headers, clblas, ocl-icd, mkl, intel-ocl }:
|
||||
|
||||
with stdenv.lib;
|
||||
|
||||
let
|
||||
version = "1.3.0";
|
||||
incfile = builtins.toFile "make.inc.custom" ''
|
||||
CC = g++
|
||||
FORT = gfortran
|
||||
|
||||
ARCH = ar
|
||||
ARCHFLAGS = cr
|
||||
RANLIB = ranlib
|
||||
|
||||
OPTS = -fPIC -O3 -DADD_ -Wall
|
||||
FOPTS = -fPIC -O3 -DADD_ -Wall -x f95-cpp-input
|
||||
F77OPTS = -fPIC -O3 -DADD_ -Wall
|
||||
LDOPTS = -fPIC
|
||||
|
||||
-include make.check-mkl
|
||||
-include make.check-clblas
|
||||
|
||||
# Gnu mkl is not available I guess?
|
||||
#LIB = -lmkl_gf_lp64 -lmkl_gnu_thread -lmkl_core -lpthread -lm -fopenmp
|
||||
LIB = -lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core -liomp5 -lm -fopenmp
|
||||
LIB += -lclBLAS -lOpenCL
|
||||
|
||||
LIBDIR = -L$(MKLROOT)/lib/intel64 \
|
||||
-L$(MKLROOT)/../compiler/lib/intel64 \
|
||||
-L$(clBLAS)/lib64
|
||||
|
||||
INC = -I$(clBLAS)/include
|
||||
#-I$(AMDAPP)/include
|
||||
'';
|
||||
in stdenv.mkDerivation {
|
||||
name = "clmagma-${version}";
|
||||
src = fetchurl {
|
||||
url = "http://icl.cs.utk.edu/projectsfiles/magma/cl/clmagma-${version}.tar.gz";
|
||||
sha256 = "1n27ny0xhwirw2ydn46pfcwy53gzia9zbam4irx44fd4d7f9ydv7";
|
||||
name = "clmagma-${version}.tar.gz";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
gfortran
|
||||
clblas
|
||||
opencl-headers
|
||||
ocl-icd
|
||||
mkl
|
||||
intel-ocl
|
||||
];
|
||||
|
||||
enableParallelBuilding=true;
|
||||
|
||||
MKLROOT = "${mkl}";
|
||||
clBLAS = "${clblas}";
|
||||
|
||||
# Otherwise build looks for it in /run/opengl-driver/etc/OpenCL/vendors,
|
||||
# which is not available.
|
||||
OPENCL_VENDOR_PATH="${intel-ocl}/etc/OpenCL/vendors";
|
||||
|
||||
preBuild = ''
|
||||
# By default it tries to use GPU, and thus fails for CPUs
|
||||
sed -i "s/CL_DEVICE_TYPE_GPU/CL_DEVICE_TYPE_DEFAULT/" interface_opencl/clmagma_runtime.cpp
|
||||
sed -i "s%/usr/local/clmagma%/$out%" Makefile.internal
|
||||
cp ${incfile} make.inc
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "Matrix Algebra on GPU and Multicore Architectures, OpenCL port";
|
||||
license = licenses.bsd3;
|
||||
homepage = http://icl.cs.utk.edu/magma/index.html;
|
||||
platforms = platforms.linux;
|
||||
maintainers = with maintainers; [ volhovm ];
|
||||
};
|
||||
}
|
|
@ -23883,6 +23883,7 @@ in
|
|||
lie = callPackage ../applications/science/math/LiE { };
|
||||
|
||||
magma = callPackage ../development/libraries/science/math/magma { };
|
||||
clmagma = callPackage ../development/libraries/science/math/clmagma { };
|
||||
|
||||
mathematica = callPackage ../applications/science/math/mathematica { };
|
||||
mathematica9 = callPackage ../applications/science/math/mathematica/9.nix { };
|
||||
|
|
Loading…
Reference in New Issue