diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index 4ab91180ff68..780c1dbd9c48 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -8135,6 +8135,12 @@ githubId = 2308444; name = "Joshua Gilman"; }; + jmillerpdt = { + email = "jcmiller@pdtpartners.com"; + github = "jmillerpdt"; + githubId = 54179289; + name = "Jason Miller"; + }; jnsgruk = { email = "jon@sgrs.uk"; github = "jnsgruk"; diff --git a/pkgs/development/libraries/science/math/nccl/tests.nix b/pkgs/development/libraries/science/math/nccl/tests.nix new file mode 100644 index 000000000000..69e45a6aee09 --- /dev/null +++ b/pkgs/development/libraries/science/math/nccl/tests.nix @@ -0,0 +1,57 @@ +{ config +, cudaPackages +, fetchFromGitHub +, lib +, mpiSupport ? false +, mpi +, stdenv +, which +}: + +cudaPackages.backendStdenv.mkDerivation (finalAttrs: { + + pname = "nccl-tests"; + version = "2.13.6"; + + src = fetchFromGitHub { + owner = "NVIDIA"; + repo = finalAttrs.pname; + rev = "v${finalAttrs.version}"; + hash = "sha256-3gSBQ0g6mnQ/MFXGflE+BqqrIUoiBgp8+fWRQOvLVkw="; + }; + + strictDeps = true; + + nativeBuildInputs = [ + cudaPackages.cuda_nvcc + which + ]; + + buildInputs = [ + cudaPackages.cuda_cudart + cudaPackages.nccl + ] ++ lib.optional mpiSupport mpi; + + makeFlags = [ + "CUDA_HOME=${cudaPackages.cuda_nvcc}" + "NCCL_HOME=${cudaPackages.nccl}" + ] ++ lib.optionals mpiSupport [ + "MPI=1" + ]; + + enableParallelBuilding = true; + + installPhase = '' + mkdir -p $out/bin + cp -r build/* $out/bin/ + ''; + + meta = with lib; { + description = "Tests to check both the performance and the correctness of NVIDIA NCCL operations"; + homepage = "https://github.com/NVIDIA/nccl-tests"; + platforms = [ "x86_64-linux" ]; + license = licenses.bsd3; + broken = !config.cudaSupport || (mpiSupport && mpi == null); + maintainers = with maintainers; [ jmillerpdt ]; + }; +}) diff --git a/pkgs/top-level/cuda-packages.nix b/pkgs/top-level/cuda-packages.nix index b8e1e5dfc767..a2f49a98ccd5 100644 --- a/pkgs/top-level/cuda-packages.nix +++ b/pkgs/top-level/cuda-packages.nix @@ -47,6 +47,8 @@ let nccl = final.callPackage ../development/libraries/science/math/nccl { }; + nccl-tests = final.callPackage ../development/libraries/science/math/nccl/tests.nix { }; + autoAddOpenGLRunpathHook = final.callPackage ( { makeSetupHook, addOpenGLRunpath }: makeSetupHook { name = "auto-add-opengl-runpath-hook";