forked from rarias/bscpkgs
Add oneMath
With support for MKL and CUDA enabled by default
This commit is contained in:
parent
f2f33fd0b4
commit
39157ea318
@ -24,6 +24,7 @@ let
|
|||||||
intelPackages_2024 = final.intel-apt.hpckit_2024;
|
intelPackages_2024 = final.intel-apt.hpckit_2024;
|
||||||
intelPackages_2025 = final.intel-apt.hpckit_2025;
|
intelPackages_2025 = final.intel-apt.hpckit_2025;
|
||||||
intelPackages = final.intelPackages_2025;
|
intelPackages = final.intelPackages_2025;
|
||||||
|
oneMath = callPackage ./pkgs/onemath/default.nix { };
|
||||||
jemallocNanos6 = callPackage ./pkgs/nanos6/jemalloc.nix { };
|
jemallocNanos6 = callPackage ./pkgs/nanos6/jemalloc.nix { };
|
||||||
lmbench = callPackage ./pkgs/lmbench/default.nix { };
|
lmbench = callPackage ./pkgs/lmbench/default.nix { };
|
||||||
mcxx = callPackage ./pkgs/mcxx/default.nix { };
|
mcxx = callPackage ./pkgs/mcxx/default.nix { };
|
||||||
|
73
pkgs/onemath/default.nix
Normal file
73
pkgs/onemath/default.nix
Normal file
@ -0,0 +1,73 @@
|
|||||||
|
{ lib
|
||||||
|
, intelPackages
|
||||||
|
, withCFlags
|
||||||
|
, fetchFromGitHub
|
||||||
|
, cmake
|
||||||
|
, cudaPackages
|
||||||
|
, enableNvidia ? true
|
||||||
|
, withHipTargets ? null # only one target at a time supported
|
||||||
|
, rocmPackages
|
||||||
|
, enableMkl ? true
|
||||||
|
}:
|
||||||
|
|
||||||
|
let
|
||||||
|
enableHip = withHipTargets != null;
|
||||||
|
|
||||||
|
stdenv = withCFlags (lib.optionals enableNvidia [ "--cuda-path=${cudaPackages.cudatoolkit}" ]) intelPackages.stdenv;
|
||||||
|
in
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
pname = "oneMath";
|
||||||
|
version = "0.7";
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "uxlfoundation";
|
||||||
|
repo = "oneMath";
|
||||||
|
rev = "v${version}";
|
||||||
|
sha256 = "sha256-De04PUmI68Jx4rJ+MRb+RepayZCapgnouCUCrAu6G38=";
|
||||||
|
};
|
||||||
|
|
||||||
|
cmakeFlags = [
|
||||||
|
(lib.cmakeBool "ENABLE_MKLCPU_BACKEND" enableMkl)
|
||||||
|
(lib.cmakeBool "ENABLE_MKLGPU_BACKEND" enableMkl)
|
||||||
|
|
||||||
|
(lib.cmakeBool "ENABLE_CUBLAS_BACKEND" enableNvidia)
|
||||||
|
(lib.cmakeBool "ENABLE_CUFFT_BACKEND" enableNvidia)
|
||||||
|
(lib.cmakeBool "ENABLE_CURAND_BACKEND" enableNvidia)
|
||||||
|
(lib.cmakeBool "ENABLE_CUSOLVER_BACKEND" enableNvidia)
|
||||||
|
(lib.cmakeBool "ENABLE_CUSPARSE_BACKEND" enableNvidia)
|
||||||
|
|
||||||
|
(lib.cmakeBool "ENABLE_ROCBLAS_BACKEND" enableHip)
|
||||||
|
(lib.cmakeBool "ENABLE_ROCFFT_BACKEND" enableHip)
|
||||||
|
(lib.cmakeBool "ENABLE_ROCSOLVER_BACKEND" enableHip)
|
||||||
|
(lib.cmakeBool "ENABLE_ROCRAND_BACKEND" enableHip)
|
||||||
|
(lib.cmakeBool "ENABLE_ROCSPARSE_BACKEND" enableHip)
|
||||||
|
|
||||||
|
(lib.cmakeBool "BUILD_FUNCTIONAL_TESTS" false)
|
||||||
|
(lib.cmakeBool "BUILD_EXAMPLES" false)
|
||||||
|
] ++ lib.optionals enableHip [
|
||||||
|
(lib.cmakeFeature "HIP_TARGETS" withHipTargets)
|
||||||
|
];
|
||||||
|
|
||||||
|
nativeBuildInputs = [ cmake ];
|
||||||
|
buildInputs = lib.optionals (enableMkl) [
|
||||||
|
intelPackages.mkl
|
||||||
|
intelPackages.tbb
|
||||||
|
] ++ lib.optionals (enableHip) [
|
||||||
|
rocmPackages.rocmPath
|
||||||
|
rocmPackages.rocblas
|
||||||
|
rocmPackages.rocfft
|
||||||
|
rocmPackages.rocsolver
|
||||||
|
rocmPackages.rocrand
|
||||||
|
rocmPackages.rocsparse
|
||||||
|
] ++ lib.optionals (enableNvidia) [
|
||||||
|
(lib.getDev cudaPackages.cuda_cudart)
|
||||||
|
cudaPackages.cudatoolkit
|
||||||
|
|
||||||
|
cudaPackages.libcublas
|
||||||
|
cudaPackages.libcurand
|
||||||
|
cudaPackages.libcufft
|
||||||
|
cudaPackages.libcusparse
|
||||||
|
cudaPackages.libcusolver
|
||||||
|
];
|
||||||
|
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user