diff options
author | Tom Westerhout <14264576+twesterhout@users.noreply.github.com> | 2023-08-22 13:45:05 +0200 |
---|---|---|
committer | Tom Westerhout <14264576+twesterhout@users.noreply.github.com> | 2023-11-25 14:50:37 +0100 |
commit | a9379d0b03c8493c14990ea281ff9aee9b7d02e4 (patch) | |
tree | 939abe08086aa4383226d6e3ef0228d022ca033c /pkgs | |
parent | 85458fd2416b4168d04a85f89fd19eb931eee210 (diff) | |
download | nixlib-a9379d0b03c8493c14990ea281ff9aee9b7d02e4.tar nixlib-a9379d0b03c8493c14990ea281ff9aee9b7d02e4.tar.gz nixlib-a9379d0b03c8493c14990ea281ff9aee9b7d02e4.tar.bz2 nixlib-a9379d0b03c8493c14990ea281ff9aee9b7d02e4.tar.lz nixlib-a9379d0b03c8493c14990ea281ff9aee9b7d02e4.tar.xz nixlib-a9379d0b03c8493c14990ea281ff9aee9b7d02e4.tar.zst nixlib-a9379d0b03c8493c14990ea281ff9aee9b7d02e4.zip |
arrayfire: 3.7.3 -> 3.9.0-pre
Diffstat (limited to 'pkgs')
-rw-r--r-- | pkgs/development/libraries/arrayfire/default.nix | 210 | ||||
-rw-r--r-- | pkgs/development/libraries/arrayfire/no-download.patch | 28 | ||||
-rw-r--r-- | pkgs/development/libraries/forge/default.nix | 69 | ||||
-rw-r--r-- | pkgs/top-level/all-packages.nix | 8 |
4 files changed, 206 insertions, 109 deletions
diff --git a/pkgs/development/libraries/arrayfire/default.nix b/pkgs/development/libraries/arrayfire/default.nix index 2c1caf0bbb2b..5c52a43e4878 100644 --- a/pkgs/development/libraries/arrayfire/default.nix +++ b/pkgs/development/libraries/arrayfire/default.nix @@ -1,91 +1,183 @@ -{ lib -, stdenv -, fetchFromGitHub +{ blas +, boost , cmake -, pkg-config -, opencl-clhpp -, ocl-icd +, config +, cudaPackages +, fetchFromGitHub , fftw , fftwFloat -, blas +, fmt_9 +, forge +, freeimage +, git +, gtest , lapack -, boost -, mesa -, libGLU +, lib , libGL -, freeimage +, mesa +, ocl-icd +, opencl-clhpp +, pkg-config , python3 -, clfft -, clblas -, doxygen -, buildDocs ? false -, config -, cudaSupport ? config.cudaSupport -, cudatoolkit -, darwin +, span-lite +, stdenv +, doCheck ? false +, withCPU ? true +, withCuda ? config.cudaSupport +, withOpenCL ? stdenv.isLinux +, nvidiaComputeDrivers ? null }: +assert blas.isILP64 == false; + stdenv.mkDerivation rec { pname = "arrayfire"; - version = "3.7.3"; + version = "3.9.0-pre"; src = fetchFromGitHub { owner = pname; repo = pname; - rev = "v${version}"; - sha256 = "0gcbg6b6gs38xhks5pp0vkcqs89zl7rh9982jqlzsd0h724qddw0"; - fetchSubmodules = true; + rev = "d2a66367d859cdb554f2374e29d39c88d5fff978"; + hash = "sha256-9r1w0U9MvhduHwBpEWpqkrQPawd94EY3FAqSJghi09I="; + }; + + assets = fetchFromGitHub { + owner = pname; + repo = "assets"; + rev = "cd08d749611b324012555ad6f23fd76c5465bd6c"; + sha256 = "sha256-v4uhqPz1P1g1430FTmMp22xJS50bb5hZTeEX49GgMWg="; + }; + clblast = fetchFromGitHub { + owner = "cnugteren"; + repo = "CLBlast"; + rev = "4500a03440e2cc54998c0edab366babf5e504d67"; + sha256 = "sha256-I25ylQp6kHZx6Q7Ph5r3abWlQ6yeIHIDdS1eGCyArZ0="; + }; + clfft = fetchFromGitHub { + owner = pname; + repo = "clfft"; + rev = "760096b37dcc4f18ccd1aac53f3501a83b83449c"; + sha256 = "sha256-vJo1YfC2AJIbbRj/zTfcOUmi0Oj9v64NfA9MfK8ecoY="; + }; + glad = fetchFromGitHub { + owner = pname; + repo = "glad"; + rev = "ef8c5508e72456b714820c98e034d9a55b970650"; + sha256 = "sha256-u9Vec7XLhE3xW9vzM7uuf+b18wZsh/VMtGbB6nMVlno="; + }; + threads = fetchFromGitHub { + owner = pname; + repo = "threads"; + rev = "4d4a4f0384d1ac2f25b2c4fc1d57b9e25f4d6818"; + sha256 = "sha256-qqsT9woJDtQvzuV323OYXm68pExygYs/+zZNmg2sN34="; + }; + test-data = fetchFromGitHub { + owner = pname; + repo = "arrayfire-data"; + rev = "a5f533d7b864a4d8f0dd7c9aaad5ff06018c4867"; + sha256 = "sha256-AWzhsrDXyZrQN2bd0Ng/XlE8v02x7QWTiFTyaAuRXSw="; + }; + cub = fetchFromGitHub { + owner = "NVIDIA"; + repo = "cub"; + rev = "1.10.0"; + sha256 = "sha256-JyyNaTrtoSGiMP7tVUu9lFL07lyfJzRTVtx8yGy6/BI="; + }; + spdlog = fetchFromGitHub { + owner = "gabime"; + repo = "spdlog"; + rev = "v1.9.2"; + hash = "sha256-GSUdHtvV/97RyDKy8i+ticnSlQCubGGWHg4Oo+YAr8Y="; }; cmakeFlags = [ - "-DAF_BUILD_OPENCL=OFF" + "-DBUILD_TESTING=ON" "-DAF_BUILD_EXAMPLES=OFF" - "-DBUILD_TESTING=OFF" - ] ++ lib.optional cudaSupport "-DCMAKE_LIBRARY_PATH=${cudatoolkit}/lib/stubs"; - - patches = [ ./no-download.patch ]; + "-DAF_COMPUTE_LIBRARY='FFTW/LAPACK/BLAS'" + "-DAF_TEST_WITH_MTX_FILES=OFF" + "-DAF_WITH_SPDLOG_HEADER_ONLY=ON" + "-DAF_BUILD_FORGE=OFF" + (if withCPU then "-DAF_BUILD_CPU=ON" else "-DAF_BUILD_CPU=OFF") + (if withOpenCL then "-DAF_BUILD_OPENCL=ON" else "-DAF_BUILD_OPENCL=OFF") + (if withCuda then "-DAF_BUILD_CUDA=ON" else "-DAF_BUILD_CUDA=OFF") + ] ++ lib.optionals withCuda [ + "-DCUDA_LIBRARIES_PATH=${cudaPackages.cudatoolkit}/lib" + ]; postPatch = '' - mkdir -p ./build/third_party/clFFT/src - cp -R --no-preserve=mode,ownership ${clfft.src}/ ./build/third_party/clFFT/src/clFFT-ext/ - mkdir -p ./build/third_party/clBLAS/src - cp -R --no-preserve=mode,ownership ${clblas.src}/ ./build/third_party/clBLAS/src/clBLAS-ext/ - mkdir -p ./build/include/CL - cp -R --no-preserve=mode,ownership ${opencl-clhpp}/include/CL/cl2.hpp ./build/include/CL/cl2.hpp - ''; + mkdir -p ./extern/af_glad-src + mkdir -p ./extern/af_threads-src + mkdir -p ./extern/af_assets-src + mkdir -p ./extern/af_test_data-src + mkdir -p ./extern/ocl_clfft-src + mkdir -p ./extern/ocl_clblast-src + mkdir -p ./extern/nv_cub-src + mkdir -p ./extern/spdlog-src + cp -R --no-preserve=mode,ownership ${glad}/* ./extern/af_glad-src/ + cp -R --no-preserve=mode,ownership ${threads}/* ./extern/af_threads-src/ + cp -R --no-preserve=mode,ownership ${assets}/* ./extern/af_assets-src/ + cp -R --no-preserve=mode,ownership ${test-data}/* ./extern/af_test_data-src/ + cp -R --no-preserve=mode,ownership ${clfft}/* ./extern/ocl_clfft-src/ + cp -R --no-preserve=mode,ownership ${clblast}/* ./extern/ocl_clblast-src/ + cp -R --no-preserve=mode,ownership ${cub}/* ./extern/nv_cub-src/ + cp -R --no-preserve=mode,ownership ${spdlog}/* ./extern/spdlog-src/ - preBuild = lib.optionalString cudaSupport '' - export CUDA_PATH="${cudatoolkit}" + substituteInPlace src/api/unified/symbol_manager.cpp \ + --replace '"/opt/arrayfire-3/lib/",' \ + "\"$out/lib/\", \"/opt/arrayfire-3/lib/\"," ''; - nativeBuildInputs = [ - cmake - pkg-config - python3 - ]; - - strictDeps = true; + inherit doCheck; + checkPhase = + let + LD_LIBRARY_PATH = builtins.concatStringsSep ":" ( + [ "${forge}/lib" "${freeimage}/lib" ] + ++ lib.optional withCuda "${cudaPackages.cudatoolkit}/lib64" + ++ lib.optional (nvidiaComputeDrivers != null) "${nvidiaComputeDrivers}/lib" + ); + ctestFlags = builtins.concatStringsSep " " ( + [ "--output-on-errors" "-j1" ] + # See https://github.com/arrayfire/arrayfire/issues/3484 + ++ lib.optional withOpenCL "-E '(inverse_dense|cholesky_dense)'" + ); + in + '' + export LD_LIBRARY_PATH=${LD_LIBRARY_PATH} + '' + lib.optionalString (withOpenCL && nvidiaComputeDrivers != null) '' + export OCL_ICD_VENDORS=${nvidiaComputeDrivers}/etc/OpenCL/vendors + '' + '' + AF_TRACE=all AF_PRINT_ERRORS=1 ctest ${ctestFlags} + ''; buildInputs = [ - opencl-clhpp + blas + boost.dev + boost.out fftw fftwFloat - blas + fmt_9 + forge + freeimage + gtest lapack - libGLU libGL - mesa - freeimage - boost.out - boost.dev - ] ++ lib.optionals stdenv.isLinux [ ocl-icd - ] ++ lib.optionals cudaSupport [ - cudatoolkit - ] ++ lib.optionals buildDocs [ - doxygen - ] ++ lib.optionals stdenv.isDarwin [ - darwin.apple_sdk_11_0.frameworks.Accelerate + opencl-clhpp + span-lite + ] + ++ lib.optionals withCuda [ + cudaPackages.cudatoolkit + cudaPackages.cudnn + ] + ++ lib.optionals withOpenCL [ + mesa + ]; + + nativeBuildInputs = [ + cmake + git + pkg-config + python3 ]; meta = with lib; { @@ -96,6 +188,6 @@ stdenv.mkDerivation rec { license = licenses.bsd3; homepage = "https://arrayfire.com/"; platforms = platforms.linux ++ platforms.darwin; - maintainers = with maintainers; [ chessai ]; + maintainers = with maintainers; [ chessai twesterhout ]; }; } diff --git a/pkgs/development/libraries/arrayfire/no-download.patch b/pkgs/development/libraries/arrayfire/no-download.patch deleted file mode 100644 index 2b3ac492a54d..000000000000 --- a/pkgs/development/libraries/arrayfire/no-download.patch +++ /dev/null @@ -1,28 +0,0 @@ -diff --git a/CMakeModules/build_clBLAS.cmake b/CMakeModules/build_clBLAS.cmake -index 8de529e8..6361b613 100644 ---- a/CMakeModules/build_clBLAS.cmake -+++ b/CMakeModules/build_clBLAS.cmake -@@ -14,8 +14,7 @@ find_package(OpenCL) - - ExternalProject_Add( - clBLAS-ext -- GIT_REPOSITORY https://github.com/arrayfire/clBLAS.git -- GIT_TAG arrayfire-release -+ DOWNLOAD_COMMAND true - BUILD_BYPRODUCTS ${clBLAS_location} - PREFIX "${prefix}" - INSTALL_DIR "${prefix}" -diff --git a/CMakeModules/build_clFFT.cmake b/CMakeModules/build_clFFT.cmake -index 28be38a3..85e3915e 100644 ---- a/CMakeModules/build_clFFT.cmake -+++ b/CMakeModules/build_clFFT.cmake -@@ -20,8 +20,7 @@ ENDIF() - - ExternalProject_Add( - clFFT-ext -- GIT_REPOSITORY https://github.com/arrayfire/clFFT.git -- GIT_TAG arrayfire-release -+ DOWNLOAD_COMMAND true - PREFIX "${prefix}" - INSTALL_DIR "${prefix}" - UPDATE_COMMAND "" diff --git a/pkgs/development/libraries/forge/default.nix b/pkgs/development/libraries/forge/default.nix index ba85cea73d69..5497aec839ed 100644 --- a/pkgs/development/libraries/forge/default.nix +++ b/pkgs/development/libraries/forge/default.nix @@ -1,38 +1,72 @@ -{ lib, stdenv, fetchFromGitHub, cmake, pkg-config -, arrayfire, expat, fontconfig, freeimage, freetype, boost -, mesa, libGLU, libGL, glfw3, SDL2, cudatoolkit +{ boost +, cmake +, expat +, fetchFromGitHub +, fontconfig +, freeimage +, freetype +, git +, glfw3 +, glm +, lib +, libGLU +, libGL +, mesa +, opencl-clhpp +, pkg-config +, stdenv +, SDL2 }: stdenv.mkDerivation rec { pname = "forge"; - version = "1.0.4"; + version = "1.0.8"; src = fetchFromGitHub { owner = "arrayfire"; - repo = "forge"; - rev = "v${version}"; - sha256 = "00pmky6kccd7pwi8sma79qpmzr2f9pbn6gym3gyqm64yckw6m484"; - fetchSubmodules = true; + repo = pname; + rev = "v1.0.8"; + sha256 = "sha256-lSZAwcqAHiuZkpYcVfwvZCfNmEF3xGN9S/HuZQrGeKU="; }; + glad = fetchFromGitHub { + owner = "arrayfire"; + repo = "glad"; + rev = "b94680aee5b8ce01ae1644c5f2661769366c765a"; + sha256 = "sha256-CrZy76gOGMpy9f1NuMK4tokZ57U//zYeNH5ZYY0SC2U="; + }; + + postPatch = '' + mkdir -p ./extern/fg_glad-src + cp -R --no-preserve=mode,ownership ${glad}/* ./extern/fg_glad-src/ + ln -s ${opencl-clhpp} ./extern/cl2hpp + + substituteInPlace CMakeModules/ForgeConfigureDepsVars.cmake \ + --replace 'set(BUILD_OFFLINE OFF)' 'set(BUILD_OFFLINE ON)' + ''; + + cmakeFlags = [ "-DFETCHCONTENT_FULLY_DISCONNECTED=ON" ]; nativeBuildInputs = [ cmake + git pkg-config ]; buildInputs = [ - expat - fontconfig - freetype boost.out boost.dev + expat + fontconfig freeimage - mesa - libGLU libGL + freetype glfw3 + glm + libGL + libGLU + opencl-clhpp SDL2 - cudatoolkit - arrayfire + ] ++ lib.optionals (!stdenv.isDarwin) [ + mesa ]; meta = with lib; { @@ -44,8 +78,7 @@ stdenv.mkDerivation rec { ''; license = licenses.bsd3; homepage = "https://arrayfire.com/"; - platforms = platforms.linux; - maintainers = with maintainers; [ chessai ]; + platforms = platforms.linux ++ platforms.darwin; + maintainers = with maintainers; [ chessai twesterhout ]; }; - } diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 44e8876d1977..4df715fd3029 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -20548,7 +20548,9 @@ with pkgs; armadillo = callPackage ../development/libraries/armadillo { }; - arrayfire = darwin.apple_sdk_11_0.callPackage ../development/libraries/arrayfire { }; + arrayfire = darwin.apple_sdk_11_0.callPackage ../development/libraries/arrayfire { + cudaPackages = cudaPackages_12; + }; arrow-cpp = callPackage ../development/libraries/arrow-cpp { }; @@ -21190,9 +21192,7 @@ with pkgs; fflas-ffpack = callPackage ../development/libraries/fflas-ffpack { }; - forge = callPackage ../development/libraries/forge { - cudatoolkit = buildPackages.cudatoolkit_11; - }; + forge = callPackage ../development/libraries/forge { }; linbox = callPackage ../development/libraries/linbox { }; |