Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 4 additions & 5 deletions pkgs/applications/misc/blender/default.nix
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
{ stdenv, stdenv_gcc5, lib, fetchurl, boost, cmake, ffmpeg, gettext, glew
{ stdenv, lib, fetchurl, boost, cmake, ffmpeg, gettext, glew
, ilmbase, libXi, libX11, libXext, libXrender
, libjpeg, libpng, libsamplerate, libsndfile
, libtiff, mesa, openal, opencolorio, openexr, openimageio, openjpeg_1, python
Expand All @@ -10,7 +10,7 @@

with lib;

(if cudaSupport then stdenv_gcc5 else stdenv).mkDerivation rec {
stdenv.mkDerivation rec {
name = "blender-2.79";

src = fetchurl {
Expand Down Expand Up @@ -57,9 +57,8 @@ with lib;
++ optional jackaudioSupport "-DWITH_JACK=ON"
++ optionals cudaSupport
[ "-DWITH_CYCLES_CUDA_BINARIES=ON"
# Disable the sm_20 architecture to work around a segfault in
# ptxas, as suggested on #blendercoders.
"-DCYCLES_CUDA_BINARIES_ARCH=sm_21;sm_30;sm_35;sm_37;sm_50;sm_52;sm_60;sm_61"
# Disable architectures before sm_30 to support new CUDA toolkits.
"-DCYCLES_CUDA_BINARIES_ARCH=sm_30;sm_35;sm_37;sm_50;sm_52;sm_60;sm_61"
]
++ optional colladaSupport "-DWITH_OPENCOLLADA=ON";

Expand Down
23 changes: 17 additions & 6 deletions pkgs/applications/science/math/caffe/default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -22,22 +22,23 @@ assert pythonSupport -> (python != null && numpy != null);

stdenv.mkDerivation rec {
name = "caffe-${version}";
version = "1.0-rc5";
version = "1.0";

src = fetchFromGitHub {
owner = "BVLC";
repo = "caffe";
rev = "rc5";
sha256 = "0lfmmc0n6xvkpygvxclzrvd0zigb4yfc5612anv2ahlxpfi9031c";
rev = version;
sha256 = "104jp3cm823i3cdph7hgsnj6l77ygbwsy35mdmzhmsi4jxprd9j3";
};

enableParallelBuilding = true;

nativeBuildInputs = [ cmake doxygen ];

cmakeFlags = [ "-DCUDA_ARCH_NAME=All" ]
++ lib.optional (!cudaSupport) "-DCPU_ONLY=ON"
++ lib.optional (!pythonSupport) "-DBUILD_python=OFF";
cmakeFlags = [
"-DCUDA_ARCH_NAME=All"
(if pythonSupport then "-Dpython_version=${python.version}" else "-DBUILD_python=OFF")
] ++ lib.optional (!cudaSupport) "-DCPU_ONLY=ON";

buildInputs = [ boost google-gflags glog protobuf hdf5-cpp lmdb leveldb snappy opencv atlas ]
++ lib.optional cudaSupport cudatoolkit
Expand All @@ -49,6 +50,16 @@ stdenv.mkDerivation rec {
outputs = [ "bin" "out"];
propagatedBuildOutputs = []; # otherwise propagates out -> bin cycle

preConfigure = lib.optionalString (cudaSupport && lib.versionAtLeast cudatoolkit.version "9.0") ''
# CUDA 9.0 doesn't support sm_20
sed -i 's,20 21(20) ,,' cmake/Cuda.cmake
'' + lib.optionalString (python.isPy3 or false) ''
sed -i \
-e 's,"python-py''${boost_py_version}",python3,g' \
-e 's,''${Boost_PYTHON-PY''${boost_py_version}_FOUND},''${Boost_PYTHON3_FOUND},g' \
cmake/Dependencies.cmake
'';

postInstall = ''
# Internal static library.
rm $out/lib/libproto.a
Expand Down
68 changes: 52 additions & 16 deletions pkgs/development/compilers/cudatoolkit/default.nix
Original file line number Diff line number Diff line change
@@ -1,30 +1,44 @@
{ lib, stdenv, fetchurl, patchelf, perl, ncurses, expat, python27, zlib
{ lib, stdenv, makeWrapper, fetchurl, requireFile, patchelf, perl, ncurses, expat, python27, zlib
, gcc48, gcc49, gcc5, gcc6
, xorg, gtk2, glib, fontconfig, freetype, unixODBC, alsaLib, glibc
}:

let

common =
{ version, url, sha256
args@{ gcc, version, sha256
, url ? ""
, name ? ""
, developerProgram ? false
, python ? python27
}:

stdenv.mkDerivation rec {
name = "cudatoolkit-${version}";
inherit (args) version;

dontPatchELF = true;
dontStrip = true;

src =
if stdenv.system == "x86_64-linux" then
fetchurl {
inherit url sha256;
if developerProgram then
requireFile {
message = ''
This nix expression requires that ${args.name} is already part of the store.
Register yourself to NVIDIA Accelerated Computing Developer Program, retrieve the CUDA toolkit
at https://developer.nvidia.com/cuda-toolkit, and run the following command in the download directory:
nix-prefetch-url file://${args.name}
'';
inherit (args) name sha256;
}
else throw "cudatoolkit does not support platform ${stdenv.system}";
else
fetchurl {
inherit (args) url sha256;
};

outputs = [ "out" "lib" "doc" ];

buildInputs = [ perl ];
nativeBuildInputs = [ perl makeWrapper ];

runtimeDependencies = [
ncurses expat python zlib glibc
Expand All @@ -37,8 +51,8 @@ let
unpackPhase = ''
sh $src --keep --noexec
cd pkg/run_files
sh cuda-linux64-rel-${version}-*.run --keep --noexec
sh cuda-samples-linux-${version}-*.run --keep --noexec
sh cuda-linux*.run --keep --noexec
sh cuda-samples*.run --keep --noexec
cd pkg
'';

Expand Down Expand Up @@ -92,15 +106,25 @@ let
# Remove OpenCL libraries as they are provided by ocl-icd and driver.
rm -f $out/lib64/libOpenCL*

# Set compiler for NVCC.
wrapProgram $out/bin/nvcc \
--prefix PATH : ${gcc}/bin
'' + lib.optionalString (lib.versionOlder version "8.0") ''
# Hack to fix building against recent Glibc/GCC.
echo "NIX_CFLAGS_COMPILE+=' -D_FORCE_INLINES'" >> $out/nix-support/setup-hook
'';

passthru = {
cc = gcc;
majorVersion =
let versionParts = lib.splitString "." version;
in "${lib.elemAt versionParts 0}.${lib.elemAt versionParts 1}";
};

meta = with stdenv.lib; {
description = "A compiler for NVIDIA GPUs, math libraries, and tools";
homepage = https://developer.nvidia.com/cuda-toolkit;
platforms = platforms.linux;
homepage = "https://developer.nvidia.com/cuda-toolkit";
platforms = [ "x86_64-linux" ];
license = licenses.unfree;
};
};
Expand All @@ -109,32 +133,44 @@ in {

cudatoolkit6 = common {
version = "6.0.37";
url = http://developer.download.nvidia.com/compute/cuda/6_0/rel/installers/cuda_6.0.37_linux_64.run;
url = "http://developer.download.nvidia.com/compute/cuda/6_0/rel/installers/cuda_6.0.37_linux_64.run";
sha256 = "991e436c7a6c94ec67cf44204d136adfef87baa3ded270544fa211179779bc40";
gcc = gcc48;
};

cudatoolkit65 = common {
version = "6.5.19";
url = http://developer.download.nvidia.com/compute/cuda/6_5/rel/installers/cuda_6.5.19_linux_64.run;
url = "http://developer.download.nvidia.com/compute/cuda/6_5/rel/installers/cuda_6.5.19_linux_64.run";
sha256 = "1x9zdmk8z784d3d35vr2ak1l4h5v4jfjhpxfi9fl9dvjkcavqyaj";
gcc = gcc48;
};

cudatoolkit7 = common {
version = "7.0.28";
url = http://developer.download.nvidia.com/compute/cuda/7_0/Prod/local_installers/cuda_7.0.28_linux.run;
url = "http://developer.download.nvidia.com/compute/cuda/7_0/Prod/local_installers/cuda_7.0.28_linux.run";
sha256 = "1km5hpiimx11jcazg0h3mjzk220klwahs2vfqhjavpds5ff2wafi";
gcc = gcc49;
};

cudatoolkit75 = common {
version = "7.5.18";
url = http://developer.download.nvidia.com/compute/cuda/7.5/Prod/local_installers/cuda_7.5.18_linux.run;
url = "http://developer.download.nvidia.com/compute/cuda/7.5/Prod/local_installers/cuda_7.5.18_linux.run";
sha256 = "1v2ylzp34ijyhcxyh5p6i0cwawwbbdhni2l5l4qm21s1cx9ish88";
gcc = gcc49;
};

cudatoolkit8 = common {
version = "8.0.61";
url = https://developer.nvidia.com/compute/cuda/8.0/Prod2/local_installers/cuda_8.0.61_375.26_linux-run;
url = "https://developer.nvidia.com/compute/cuda/8.0/Prod2/local_installers/cuda_8.0.61_375.26_linux-run";
sha256 = "1i4xrsqbad283qffvysn88w2pmxzxbbby41lw0j1113z771akv4w";
gcc = gcc5;
};

cudatoolkit9 = common {
version = "9.0.176";
url = "https://developer.nvidia.com/compute/cuda/9.0/Prod/local_installers/cuda_9.0.176_384.81_linux-run";
sha256 = "0308rmmychxfa4inb1ird9bpgfppgr9yrfg1qp0val5azqik91ln";
gcc = gcc6;
};

}
Expand Down
10 changes: 6 additions & 4 deletions pkgs/development/libraries/opencv/3.x.nix
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
, enableGStreamer ? false, gst_all_1
, enableEigen ? true, eigen
, enableOpenblas ? true, openblas
, enableCuda ? false, cudatoolkit, gcc5
, enableCuda ? false, cudatoolkit
, enableTesseract ? false, tesseract, leptonica
, AVFoundation, Cocoa, QTKit
}:
Expand Down Expand Up @@ -145,7 +145,7 @@ stdenv.mkDerivation rec {
# simply enabled automatically if contrib is built, and it detects
# tesseract & leptonica.
++ lib.optionals enableTesseract [ tesseract leptonica ]
++ lib.optionals enableCuda [ cudatoolkit gcc5 ]
++ lib.optional enableCuda cudatoolkit
++ lib.optional buildContrib protobuf
++ lib.optionals stdenv.isDarwin [ AVFoundation Cocoa QTKit ];

Expand All @@ -165,8 +165,10 @@ stdenv.mkDerivation rec {
(opencvFlag "OPENEXR" enableEXR)
(opencvFlag "CUDA" enableCuda)
(opencvFlag "CUBLAS" enableCuda)
] ++ lib.optionals enableCuda [ "-DCUDA_FAST_MATH=ON" ]
++ lib.optional buildContrib "-DBUILD_PROTOBUF=off"
] ++ lib.optionals enableCuda [
"-DCUDA_FAST_MATH=ON"
"-DCUDA_HOST_COMPILER=${cudatoolkit.cc}/bin/gcc"
] ++ lib.optional buildContrib "-DBUILD_PROTOBUF=off"
++ lib.optionals stdenv.isDarwin ["-DWITH_OPENCL=OFF" "-DWITH_LAPACK=OFF"];

enableParallelBuilding = true;
Expand Down
10 changes: 5 additions & 5 deletions pkgs/development/libraries/opensubdiv/default.nix
Original file line number Diff line number Diff line change
@@ -1,17 +1,17 @@
{ lib, stdenv, stdenv_gcc5, fetchurl, fetchFromGitHub, cmake, pkgconfig, xorg, mesa_glu
{ lib, stdenv, fetchurl, fetchFromGitHub, cmake, pkgconfig, xorg, mesa_glu
, mesa_noglu, glew, ocl-icd, python3
, cudaSupport ? false, cudatoolkit
}:

(if cudaSupport then stdenv_gcc5 else stdenv).mkDerivation rec {
stdenv.mkDerivation rec {
name = "opensubdiv-${version}";
version = "3.2.0";
version = "3.3.0";

src = fetchFromGitHub {
owner = "PixarAnimationStudios";
repo = "OpenSubdiv";
rev = "v${lib.replaceChars ["."] ["_"] version}";
sha256 = "0wk12n1s8za3sz8d6bmfm3rfjyx20j48gy1xp57dvbnjvlvzqy3w";
sha256 = "0wpjwfik4q9s4r30hndhzmfyzv968mmg5lgng0123l07mn47d2yl";
};

outputs = [ "out" "dev" ];
Expand All @@ -30,7 +30,7 @@
"-DNO_EXAMPLES=1"
"-DGLEW_INCLUDE_DIR=${glew.dev}/include"
"-DGLEW_LIBRARY=${glew.dev}/lib"
];
] ++ lib.optional cudaSupport "-DOSD_CUDA_NVCC_FLAGS=--gpu-architecture=compute_30";

enableParallelBuilding = true;

Expand Down
73 changes: 0 additions & 73 deletions pkgs/development/libraries/science/math/clblas/cuda/default.nix

This file was deleted.

Loading