mirror of
https://github.com/CHN-beta/nixos.git
synced 2024-10-23 04:58:44 +08:00
localPackages.aocc: init
This commit is contained in:
parent
8e2c742340
commit
23f92b206b
@ -1 +1,19 @@
|
||||
1k9anln9hmdjflrkq4iacrmhma7gfrfj6d0b8ywxys0wfpdvy12v
|
||||
{ stdenv, fetchurl }:
|
||||
|
||||
stdenv.mkDerivation
|
||||
{
|
||||
pname = "aocc";
|
||||
version = "4.2.0";
|
||||
src = fetchurl
|
||||
{
|
||||
url = "https://download.amd.com/developer/eula/aocc/aocc-4-2/aocc-compiler-4.2.0.tar";
|
||||
sha256 = "1aycw6ygzr1db6xf3z7v5lpznhs8j7gcpkawd304vcj5qw75cnpd";
|
||||
};
|
||||
dontBuild = true;
|
||||
installPhase =
|
||||
''
|
||||
mkdir -p $out
|
||||
cp -r bin include lib lib32 libexec share $out
|
||||
'';
|
||||
dontFixup = true;
|
||||
}
|
||||
|
18
local/pkgs/aocl/default.nix
Normal file
18
local/pkgs/aocl/default.nix
Normal file
@ -0,0 +1,18 @@
|
||||
{ stdenv, fetchurl }:
|
||||
|
||||
stdenv.mkDerivation
|
||||
{
|
||||
pname = "aocl";
|
||||
version = "4.2.0";
|
||||
src = fetchurl
|
||||
{
|
||||
url = "https://download.amd.com/developer/eula/aocl/aocl-4-2/aocl-linux-aocc-4.2.0.tar.gz";
|
||||
sha256 = "0p4x0zza6y18hjjs1971gyc5kjd2f8nzzynp2jabhl2vxiys2nnj";
|
||||
};
|
||||
dontBuild = true;
|
||||
installPhase =
|
||||
''
|
||||
bash ./install.sh -t $out/share
|
||||
'';
|
||||
dontFixup = true;
|
||||
}
|
@ -67,4 +67,7 @@
|
||||
hdf5-oneapi = callPackage ./hdf5-oneapi { inherit lmod; inherit (hdf5) src; oneapi = oneapi."2024.0"; };
|
||||
oneapi = callPackage ./oneapi {};
|
||||
mumax = callPackage ./mumax { src = topInputs.mumax; };
|
||||
aocc = callPackage ./aocc {};
|
||||
aocl = callPackage ./aocl {};
|
||||
hdf5-aocc = callPackage ./hdf5-aocc { inherit (hdf5) src; inherit aocc; };
|
||||
}
|
||||
|
43
local/pkgs/hdf5-aocc/default.nix
Normal file
43
local/pkgs/hdf5-aocc/default.nix
Normal file
@ -0,0 +1,43 @@
|
||||
{
|
||||
buildFHSEnv, writeScript, stdenvNoCC,
|
||||
src,
|
||||
aocc, cmake
|
||||
}:
|
||||
let
|
||||
buildEnv = buildFHSEnv
|
||||
{
|
||||
name = "buildEnv";
|
||||
targetPkgs = pkgs: with pkgs; [ zlib aocc gcc.cc gcc.cc.lib mpi glibc.dev binutils.bintools ];
|
||||
extraBwrapArgs = [ "--bind" "$out" "$out" ];
|
||||
};
|
||||
buildScript = writeScript "build"
|
||||
''
|
||||
mkdir build
|
||||
cd build
|
||||
cmake -DCMAKE_INSTALL_PREFIX=$out -DHDF5_INSTALL_CMAKE_DIR=$out/lib/cmake \
|
||||
-DHDF5_BUILD_FORTRAN=ON -DHDF5_ENABLE_PARALLEL=ON -DBUILD_SHARED_LIBS=OFF ..
|
||||
make -j$NIX_BUILD_CORES
|
||||
make install
|
||||
'';
|
||||
in stdenvNoCC.mkDerivation
|
||||
{
|
||||
name = "hdf5-aocc";
|
||||
inherit src;
|
||||
dontConfigure = true;
|
||||
enableParallelBuilding = true;
|
||||
nativeBuildInputs = [ cmake ];
|
||||
CC = "clang";
|
||||
CXX = "clang++";
|
||||
FC = "flang";
|
||||
OMPI_CC = "clang";
|
||||
OMPI_CXX = "clang++";
|
||||
OMPI_FC = "flang";
|
||||
buildPhase =
|
||||
''
|
||||
mkdir -p $out
|
||||
${buildEnv}/bin/buildEnv ${buildScript}
|
||||
'';
|
||||
dontInstall = true;
|
||||
dontFixup = true;
|
||||
requiredSystemFeatures = [ "gccarch-exact-${stdenvNoCC.hostPlatform.gcc.arch}" "big-parallel" ];
|
||||
}
|
72
local/pkgs/vasp/amd/default.nix
Normal file
72
local/pkgs/vasp/amd/default.nix
Normal file
@ -0,0 +1,72 @@
|
||||
{
|
||||
buildFHSEnv, writeScript, stdenvNoCC, requireFile, substituteAll,
|
||||
aocc, rsync, which, hdf5, wannier90
|
||||
}:
|
||||
let
|
||||
sources = import ../source.nix { inherit requireFile; };
|
||||
buildEnv = buildFHSEnv
|
||||
{
|
||||
name = "buildEnv";
|
||||
targetPkgs = pkgs: with pkgs; [ zlib ];
|
||||
};
|
||||
buildScript = writeScript "build"
|
||||
''
|
||||
. ${lmod}/share/lmod/lmod/init/bash
|
||||
module use ${nvhpc}/share/nvhpc/modulefiles
|
||||
module load nvhpc
|
||||
mkdir -p bin
|
||||
make DEPS=1 -j$NIX_BUILD_CORES
|
||||
'';
|
||||
include = version: substituteAll
|
||||
{
|
||||
src = ./makefile.include-${version};
|
||||
cudaCapabilities = builtins.concatStringsSep "," (builtins.map
|
||||
(cap: "cc${builtins.replaceStrings ["."] [""] cap}")
|
||||
cudaCapabilities);
|
||||
inherit nvhpcArch;
|
||||
};
|
||||
vasp = version: stdenvNoCC.mkDerivation rec
|
||||
{
|
||||
pname = "vasp-nvidia";
|
||||
inherit version;
|
||||
src = sources.${version};
|
||||
configurePhase =
|
||||
''
|
||||
cp ${include version} makefile.include
|
||||
cp ${../constr_cell_relax.F} src/constr_cell_relax.F
|
||||
'';
|
||||
enableParallelBuilding = true;
|
||||
buildInputs = [ mkl hdf5 wannier90 ];
|
||||
nativeBuildInputs = [ gfortran rsync which ];
|
||||
MKLROOT = mkl;
|
||||
HDF5_ROOT = hdf5;
|
||||
WANNIER90_ROOT = wannier90;
|
||||
buildPhase = "${buildEnv}/bin/buildEnv ${buildScript}";
|
||||
installPhase =
|
||||
''
|
||||
mkdir -p $out/bin
|
||||
for i in std gam ncl; do cp bin/vasp_$i $out/bin/vasp-$i; done
|
||||
'';
|
||||
dontFixup = true;
|
||||
requiredSystemFeatures = [ "gccarch-exact-${stdenvNoCC.hostPlatform.gcc.arch}" "big-parallel" ];
|
||||
};
|
||||
startScript = version: writeScript "vasp-nvidia-${version}"
|
||||
''
|
||||
. ${lmod}/share/lmod/lmod/init/bash
|
||||
module use ${nvhpc}/share/nvhpc/modulefiles
|
||||
module load nvhpc
|
||||
|
||||
# if SLURM_CPUS_PER_TASK is set, use it to set OMP_NUM_THREADS
|
||||
if [ -n "''${SLURM_CPUS_PER_TASK-}" ]; then
|
||||
export OMP_NUM_THREADS=$SLURM_CPUS_PER_TASK
|
||||
fi
|
||||
|
||||
exec "$@"
|
||||
'';
|
||||
runEnv = version: buildFHSEnv
|
||||
{
|
||||
name = "vasp-nvidia-${version}";
|
||||
targetPkgs = pkgs: with pkgs; [ zlib (vasp version) ];
|
||||
runScript = startScript version;
|
||||
};
|
||||
in builtins.mapAttrs (version: _: runEnv version) sources
|
Loading…
Reference in New Issue
Block a user