summary refs log tree commit diff
path: root/pkgs
diff options
context:
space:
mode:
authorThomas Tuegel <ttuegel@secure.mailbox.org>2017-03-29 09:31:52 -0500
committerGitHub <noreply@github.com>2017-03-29 09:31:52 -0500
commit079ee6425ca9e7f93443103547af5f6228dabb71 (patch)
tree8aa02dd3cdf5abbdf53d33d348af535824c648fd /pkgs
parent8ff4c7957a7624283884d6633715b78fea9cf8a0 (diff)
parent6f721ce534d18730a29e3b632274ed11e20b42fd (diff)
downloadnixlib-079ee6425ca9e7f93443103547af5f6228dabb71.tar
nixlib-079ee6425ca9e7f93443103547af5f6228dabb71.tar.gz
nixlib-079ee6425ca9e7f93443103547af5f6228dabb71.tar.bz2
nixlib-079ee6425ca9e7f93443103547af5f6228dabb71.tar.lz
nixlib-079ee6425ca9e7f93443103547af5f6228dabb71.tar.xz
nixlib-079ee6425ca9e7f93443103547af5f6228dabb71.tar.zst
nixlib-079ee6425ca9e7f93443103547af5f6228dabb71.zip
Merge pull request #24443 from mdaiter/sparsesuiteCUDA
suitesparse: add CUDA support
Diffstat (limited to 'pkgs')
-rw-r--r--pkgs/development/libraries/science/math/suitesparse/default.nix19
1 files changed, 18 insertions, 1 deletions
diff --git a/pkgs/development/libraries/science/math/suitesparse/default.nix b/pkgs/development/libraries/science/math/suitesparse/default.nix
index 99f54cebddd1..10fc7bf10ac7 100644
--- a/pkgs/development/libraries/science/math/suitesparse/default.nix
+++ b/pkgs/development/libraries/science/math/suitesparse/default.nix
@@ -1,4 +1,6 @@
-{ stdenv, fetchurl, gfortran, openblas }:
+{ stdenv, fetchurl, gfortran, openblas
+, enableCuda  ? false, cudatoolkit
+}:
 
 let
   version = "4.4.4";
@@ -28,6 +30,21 @@ stdenv.mkDerivation {
   + stdenv.lib.optionalString stdenv.isDarwin ''
     sed -i "SuiteSparse_config/SuiteSparse_config.mk" \
         -e 's/^[[:space:]]*\(LIB = -lm\) -lrt/\1/'
+  ''
+  + stdenv.lib.optionalString enableCuda ''
+    sed -i "SuiteSparse_config/SuiteSparse_config.mk" \
+        -e 's|^[[:space:]]*\(CUDA_ROOT     =\)|CUDA_ROOT = ${cudatoolkit}|' \
+        -e 's|^[[:space:]]*\(GPU_BLAS_PATH =\)|GPU_BLAS_PATH = $(CUDA_ROOT)|' \
+        -e 's|^[[:space:]]*\(GPU_CONFIG    =\)|GPU_CONFIG = -I$(CUDA_ROOT)/include -DGPU_BLAS -DCHOLMOD_OMP_NUM_THREADS=$(NIX_BUILD_CORES) |' \
+        -e 's|^[[:space:]]*\(CUDA_PATH     =\)|CUDA_PATH = $(CUDA_ROOT)|' \
+        -e 's|^[[:space:]]*\(CUDART_LIB    =\)|CUDART_LIB = $(CUDA_ROOT)/lib64/libcudart.so|' \
+        -e 's|^[[:space:]]*\(CUBLAS_LIB    =\)|CUBLAS_LIB = $(CUDA_ROOT)/lib64/libcublas.so|' \
+        -e 's|^[[:space:]]*\(CUDA_INC_PATH =\)|CUDA_INC_PATH = $(CUDA_ROOT)/include/|' \
+        -e 's|^[[:space:]]*\(NV_20         =\)|NV_20 = -arch=sm_20 -Xcompiler -fPIC|' \
+        -e 's|^[[:space:]]*\(NV_30         =\)|NV_30 = -arch=sm_30 -Xcompiler -fPIC|' \
+        -e 's|^[[:space:]]*\(NV_35         =\)|NV_35 = -arch=sm_35 -Xcompiler -fPIC|' \
+        -e 's|^[[:space:]]*\(NVCC          =\) echo|NVCC = $(CUDA_ROOT)/bin/nvcc|' \
+        -e 's|^[[:space:]]*\(NVCCFLAGS     =\)|NVCCFLAGS = $(NV20) -O3 -gencode=arch=compute_20,code=sm_20 -gencode=arch=compute_30,code=sm_30 -gencode=arch=compute_35,code=sm_35 -gencode=arch=compute_60,code=sm_60|'
   '';
 
   makeFlags = [