Loading pkgs/applications/science/chemistry/cp2k/default.nix +133 −110 Original line number Diff line number Diff line { lib , stdenv , fetchFromGitHub , mpiCheckPhaseHook , python3 , gfortran , blas , lapack , fftw , libint , libvori , libxc , dftd4 , mctc-lib , mstore , multicharge , mpi , gsl , scalapack , openssh , makeWrapper , libxsmm , spglib , which , pkg-config , plumed , zlib , hdf5-fortran , sirius , libvdwxc , spla , spfft , enableElpa ? false , elpa , cudaPackages , rocmPackages , config , gpuBackend ? ( if config.cudaSupport then "cuda" else if config.rocmSupport then "rocm" else "none" ) { lib, stdenv, fetchFromGitHub, mpiCheckPhaseHook, python3, gfortran, blas, lapack, fftw, libint, libvori, libxc, dftd4, mctc-lib, mstore, multicharge, mpi, gsl, scalapack, openssh, makeWrapper, libxsmm, spglib, which, pkg-config, plumed, zlib, hdf5-fortran, sirius, libvdwxc, spla, spfft, enableElpa ? false, elpa, cudaPackages, rocmPackages, config, gpuBackend ? ( if config.cudaSupport then "cuda" else if config.rocmSupport then "rocm" else "none" ), # Change to a value suitable for your target GPU. # For AMD values see https://github.com/cp2k/cp2k/blob/master/INSTALL.md#2v-rocmhip-support-for-amd-gpu # and for Nvidia see https://github.com/cp2k/cp2k/blob/master/INSTALL.md#2i-cuda-optional-improved-performance-on-gpu-systems , gpuVersion ? ( if gpuBackend == "cuda" then "A100" else "Mi100" ) , gpuArch ? ( if gpuBackend == "cuda" then "sm_80" else "gfx908" ) gpuVersion ? (if gpuBackend == "cuda" then "A100" else "Mi100"), gpuArch ? (if gpuBackend == "cuda" then "sm_80" else "gfx908"), }: assert builtins.elem gpuBackend [ "none" "cuda" "rocm" ]; assert builtins.elem gpuBackend [ "none" "cuda" "rocm" ]; let cp2kVersion = "psmp"; Loading @@ -74,10 +80,16 @@ stdenv.mkDerivation rec { ./remove-compiler-options.patch ]; nativeBuildInputs = [ python3 which openssh makeWrapper pkg-config ] ++ lib.optional (gpuBackend == "cuda") cudaPackages.cuda_nvcc; nativeBuildInputs = [ python3 which openssh makeWrapper pkg-config ] ++ lib.optional (gpuBackend == "cuda") cudaPackages.cuda_nvcc; buildInputs = [ buildInputs = [ gfortran fftw gsl Loading Loading @@ -107,14 +119,14 @@ stdenv.mkDerivation rec { cudaPackages.cuda_cudart cudaPackages.libcublas cudaPackages.cuda_nvrtc ] ++ lib.optionals (gpuBackend == "rocm") [ ] ++ lib.optionals (gpuBackend == "rocm") [ rocmPackages.clr rocmPackages.rocm-core rocmPackages.hipblas rocmPackages.hipfft rocmPackages.rocblas ] ; ]; propagatedBuildInputs = [ (lib.getBin mpi) ]; propagatedUserEnvPkgs = [ mpi ]; Loading Loading @@ -165,8 +177,14 @@ stdenv.mkDerivation rec { -D__MAX_CONTR=4 -D__LIBVORI ${lib.optionalString enableElpa "-D__ELPA"} \ -D__PLUMED2 -D__HDF5 -D__GSL -D__SIRIUS -D__LIBVDWXC -D__SPFFT -D__SPLA \ -D__DFTD4 \ ${lib.strings.optionalString (gpuBackend == "cuda") "-D__OFFLOAD_CUDA -D__ACC -D__DBCSR_ACC -D__NO_OFFLOAD_PW"} \ ${lib.strings.optionalString (gpuBackend == "rocm") "-D__OFFLOAD_HIP -D__DBCSR_ACC -D__NO_OFFLOAD_PW"} ${ lib.strings.optionalString ( gpuBackend == "cuda" ) "-D__OFFLOAD_CUDA -D__ACC -D__DBCSR_ACC -D__NO_OFFLOAD_PW" } \ ${ lib.strings.optionalString (gpuBackend == "rocm") "-D__OFFLOAD_HIP -D__DBCSR_ACC -D__NO_OFFLOAD_PW" } CFLAGS = -fopenmp FCFLAGS = \$(DFLAGS) -O2 -ffree-form -ffree-line-length-none \ -ftree-vectorize -funroll-loops -msse2 \ Loading @@ -189,12 +207,15 @@ stdenv.mkDerivation rec { -lz -ldl ${lib.optionalString (mpi.pname == "openmpi") "$(mpicxx --showme:link)"} \ -lplumed -lhdf5_fortran -lhdf5_hl -lhdf5 -lgsl -lsirius -lspla -lspfft -lvdwxc \ -ldftd4 -lmstore -lmulticharge -lmctc-lib \ ${lib.strings.optionalString (gpuBackend == "cuda") '' ${ lib.strings.optionalString (gpuBackend == "cuda") '' -L${cudaPackages.cuda_cudart}/lib/stubs/ \ -lcudart -lnvrtc -lcuda -lcublas '' } \ ${lib.strings.optionalString (gpuBackend == "rocm") "-lamdhip64 -lhipfft -lhipblas -lrocblas"} ${ lib.strings.optionalString (gpuBackend == "rocm") "-lamdhip64 -lhipfft -lhipblas -lrocblas" } LDFLAGS = \$(FCFLAGS) \$(LIBS) include ${plumed}/lib/plumed/src/lib/Plumed.inc EOF Loading Loading @@ -238,7 +259,9 @@ stdenv.mkDerivation rec { runHook postInstall ''; passthru = { inherit mpi; }; passthru = { inherit mpi; }; meta = { description = "Quantum chemistry and solid state physics program"; Loading Loading
pkgs/applications/science/chemistry/cp2k/default.nix +133 −110 Original line number Diff line number Diff line { lib , stdenv , fetchFromGitHub , mpiCheckPhaseHook , python3 , gfortran , blas , lapack , fftw , libint , libvori , libxc , dftd4 , mctc-lib , mstore , multicharge , mpi , gsl , scalapack , openssh , makeWrapper , libxsmm , spglib , which , pkg-config , plumed , zlib , hdf5-fortran , sirius , libvdwxc , spla , spfft , enableElpa ? false , elpa , cudaPackages , rocmPackages , config , gpuBackend ? ( if config.cudaSupport then "cuda" else if config.rocmSupport then "rocm" else "none" ) { lib, stdenv, fetchFromGitHub, mpiCheckPhaseHook, python3, gfortran, blas, lapack, fftw, libint, libvori, libxc, dftd4, mctc-lib, mstore, multicharge, mpi, gsl, scalapack, openssh, makeWrapper, libxsmm, spglib, which, pkg-config, plumed, zlib, hdf5-fortran, sirius, libvdwxc, spla, spfft, enableElpa ? false, elpa, cudaPackages, rocmPackages, config, gpuBackend ? ( if config.cudaSupport then "cuda" else if config.rocmSupport then "rocm" else "none" ), # Change to a value suitable for your target GPU. # For AMD values see https://github.com/cp2k/cp2k/blob/master/INSTALL.md#2v-rocmhip-support-for-amd-gpu # and for Nvidia see https://github.com/cp2k/cp2k/blob/master/INSTALL.md#2i-cuda-optional-improved-performance-on-gpu-systems , gpuVersion ? ( if gpuBackend == "cuda" then "A100" else "Mi100" ) , gpuArch ? ( if gpuBackend == "cuda" then "sm_80" else "gfx908" ) gpuVersion ? (if gpuBackend == "cuda" then "A100" else "Mi100"), gpuArch ? (if gpuBackend == "cuda" then "sm_80" else "gfx908"), }: assert builtins.elem gpuBackend [ "none" "cuda" "rocm" ]; assert builtins.elem gpuBackend [ "none" "cuda" "rocm" ]; let cp2kVersion = "psmp"; Loading @@ -74,10 +80,16 @@ stdenv.mkDerivation rec { ./remove-compiler-options.patch ]; nativeBuildInputs = [ python3 which openssh makeWrapper pkg-config ] ++ lib.optional (gpuBackend == "cuda") cudaPackages.cuda_nvcc; nativeBuildInputs = [ python3 which openssh makeWrapper pkg-config ] ++ lib.optional (gpuBackend == "cuda") cudaPackages.cuda_nvcc; buildInputs = [ buildInputs = [ gfortran fftw gsl Loading Loading @@ -107,14 +119,14 @@ stdenv.mkDerivation rec { cudaPackages.cuda_cudart cudaPackages.libcublas cudaPackages.cuda_nvrtc ] ++ lib.optionals (gpuBackend == "rocm") [ ] ++ lib.optionals (gpuBackend == "rocm") [ rocmPackages.clr rocmPackages.rocm-core rocmPackages.hipblas rocmPackages.hipfft rocmPackages.rocblas ] ; ]; propagatedBuildInputs = [ (lib.getBin mpi) ]; propagatedUserEnvPkgs = [ mpi ]; Loading Loading @@ -165,8 +177,14 @@ stdenv.mkDerivation rec { -D__MAX_CONTR=4 -D__LIBVORI ${lib.optionalString enableElpa "-D__ELPA"} \ -D__PLUMED2 -D__HDF5 -D__GSL -D__SIRIUS -D__LIBVDWXC -D__SPFFT -D__SPLA \ -D__DFTD4 \ ${lib.strings.optionalString (gpuBackend == "cuda") "-D__OFFLOAD_CUDA -D__ACC -D__DBCSR_ACC -D__NO_OFFLOAD_PW"} \ ${lib.strings.optionalString (gpuBackend == "rocm") "-D__OFFLOAD_HIP -D__DBCSR_ACC -D__NO_OFFLOAD_PW"} ${ lib.strings.optionalString ( gpuBackend == "cuda" ) "-D__OFFLOAD_CUDA -D__ACC -D__DBCSR_ACC -D__NO_OFFLOAD_PW" } \ ${ lib.strings.optionalString (gpuBackend == "rocm") "-D__OFFLOAD_HIP -D__DBCSR_ACC -D__NO_OFFLOAD_PW" } CFLAGS = -fopenmp FCFLAGS = \$(DFLAGS) -O2 -ffree-form -ffree-line-length-none \ -ftree-vectorize -funroll-loops -msse2 \ Loading @@ -189,12 +207,15 @@ stdenv.mkDerivation rec { -lz -ldl ${lib.optionalString (mpi.pname == "openmpi") "$(mpicxx --showme:link)"} \ -lplumed -lhdf5_fortran -lhdf5_hl -lhdf5 -lgsl -lsirius -lspla -lspfft -lvdwxc \ -ldftd4 -lmstore -lmulticharge -lmctc-lib \ ${lib.strings.optionalString (gpuBackend == "cuda") '' ${ lib.strings.optionalString (gpuBackend == "cuda") '' -L${cudaPackages.cuda_cudart}/lib/stubs/ \ -lcudart -lnvrtc -lcuda -lcublas '' } \ ${lib.strings.optionalString (gpuBackend == "rocm") "-lamdhip64 -lhipfft -lhipblas -lrocblas"} ${ lib.strings.optionalString (gpuBackend == "rocm") "-lamdhip64 -lhipfft -lhipblas -lrocblas" } LDFLAGS = \$(FCFLAGS) \$(LIBS) include ${plumed}/lib/plumed/src/lib/Plumed.inc EOF Loading Loading @@ -238,7 +259,9 @@ stdenv.mkDerivation rec { runHook postInstall ''; passthru = { inherit mpi; }; passthru = { inherit mpi; }; meta = { description = "Quantum chemistry and solid state physics program"; Loading