Compare commits
3 Commits
fox-regres
...
pkgs/tacud
| Author | SHA1 | Date | |
|---|---|---|---|
|
02c3e504fc
|
|||
|
2b8c924a8d
|
|||
|
0c851cf35d
|
@@ -4,6 +4,13 @@
|
|||||||
# Use the GRUB 2 boot loader.
|
# Use the GRUB 2 boot loader.
|
||||||
boot.loader.grub.enable = true;
|
boot.loader.grub.enable = true;
|
||||||
|
|
||||||
|
# Enable GRUB2 serial console
|
||||||
|
boot.loader.grub.extraConfig = ''
|
||||||
|
serial --unit=0 --speed=115200 --word=8 --parity=no --stop=1
|
||||||
|
terminal_input --append serial
|
||||||
|
terminal_output --append serial
|
||||||
|
'';
|
||||||
|
|
||||||
boot.kernel.sysctl = {
|
boot.kernel.sysctl = {
|
||||||
"kernel.perf_event_paranoid" = lib.mkDefault "-1";
|
"kernel.perf_event_paranoid" = lib.mkDefault "-1";
|
||||||
|
|
||||||
|
|||||||
@@ -11,11 +11,4 @@
|
|||||||
"console=tty1"
|
"console=tty1"
|
||||||
"console=ttyS0,115200"
|
"console=ttyS0,115200"
|
||||||
];
|
];
|
||||||
|
|
||||||
# Enable GRUB2 serial console
|
|
||||||
boot.loader.grub.extraConfig = ''
|
|
||||||
serial --unit=0 --speed=115200 --word=8 --parity=no --stop=1
|
|
||||||
terminal_input --append serial
|
|
||||||
terminal_output --append serial
|
|
||||||
'';
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,13 +3,13 @@
|
|||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
../common/base.nix
|
../common/base.nix
|
||||||
|
../common/xeon/console.nix
|
||||||
../module/amd-uprof.nix
|
../module/amd-uprof.nix
|
||||||
../module/emulation.nix
|
../module/emulation.nix
|
||||||
../module/nvidia.nix
|
../module/nvidia.nix
|
||||||
../module/slurm-client.nix
|
../module/slurm-client.nix
|
||||||
../module/hut-substituter.nix
|
../module/hut-substituter.nix
|
||||||
./wireguard.nix
|
./wireguard.nix
|
||||||
./serial-console.nix
|
|
||||||
];
|
];
|
||||||
|
|
||||||
# Don't turn off on August as UPC has different dates.
|
# Don't turn off on August as UPC has different dates.
|
||||||
@@ -19,9 +19,6 @@
|
|||||||
# Select the this using the ID to avoid mismatches
|
# Select the this using the ID to avoid mismatches
|
||||||
boot.loader.grub.device = "/dev/disk/by-id/wwn-0x500a07514b0c1103";
|
boot.loader.grub.device = "/dev/disk/by-id/wwn-0x500a07514b0c1103";
|
||||||
|
|
||||||
# Increase time so we can boot other entries
|
|
||||||
boot.loader.timeout = 60;
|
|
||||||
|
|
||||||
# No swap, there is plenty of RAM
|
# No swap, there is plenty of RAM
|
||||||
swapDevices = lib.mkForce [];
|
swapDevices = lib.mkForce [];
|
||||||
|
|
||||||
@@ -34,10 +31,7 @@
|
|||||||
# Use performance for benchmarks
|
# Use performance for benchmarks
|
||||||
powerManagement.cpuFreqGovernor = "performance";
|
powerManagement.cpuFreqGovernor = "performance";
|
||||||
|
|
||||||
# Enable amd-uprof in >= 6.15 kernels only
|
services.amd-uprof.enable = true;
|
||||||
services.amd-uprof.enable =
|
|
||||||
let ver = config.boot.kernelPackages.kernel.version;
|
|
||||||
in (lib.strings.compareVersions ver "6.15") >= 0;
|
|
||||||
|
|
||||||
# Disable NUMA balancing
|
# Disable NUMA balancing
|
||||||
boot.kernel.sysctl."kernel.numa_balancing" = 0;
|
boot.kernel.sysctl."kernel.numa_balancing" = 0;
|
||||||
@@ -48,11 +42,6 @@
|
|||||||
# Disable NMI watchdog to save one hw counter (for AMD uProf)
|
# Disable NMI watchdog to save one hw counter (for AMD uProf)
|
||||||
boot.kernel.sysctl."kernel.nmi_watchdog" = 0;
|
boot.kernel.sysctl."kernel.nmi_watchdog" = 0;
|
||||||
|
|
||||||
specialisation.oldKernel.configuration = {
|
|
||||||
system.nixos.tags = [ "old-kernel" ];
|
|
||||||
boot.kernelPackages = lib.mkForce pkgs.linuxPackages_6_12;
|
|
||||||
};
|
|
||||||
|
|
||||||
services.openssh.settings.X11Forwarding = true;
|
services.openssh.settings.X11Forwarding = true;
|
||||||
|
|
||||||
services.fail2ban.enable = true;
|
services.fail2ban.enable = true;
|
||||||
|
|||||||
@@ -1,21 +0,0 @@
|
|||||||
{
|
|
||||||
# Restart the serial console
|
|
||||||
systemd.services."serial-getty@ttyS1" = {
|
|
||||||
enable = true;
|
|
||||||
wantedBy = [ "getty.target" ];
|
|
||||||
serviceConfig.Restart = "always";
|
|
||||||
};
|
|
||||||
|
|
||||||
# Enable serial console
|
|
||||||
boot.kernelParams = [
|
|
||||||
"console=tty1"
|
|
||||||
"console=ttyS1,115200"
|
|
||||||
];
|
|
||||||
|
|
||||||
# Enable GRUB2 serial console
|
|
||||||
boot.loader.grub.extraConfig = ''
|
|
||||||
serial --unit=1 --speed=115200 --word=8 --parity=no --stop=1
|
|
||||||
terminal_input --append serial
|
|
||||||
terminal_output --append serial
|
|
||||||
'';
|
|
||||||
}
|
|
||||||
@@ -4,7 +4,6 @@
|
|||||||
imports = [
|
imports = [
|
||||||
../common/base.nix
|
../common/base.nix
|
||||||
../common/ssf/hosts.nix
|
../common/ssf/hosts.nix
|
||||||
../common/xeon/console.nix
|
|
||||||
../module/emulation.nix
|
../module/emulation.nix
|
||||||
../module/debuginfod.nix
|
../module/debuginfod.nix
|
||||||
../module/nvidia.nix
|
../module/nvidia.nix
|
||||||
|
|||||||
@@ -62,7 +62,14 @@ let
|
|||||||
tagaspi = callPackage ./pkgs/tagaspi/default.nix { };
|
tagaspi = callPackage ./pkgs/tagaspi/default.nix { };
|
||||||
tampi = callPackage ./pkgs/tampi/default.nix { };
|
tampi = callPackage ./pkgs/tampi/default.nix { };
|
||||||
upc-qaire-exporter = prev.callPackage ./pkgs/upc-qaire-exporter/default.nix { };
|
upc-qaire-exporter = prev.callPackage ./pkgs/upc-qaire-exporter/default.nix { };
|
||||||
|
taopencl = callPackage ./pkgs/taopencl/default.nix { };
|
||||||
wxparaver = callPackage ./pkgs/paraver/default.nix { };
|
wxparaver = callPackage ./pkgs/paraver/default.nix { };
|
||||||
|
|
||||||
|
_cuda = prev._cuda.extend (_: _prev: final.lib.recursiveUpdate _prev {
|
||||||
|
extensions = _prev.extensions ++ [(finalAttrs: _: {
|
||||||
|
tacuda = finalAttrs.callPackage ./pkgs/tacuda/default.nix { };
|
||||||
|
})];
|
||||||
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
tests = rec {
|
tests = rec {
|
||||||
|
|||||||
@@ -9,15 +9,13 @@
|
|||||||
, nanos6
|
, nanos6
|
||||||
, nodes
|
, nodes
|
||||||
, nosv
|
, nosv
|
||||||
, mkl
|
|
||||||
, mpi
|
, mpi
|
||||||
, tampi
|
, tampi
|
||||||
, openblas
|
, openblas
|
||||||
, ovni
|
, ovni
|
||||||
, gitBranch ? "master"
|
, gitBranch ? "master"
|
||||||
, gitURL ? "ssh://git@bscpm04.bsc.es/rarias/bench6.git"
|
, gitURL ? "ssh://git@bscpm04.bsc.es/rarias/bench6.git"
|
||||||
, gitCommit ? "fe30c2cfe36b535ef26a0054e010bc005e88ba04"
|
, gitCommit ? "bf29a53113737c3aa74d2fe3d55f59868faea7b4"
|
||||||
, useMkl ? true
|
|
||||||
}:
|
}:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
@@ -44,13 +42,10 @@ stdenv.mkDerivation rec {
|
|||||||
nosv
|
nosv
|
||||||
mpi
|
mpi
|
||||||
tampi
|
tampi
|
||||||
ovni
|
|
||||||
] ++ (if (useMkl) then [
|
|
||||||
mkl
|
|
||||||
] else [
|
|
||||||
openblas
|
openblas
|
||||||
openblas.dev
|
openblas.dev
|
||||||
]);
|
ovni
|
||||||
|
];
|
||||||
|
|
||||||
env = {
|
env = {
|
||||||
NANOS6_HOME = nanos6;
|
NANOS6_HOME = nanos6;
|
||||||
|
|||||||
72
pkgs/tacuda/default.nix
Normal file
72
pkgs/tacuda/default.nix
Normal file
@@ -0,0 +1,72 @@
|
|||||||
|
{
|
||||||
|
backendStdenv,
|
||||||
|
fetchFromGitHub,
|
||||||
|
automake,
|
||||||
|
autoconf,
|
||||||
|
libtool,
|
||||||
|
gnumake,
|
||||||
|
autoreconfHook,
|
||||||
|
boost,
|
||||||
|
cudatoolkit,
|
||||||
|
libcublas,
|
||||||
|
cuda_cudart,
|
||||||
|
|
||||||
|
useGit ? false,
|
||||||
|
gitUrl ? "git@gitlab-internal.bsc.es:task-awareness/tacuda/tacuda.git",
|
||||||
|
gitBranch ? "main",
|
||||||
|
gitCommit ? "35234f9445e6149a2bd38d119841e2485d6ee05e",
|
||||||
|
}:
|
||||||
|
|
||||||
|
let
|
||||||
|
|
||||||
|
release_ver = "2.1.0";
|
||||||
|
release = {
|
||||||
|
version = release_ver;
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "bsc-pm";
|
||||||
|
repo = "tacuda";
|
||||||
|
rev = release_ver;
|
||||||
|
hash = "sha256-Cj3EiLVJSLvRv0ydeg7Vp4SpkniEqHkcWF+YOJQ8EcM=";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
git = rec {
|
||||||
|
version = src.shortRev;
|
||||||
|
src = builtins.fetchGit {
|
||||||
|
url = gitUrl;
|
||||||
|
ref = gitBranch;
|
||||||
|
rev = gitCommit;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
source = if (useGit) then git else release;
|
||||||
|
|
||||||
|
in
|
||||||
|
|
||||||
|
backendStdenv.mkDerivation {
|
||||||
|
pname = "tacuda";
|
||||||
|
inherit (source) src version;
|
||||||
|
|
||||||
|
enableParallelBuilding = true;
|
||||||
|
separateDebugInfo = true;
|
||||||
|
strictDeps = true;
|
||||||
|
|
||||||
|
nativeBuildInputs = [
|
||||||
|
autoreconfHook
|
||||||
|
automake
|
||||||
|
autoconf
|
||||||
|
libtool
|
||||||
|
gnumake
|
||||||
|
];
|
||||||
|
|
||||||
|
patches = [ ./fix_config.patch ];
|
||||||
|
|
||||||
|
configureFlags = [ "--with-cuda-include=${cudatoolkit}/include" ];
|
||||||
|
|
||||||
|
buildInputs = [
|
||||||
|
boost
|
||||||
|
libcublas
|
||||||
|
cuda_cudart
|
||||||
|
];
|
||||||
|
|
||||||
|
}
|
||||||
13
pkgs/tacuda/fix_config.patch
Normal file
13
pkgs/tacuda/fix_config.patch
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
diff --git a/m4/cuda.m4 b/m4/cuda.m4
|
||||||
|
index 23f5c94..8f9b534 100644
|
||||||
|
--- a/m4/cuda.m4
|
||||||
|
+++ b/m4/cuda.m4
|
||||||
|
@@ -40,7 +40,7 @@ search_libs="cuda cublas cudart"
|
||||||
|
required_libs=""
|
||||||
|
|
||||||
|
m4_foreach([function],
|
||||||
|
- [cuInit,
|
||||||
|
+ [
|
||||||
|
cublasSgemm,
|
||||||
|
cudaStreamCreate,
|
||||||
|
cudaLaunchKernel,
|
||||||
48
pkgs/taopencl/default.nix
Normal file
48
pkgs/taopencl/default.nix
Normal file
@@ -0,0 +1,48 @@
|
|||||||
|
{
|
||||||
|
stdenv,
|
||||||
|
automake,
|
||||||
|
autoconf,
|
||||||
|
libtool,
|
||||||
|
gnumake,
|
||||||
|
boost,
|
||||||
|
mpi,
|
||||||
|
autoreconfHook,
|
||||||
|
ocl-icd,
|
||||||
|
opencl-headers,
|
||||||
|
}:
|
||||||
|
|
||||||
|
stdenv.mkDerivation (finalAttrs: {
|
||||||
|
pname = "taopencl";
|
||||||
|
version = finalAttrs.src.shortRev;
|
||||||
|
|
||||||
|
src = builtins.fetchGit {
|
||||||
|
url = "git@gitlab-internal.bsc.es:task-awareness/taopencl/taopencl.git";
|
||||||
|
ref = "master";
|
||||||
|
rev = "c3b7b32ae8fa4af7ceff598532a881f8f1490aaf";
|
||||||
|
};
|
||||||
|
|
||||||
|
enableParallelBuilding = true;
|
||||||
|
separateDebugInfo = true;
|
||||||
|
strictDeps = true;
|
||||||
|
|
||||||
|
configureFlags = [
|
||||||
|
"--with-opencl-lib=${ocl-icd}/lib"
|
||||||
|
"--with-opencl-include=${opencl-headers}/include"
|
||||||
|
];
|
||||||
|
|
||||||
|
nativeBuildInputs = [
|
||||||
|
autoreconfHook
|
||||||
|
automake
|
||||||
|
autoconf
|
||||||
|
libtool
|
||||||
|
gnumake
|
||||||
|
];
|
||||||
|
|
||||||
|
buildInputs = [
|
||||||
|
boost
|
||||||
|
mpi
|
||||||
|
];
|
||||||
|
|
||||||
|
dontDisableStatic = true;
|
||||||
|
hardeningDisable = [ "all" ];
|
||||||
|
})
|
||||||
Reference in New Issue
Block a user