Archived
1
0
forked from rarias/bscpkgs

16 Commits

Author SHA1 Message Date
9aa866ee76 ompss: no bintools intel 2025-06-16 15:54:55 +02:00
3f6950c1f0 ompss: unset flags when intel for real this time 2025-06-16 15:54:55 +02:00
53f556626e ompss: set flags when intel 2025-06-16 15:54:55 +02:00
f3483e8a88 llvm: add include cc 2025-06-16 15:54:55 +02:00
2d637cc88c llvm: disable hardening 2025-06-16 15:54:55 +02:00
8836ca4359 intel: more messing around 2025-06-16 15:54:55 +02:00
8ffb971348 intel: reorder wrapper isystems 2025-06-16 15:54:54 +02:00
bdbfd77446 Simplify findMatch in intel-oneapi 2023
This should be a noop
2025-06-16 13:54:25 +02:00
83ae2f489d Fix parsing of new apt package list for oneapi 2023
New apt list does not have Package: as the first entry for all packages
2025-06-16 13:54:24 +02:00
39157ea318 Add oneMath
With support for MKL and CUDA enabled by default
2025-06-16 13:54:24 +02:00
f2f33fd0b4 Introduce intel oneapi 202{4,5} and make 2025 the default intelPackages 2025-06-16 13:54:24 +02:00
c223d205c5 tasycl: init at 2.1.0 2025-06-16 13:54:24 +02:00
ff775ad725 Add test for icpx with ompss-2 as host compiler 2025-06-16 13:54:24 +02:00
858976b37b Add SYCL test compilation 2025-06-16 13:54:24 +02:00
9f0ec54033 Add alias intelPackages -> intelPackages_2023 2025-06-16 13:54:23 +02:00
0399ae5481 Fix sycl intel-oneapi-compiler 2025-06-16 13:54:23 +02:00
42 changed files with 242 additions and 971 deletions

8
flake.lock generated
View File

@@ -2,10 +2,10 @@
"nodes": { "nodes": {
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1752436162, "lastModified": 1736867362,
"narHash": "sha256-Kt1UIPi7kZqkSc5HVj6UY5YLHHEzPBkgpNUByuyxtlw=", "narHash": "sha256-i/UJ5I7HoqmFMwZEH6vAvBxOrjjOJNU739lnZnhUln8=",
"path": "/nix/store/zk8v61cpk1wprp9ld5ayc1g5fq4pdkwv-source", "path": "/nix/store/2csx2kkb2hxyxhhmg2xs9jfyypikwwk6-source",
"rev": "dfcd5b901dbab46c9c6e80b265648481aafb01f8", "rev": "9c6b49aeac36e2ed73a8c472f1546f6d9cf1addc",
"type": "path" "type": "path"
}, },
"original": { "original": {

View File

@@ -2,25 +2,16 @@
inputs.nixpkgs.url = "nixpkgs"; inputs.nixpkgs.url = "nixpkgs";
outputs = { self, nixpkgs, ...}: outputs = { self, nixpkgs, ...}:
let let
pkgs = import nixpkgs {
# For now we only support x86 # For now we only support x86
system = "x86_64-linux"; system = "x86_64-linux";
pkgs = import nixpkgs { overlays = [ self.overlays.default ];
inherit system; };
overlays = [ self.overlays.default ]; in
};
in
{ {
bscOverlay = import ./overlay.nix; bscOverlay = import ./overlay.nix;
overlays.default = self.bscOverlay; overlays.default = self.bscOverlay;
# full nixpkgs with our overlay applied legacyPackages.x86_64-linux = pkgs;
legacyPackages.${system} = pkgs;
hydraJobs = {
inherit (self.legacyPackages.${system}.bsc-ci) test pkgs cross;
};
# propagate nixpkgs lib, so we can do bscpkgs.lib
inherit (nixpkgs) lib;
}; };
} }

View File

@@ -1,22 +1,15 @@
final: /* Future last stage */ final: /* Future last stage */
prev: /* Previous stage */ prev: /* Previous stage */
let with final.lib;
inherit (prev.lib) collect isDerivation mapAttrs filterAttrs;
inherit (final) callPackage; let
callPackage = final.callPackage;
mkDeps = name: pkgs: final.runCommand name { } mkDeps = name: pkgs: final.runCommand name { }
"printf '%s\n' ${toString (collect (x: x ? outPath) pkgs)} > $out"; "printf '%s\n' ${toString (collect (x: x ? outPath) pkgs)} > $out";
mkStrict = drv: if (isDerivation drv && drv ? overrideAttrs && !(drv ? strictDeps)) bscPkgs = {
then drv.overrideAttrs { strictDeps = true; }
else drv;
bscPkgs = mapAttrs (_: mkStrict) {
aoccUnwrapped = callPackage ./pkgs/aocc/unwrapped.nix { };
aocc = callPackage ./pkgs/aocc/default.nix { };
stdenvAocc = final.overrideCC final.stdenv final.aocc;
bench6 = callPackage ./pkgs/bench6/default.nix { }; bench6 = callPackage ./pkgs/bench6/default.nix { };
bigotes = callPackage ./pkgs/bigotes/default.nix { }; bigotes = callPackage ./pkgs/bigotes/default.nix { };
clangOmpss2 = callPackage ./pkgs/llvm-ompss2/default.nix { }; clangOmpss2 = callPackage ./pkgs/llvm-ompss2/default.nix { };
@@ -24,7 +17,6 @@ let
clangOmpss2Nodes = callPackage ./pkgs/llvm-ompss2/default.nix { ompss2rt = final.nodes; openmp = final.openmp; }; clangOmpss2Nodes = callPackage ./pkgs/llvm-ompss2/default.nix { ompss2rt = final.nodes; openmp = final.openmp; };
clangOmpss2NodesOmpv = callPackage ./pkgs/llvm-ompss2/default.nix { ompss2rt = final.nodes; openmp = final.openmpv; }; clangOmpss2NodesOmpv = callPackage ./pkgs/llvm-ompss2/default.nix { ompss2rt = final.nodes; openmp = final.openmpv; };
clangOmpss2Unwrapped = callPackage ./pkgs/llvm-ompss2/clang.nix { }; clangOmpss2Unwrapped = callPackage ./pkgs/llvm-ompss2/clang.nix { };
clsparse = callPackage ./pkgs/clsparse/package.nix { };
#extrae = callPackage ./pkgs/extrae/default.nix { }; # Broken and outdated #extrae = callPackage ./pkgs/extrae/default.nix { }; # Broken and outdated
gpi-2 = callPackage ./pkgs/gpi-2/default.nix { }; gpi-2 = callPackage ./pkgs/gpi-2/default.nix { };
intel-apt = callPackage ./pkgs/intel-oneapi/packages.nix { }; intel-apt = callPackage ./pkgs/intel-oneapi/packages.nix { };
@@ -59,21 +51,9 @@ let
stdenvClangOmpss2NodesOmpv = final.stdenv.override { cc = final.clangOmpss2NodesOmpv; allowedRequisites = null; }; stdenvClangOmpss2NodesOmpv = final.stdenv.override { cc = final.clangOmpss2NodesOmpv; allowedRequisites = null; };
tagaspi = callPackage ./pkgs/tagaspi/default.nix { }; tagaspi = callPackage ./pkgs/tagaspi/default.nix { };
tampi = callPackage ./pkgs/tampi/default.nix { }; tampi = callPackage ./pkgs/tampi/default.nix { };
tacuda = callPackage ./pkgs/tacuda/default.nix { };
taopencl = callPackage ./pkgs/taopencl/default.nix { };
tasycl = callPackage ./pkgs/tasycl/default.nix { }; tasycl = callPackage ./pkgs/tasycl/default.nix { };
tasycl-acpp = callPackage ./pkgs/tasycl/default.nix { useIntel = false; }; tasycl-acpp = callPackage ./pkgs/tasycl/default.nix { useIntel = false; };
wxparaver = callPackage ./pkgs/paraver/default.nix { }; wxparaver = callPackage ./pkgs/paraver/default.nix { };
# Fix for RISC-V cross compilation
# TODO: remove once we update to 25.11
# https://github.com/NixOS/nixpkgs/commit/d9c222c81435b
prrte = prev.prrte.overrideAttrs (prevAttrs: {
configureFlags = (prevAttrs.configureFlags or []) ++ [
"--with-pmix=${prev.lib.getDev final.pmix}"
"--with-pmix-libdir=${prev.lib.getLib final.pmix}/lib"
];
});
}; };
in bscPkgs // { in bscPkgs // {
@@ -126,21 +106,15 @@ in bscPkgs // {
}; };
}; };
pkgs = filterAttrs (_: isDerivation) bscPkgs; pkgs = final.runCommand "ci-pkgs" { }
pkgsList = final.runCommand "ci-pkgs" { }
"printf '%s\n' ${toString (collect isDerivation bscPkgs)} > $out"; "printf '%s\n' ${toString (collect isDerivation bscPkgs)} > $out";
tests = final.runCommand "ci-tests" { } tests = final.runCommand "ci-tests" { }
"printf '%s\n' ${toString (collect isDerivation final.bsc-ci.test)} > $out"; "printf '%s\n' ${toString (collect isDerivation final.bsc-ci.test)} > $out";
cross = prev.lib.genAttrs [ "riscv64" ] (target:
final.pkgsCross.${target}.bsc-ci.pkgs
);
all = final.runCommand "ci-all" { } all = final.runCommand "ci-all" { }
'' ''
deps="${toString [ final.bsc-ci.pkgsList final.bsc-ci.tests ]}" deps="${toString [ final.bsc-ci.pkgs final.bsc-ci.tests ]}"
cat $deps cat $deps
printf '%s\n' $deps > $out printf '%s\n' $deps > $out
''; '';

View File

@@ -1,16 +0,0 @@
{ wrapCCWith
, aoccUnwrapped
}:
let
cc = aoccUnwrapped;
in wrapCCWith {
inherit cc;
extraBuildCommands = ''
echo "-isystem ${cc}/include" >> $out/nix-support/cc-cflags
wrap aocc $wrapper $ccPath/clang
wrap aocc++ $wrapper $ccPath/clang++
'';
}

View File

@@ -1,51 +0,0 @@
{ lib
, fetchurl
, stdenv
, autoPatchelfHook
, rocmPackages
, zlib
, libffi
, elfutils
}:
let
# in newer nixpkgs the runtime is hsakmt
rocmRuntime =
if rocmPackages ? hsakmt then
rocmPackages.hsakmt
else
rocmPackages.rocm-runtime;
in
stdenv.mkDerivation {
pname = "aocc-compiler";
version = "5.0.0";
src = fetchurl {
url = "https://download.amd.com/developer/eula/aocc/aocc-5-0/aocc-compiler-5.0.0.tar";
sha256 = "sha256-lm+sLSx1np3m6WnBCtp6ezBsET9/HgfqN2gp7IY4Dao=";
};
nativeBuildInputs = [ autoPatchelfHook ];
buildInputs = [
elfutils
zlib
rocmRuntime
stdenv.cc.cc.lib
];
phases = [ "unpackPhase" "installPhase" "fixupPhase" ];
dontStrip = true;
installPhase = ''
mkdir -p $out
cp -a . $out/
ln -s ${lib.getLib libffi}/lib/libffi.so $out/lib/libffi.so.6
'';
passthru = {
inherit rocmRuntime;
isClang = true; # Needed for wrapCCWith
};
meta.mainProgram = "clang";
}

View File

@@ -1,20 +1,14 @@
{ {
stdenv stdenv
, bigotes
, cmake , cmake
, clangOmpss2 , clangOmpss2
, openmp
, openmpv
, nanos6 , nanos6
, nodes , nodes
, nosv
, mpi , mpi
, tampi , tampi
, openblas
, ovni
, gitBranch ? "master" , gitBranch ? "master"
, gitURL ? "ssh://git@bscpm04.bsc.es/rarias/bench6.git" , gitURL ? "ssh://git@bscpm04.bsc.es/rarias/bench6.git"
, gitCommit ? "bf29a53113737c3aa74d2fe3d55f59868faea7b4" , gitCommit ? "1e6ce2aa8ad7b4eef38df1581d7ec48a8815f85d"
}: }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
@@ -27,31 +21,9 @@ stdenv.mkDerivation rec {
rev = gitCommit; rev = gitCommit;
}; };
nativeBuildInputs = [ buildInputs = [ cmake clangOmpss2 nanos6 nodes mpi tampi ];
cmake
clangOmpss2
];
buildInputs = [
bigotes
openmp
openmpv
nanos6
nodes
nosv
mpi
tampi
openblas
openblas.dev
ovni
];
env = {
NANOS6_HOME = nanos6;
NODES_HOME = nodes;
NOSV_HOME = nosv;
};
enableParallelBuilding = false;
cmakeFlags = [ cmakeFlags = [
"-DCMAKE_C_COMPILER=clang" "-DCMAKE_C_COMPILER=clang"
"-DCMAKE_CXX_COMPILER=clang++" "-DCMAKE_CXX_COMPILER=clang++"

View File

@@ -4,7 +4,7 @@
, cmake , cmake
}: }:
stdenv.mkDerivation { stdenv.mkDerivation rec {
pname = "bigotes"; pname = "bigotes";
version = "9dce13"; version = "9dce13";
src = fetchFromGitHub { src = fetchFromGitHub {
@@ -13,5 +13,5 @@ stdenv.mkDerivation {
rev = "9dce13446a8da30bea552d569d260d54e0188518"; rev = "9dce13446a8da30bea552d569d260d54e0188518";
sha256 = "sha256-ktxM3pXiL8YXSK+/IKWYadijhYXqGoLY6adLk36iigE="; sha256 = "sha256-ktxM3pXiL8YXSK+/IKWYadijhYXqGoLY6adLk36iigE=";
}; };
nativeBuildInputs = [ cmake ]; buildInputs = [ cmake ];
} }

View File

@@ -1,53 +0,0 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 3d139ed..15ffc14 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -176,32 +179,22 @@ if( BUILD_clSPARSE OR BUILD_SAMPLES )
if( BUILD_clSPARSE )
message( STATUS "Setting up clSPARSE external..." )
- if ( BUILD_SAMPLES )
- # If the user elects to build samples, then we must build and install clSPARSE
- # The install location is set as a subdirectory of the SuperBuild
- ExternalProject_Add(
- clSPARSE
- DEPENDS ${clSPARSE.Dependencies}
- SOURCE_DIR ${PROJECT_SOURCE_DIR}/src
- BINARY_DIR clSPARSE-build
- INSTALL_DIR clSPARSE-package
- CMAKE_ARGS ${clSPARSE.Cmake.Args} -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
- -DBUILD_CLVERSION=${BUILD_CLVERSION} -DCMAKE_INSTALL_PREFIX=<INSTALL_DIR>
- -DUSE_SYSTEM_CL2HPP:BOOL=${USE_SYSTEM_CL2HPP}
- )
- else( )
- # If the user does not want to build samples, then build clSPARSE but don't automatically
- # install it
- ExternalProject_Add(
- clSPARSE
- DEPENDS ${clSPARSE.Dependencies}
- SOURCE_DIR ${PROJECT_SOURCE_DIR}/src
- BINARY_DIR clSPARSE-build
- CMAKE_ARGS ${clSPARSE.Cmake.Args} -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
- -DBUILD_CLVERSION=${BUILD_CLVERSION} -DUSE_SYSTEM_CL2HPP:BOOL=${USE_SYSTEM_CL2HPP}
- INSTALL_COMMAND ""
- )
- endif( )
+ ExternalProject_Add(
+ clSPARSE
+ DEPENDS ${clSPARSE.Dependencies}
+ SOURCE_DIR ${PROJECT_SOURCE_DIR}/src
+ BINARY_DIR clSPARSE-build
+ INSTALL_DIR clSPARSE-package
+ CMAKE_ARGS ${clSPARSE.Cmake.Args} -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
+ -DBUILD_CLVERSION=${BUILD_CLVERSION} -DCMAKE_INSTALL_PREFIX=<INSTALL_DIR>
+ -DUSE_SYSTEM_CL2HPP:BOOL=${USE_SYSTEM_CL2HPP}
+ )
+
+ install(
+ DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/clSPARSE-package/
+ DESTINATION ${CMAKE_INSTALL_PREFIX}
+ USE_SOURCE_PERMISSIONS
+ )
endif( )

View File

@@ -1,70 +0,0 @@
{
lib,
stdenv,
fetchFromGitHub,
fetchpatch,
boost,
gtest,
ocl-icd,
opencl-headers,
opencl-clhpp,
cmake,
}:
stdenv.mkDerivation rec {
pname = "clsparse";
version = "0.10.2.0";
src = fetchFromGitHub {
owner = "clMathLibraries";
repo = "clSPARSE";
rev = "v${version}";
hash = "sha256-jIauCtUyPEIx7pFI3qH0WagV+t/fvro0OsGgONBJm0s=";
};
patches = [
./pass_include_dir.patch
./install_target.patch
(fetchpatch {
name = "remove-gettypecode.patch";
url = "https://patch-diff.githubusercontent.com/raw/clMathLibraries/clSPARSE/pull/210.patch";
hash = "sha256-9Q+tk7RMdWE4MCnbvWlsI0MIgBYKIWR2jIC1bICtIjU=";
})
];
postInstallPhase = ''
mv $installDir/lib64 lib
ln -s lib/ lib64
'';
env.NIX_CFLAGS_COMPILE = "-std=c++17";
nativeBuildInputs = [
cmake
];
buildInputs = [
boost
ocl-icd
opencl-headers
opencl-clhpp
];
cmakeFlags = [
"-DBUILD_Boost=OFF"
"-DBUILD_gMock=OFF"
"-DBUILD_MTX=OFF"
"-DBUILD_SAMPLES=OFF"
"-DUSE_SYSTEM_CL2HPP=ON"
"-DGMOCK_ROOT=${gtest}"
"-DGTEST_INCLUDE_DIR=${gtest.src}/googletest/include"
];
meta = {
description = "A software library containing Sparse functions written in OpenCL";
homepage = "https://github.com/clMathLibraries/clSPARSE";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ leixb ];
platforms = lib.platforms.all;
};
}

View File

@@ -1,14 +0,0 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 3d139ed..b7ea2d3 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -132,6 +132,9 @@ else( )
set( GMOCK_ROOT "$ENV{GMOCK_ROOT}" )
endif( )
list( APPEND clSPARSE.Cmake.Args -DGTEST_ROOT=${GMOCK_ROOT} )
+ if( DEFINED GTEST_INCLUDE_DIR )
+ list( APPEND clSPARSE.Cmake.Args -DGTEST_INCLUDE_DIR=${GTEST_INCLUDE_DIR} )
+ endif( )
endif( )
endif( )

View File

@@ -20,7 +20,6 @@
#, python3Packages #, python3Packages
, installShellFiles , installShellFiles
, symlinkJoin , symlinkJoin
, enablePapi ? stdenv.hostPlatform == stdenv.buildPlatform # Disabled when cross-compiling
}: }:
let let
@@ -88,7 +87,7 @@ stdenv.mkDerivation rec {
--enable-sampling --enable-sampling
--with-unwind=${libunwind.dev} --with-unwind=${libunwind.dev}
--with-xml-prefix=${libxml2.dev} --with-xml-prefix=${libxml2.dev}
${lib.optionalString enablePapi "--with-papi=${papi}"} --with-papi=${papi}
${if (mpi != null) then ''--with-mpi=${mpi}'' ${if (mpi != null) then ''--with-mpi=${mpi}''
else ''--without-mpi''} else ''--without-mpi''}
--without-dyninst) --without-dyninst)

View File

@@ -34,8 +34,6 @@ stdenv.mkDerivation rec {
enableParallelBuilding = true; enableParallelBuilding = true;
patches = [ ./rdma-core.patch ./max-mem.patch ];
preConfigure = '' preConfigure = ''
patchShebangs autogen.sh patchShebangs autogen.sh
./autogen.sh ./autogen.sh

View File

@@ -1,10 +0,0 @@
--- a/tests/tests/segments/max_mem.c 2025-09-12 13:30:53.449353591 +0200
+++ b/tests/tests/segments/max_mem.c 2025-09-12 13:33:49.750352401 +0200
@@ -1,5 +1,7 @@
#include <test_utils.h>
+gaspi_size_t gaspi_get_system_mem (void);
+
/* Test allocates 45% of system memory and creates a segment that
large or if several ranks per node exist, divided among that
number */

View File

@@ -1,12 +0,0 @@
--- a/src/devices/ib/GPI2_IB.h 2025-09-12 13:25:31.564181121 +0200
+++ b/src/devices/ib/GPI2_IB.h 2025-09-12 13:24:49.105422150 +0200
@@ -26,6 +26,9 @@ along with GPI-2. If not, see <http://ww
#include "GPI2_Dev.h"
+/* Missing prototype as driver.h is now private */
+int ibv_read_sysfs_file(const char *dir, const char *file, char *buf, size_t size);
+
#define GASPI_GID_INDEX (0)
#define PORT_LINK_UP (5)
#define MAX_INLINE_BYTES (128)

View File

@@ -1,5 +1,6 @@
{ stdenv { stdenv
, fetchurl , fetchurl
, ncurses
, lib , lib
, dpkg , dpkg
, rsync , rsync
@@ -9,9 +10,12 @@
, hwloc , hwloc
, zlib , zlib
, autoPatchelfHook , autoPatchelfHook
, symlinkJoin
, libfabric , libfabric
, gcc13 , gcc
, gcc7
, wrapCCWith , wrapCCWith
, linuxHeaders
}: }:
# The distribution of intel packages is a mess. We are doing the installation # The distribution of intel packages is a mess. We are doing the installation
@@ -26,8 +30,6 @@
let let
gcc = gcc13;
v = { v = {
hpckit = "2023.1.0"; hpckit = "2023.1.0";
compiler = "2023.1.0"; compiler = "2023.1.0";
@@ -96,17 +98,14 @@ let
"intel-oneapi-mpi-${version}" "intel-oneapi-mpi-${version}"
]; ];
nativeBuildInputs = [
autoPatchelfHook
rsync
];
buildInputs = [ buildInputs = [
rsync
libfabric libfabric
zlib zlib
stdenv.cc.cc.lib stdenv.cc.cc.lib
]; ];
nativeBuildInputs = [ autoPatchelfHook ];
phases = [ "installPhase" "fixupPhase" ]; phases = [ "installPhase" "fixupPhase" ];
dontStrip = true; dontStrip = true;
installPhase = '' installPhase = ''
@@ -145,6 +144,7 @@ let
buildInputs = [ buildInputs = [
intel-mpi intel-mpi
rsync
libffi_3_3 libffi_3_3
libelf libelf
libxml2 libxml2
@@ -152,10 +152,7 @@ let
stdenv.cc.cc.lib stdenv.cc.cc.lib
]; ];
nativeBuildInputs = [ nativeBuildInputs = [ autoPatchelfHook ];
autoPatchelfHook
rsync
];
phases = [ "installPhase" "fixupPhase" ]; phases = [ "installPhase" "fixupPhase" ];
dontStrip = true; dontStrip = true;
@@ -185,6 +182,7 @@ let
buildInputs = [ buildInputs = [
intel-mpi intel-mpi
intel-tbb intel-tbb
rsync
libffi_3_3 libffi_3_3
libelf libelf
libxml2 libxml2
@@ -193,10 +191,7 @@ let
stdenv.cc.cc.lib stdenv.cc.cc.lib
]; ];
nativeBuildInputs = [ nativeBuildInputs = [ autoPatchelfHook ];
autoPatchelfHook
rsync
];
phases = [ "installPhase" "fixupPhase" ]; phases = [ "installPhase" "fixupPhase" ];
dontStrip = true; dontStrip = true;
@@ -249,6 +244,7 @@ let
buildInputs = [ buildInputs = [
intel-mpi intel-mpi
intel-compiler-shared intel-compiler-shared
rsync
libffi_3_3 libffi_3_3
libelf libelf
libxml2 libxml2
@@ -256,10 +252,7 @@ let
stdenv.cc.cc.lib stdenv.cc.cc.lib
]; ];
nativeBuildInputs = [ nativeBuildInputs = [ autoPatchelfHook ];
autoPatchelfHook
rsync
];
phases = [ "installPhase" "fixupPhase" ]; phases = [ "installPhase" "fixupPhase" ];
@@ -308,8 +301,10 @@ let
"intel-oneapi-compiler-dpcpp-cpp-and-cpp-classic-common-${version}" "intel-oneapi-compiler-dpcpp-cpp-and-cpp-classic-common-${version}"
"intel-oneapi-compiler-dpcpp-cpp-and-cpp-classic-runtime-${version}" "intel-oneapi-compiler-dpcpp-cpp-and-cpp-classic-runtime-${version}"
"intel-oneapi-compiler-dpcpp-cpp-classic-fortran-shared-runtime-${version}" "intel-oneapi-compiler-dpcpp-cpp-classic-fortran-shared-runtime-${version}"
"intel-oneapi-compiler-shared-${version}"
"intel-oneapi-compiler-shared-common-${version}"
"intel-oneapi-compiler-shared-runtime-${version}"
]; ];
dontCheckForBrokenSymlinks = true;
# From https://aur.archlinux.org/packages/intel-oneapi-compiler: # From https://aur.archlinux.org/packages/intel-oneapi-compiler:
# - intel-oneapi-compiler-cpp-eclipse-cfg-2023.0.0-25370_all.deb # - intel-oneapi-compiler-cpp-eclipse-cfg-2023.0.0-25370_all.deb
# + intel-oneapi-compiler-dpcpp-cpp-2023.0.0-2023.0.0-25370_amd64.deb # + intel-oneapi-compiler-dpcpp-cpp-2023.0.0-2023.0.0-25370_amd64.deb
@@ -325,15 +320,16 @@ let
# - intel-oneapi-compiler-fortran-common-2023.0.0-2023.0.0-25370_all.deb # - intel-oneapi-compiler-fortran-common-2023.0.0-2023.0.0-25370_all.deb
# - intel-oneapi-compiler-fortran-runtime-2023.0.0-2023.0.0-25370_amd64.deb # - intel-oneapi-compiler-fortran-runtime-2023.0.0-2023.0.0-25370_amd64.deb
# - intel-oneapi-compiler-fortran-runtime-2023.0.0-25370_amd64.deb # - intel-oneapi-compiler-fortran-runtime-2023.0.0-25370_amd64.deb
# - intel-oneapi-compiler-shared-2023.0.0-2023.0.0-25370_amd64.deb # + intel-oneapi-compiler-shared-2023.0.0-2023.0.0-25370_amd64.deb
# - intel-oneapi-compiler-shared-common-2023.0.0-2023.0.0-25370_all.deb # + intel-oneapi-compiler-shared-common-2023.0.0-2023.0.0-25370_all.deb
# - intel-oneapi-compiler-shared-runtime-2023.0.0-2023.0.0-25370_amd64.deb # + intel-oneapi-compiler-shared-runtime-2023.0.0-2023.0.0-25370_amd64.deb
# - intel-oneapi-dpcpp-cpp-2023.0.0-2023.0.0-25370_amd64.deb # - intel-oneapi-dpcpp-cpp-2023.0.0-2023.0.0-25370_amd64.deb
# - intel-oneapi-openmp-2023.0.0-2023.0.0-25370_amd64.deb # - intel-oneapi-openmp-2023.0.0-2023.0.0-25370_amd64.deb
# - intel-oneapi-openmp-common-2023.0.0-2023.0.0-25370_all.deb # - intel-oneapi-openmp-common-2023.0.0-2023.0.0-25370_all.deb
buildInputs = [ buildInputs = [
intel-compiler-shared intel-compiler-shared
rsync
libffi_3_3 libffi_3_3
libelf libelf
libxml2 libxml2
@@ -341,10 +337,7 @@ let
stdenv.cc.cc.lib stdenv.cc.cc.lib
]; ];
nativeBuildInputs = [ nativeBuildInputs = [ autoPatchelfHook ];
autoPatchelfHook
rsync
];
autoPatchelfIgnoreMissingDeps = [ "libtbb.so.12" "libtbbmalloc.so.2" "libze_loader.so.1" ]; autoPatchelfIgnoreMissingDeps = [ "libtbb.so.12" "libtbbmalloc.so.2" "libze_loader.so.1" ];
phases = [ "installPhase" "fixupPhase" ]; phases = [ "installPhase" "fixupPhase" ];
@@ -396,10 +389,17 @@ let
echo "-L${intel-compiler-shared}/lib" >> $out/nix-support/cc-ldflags echo "-L${intel-compiler-shared}/lib" >> $out/nix-support/cc-ldflags
echo "-L${cc}/lib" >> $out/nix-support/cc-ldflags echo "-L${cc}/lib" >> $out/nix-support/cc-ldflags
echo "--gcc-toolchain=${mygcc.cc}" >> $out/nix-support/libcxx-cxxflags
for dir in ${mygcc.cc}/include/c++/*; do
echo "-isystem $dir" >> $out/nix-support/libcxx-cxxflags
done
for dir in ${mygcc.cc}/include/c++/*/${targetConfig}; do
echo "-isystem $dir" >> $out/nix-support/libcxx-cxxflags
done
# Need the gcc in the path # Need the gcc in the path
# FIXME: We should find a better way to modify the PATH instead of using echo 'export "PATH=${mygcc}/bin:$PATH"' >> $out/nix-support/cc-wrapper-hook
# this ugly hack. See https://jungle.bsc.es/git/rarias/bscpkgs/issues/9
echo 'path_backup="${mygcc}/bin:$path_backup"' >> $out/nix-support/cc-wrapper-hook
# Disable hardening by default # Disable hardening by default
echo "" > $out/nix-support/add-hardening.sh echo "" > $out/nix-support/add-hardening.sh

View File

@@ -5,7 +5,7 @@
, autoPatchelfHook , autoPatchelfHook
, wrapCCWith , wrapCCWith
, overrideCC , overrideCC
, gcc13 , gcc
, hwloc , hwloc
, libelf , libelf
, libffi_3_3 , libffi_3_3
@@ -33,8 +33,6 @@ makeOverridable (
let let
inherit (builtins) attrValues filter mapAttrs removeAttrs; inherit (builtins) attrValues filter mapAttrs removeAttrs;
gcc = gcc13;
__components = removeAttrs components ["extraPackages"]; __components = removeAttrs components ["extraPackages"];
_components = __components; _components = __components;
# _components = lib.traceSeqN 2 { # _components = lib.traceSeqN 2 {
@@ -52,7 +50,6 @@ let
echo "-L${gcc.cc.lib}/lib" >> $out/nix-support/cc-ldflags echo "-L${gcc.cc.lib}/lib" >> $out/nix-support/cc-ldflags
echo "-L${cc}/lib" >> $out/nix-support/cc-ldflags echo "-L${cc}/lib" >> $out/nix-support/cc-ldflags
# echo "--gcc-toolchain=${gcc.cc}" >> $out/nix-support/libcxx-cxxflags
echo "--gcc-toolchain=${gcc.cc}" >> $out/nix-support/cc-cflags echo "--gcc-toolchain=${gcc.cc}" >> $out/nix-support/cc-cflags
# For some reason, If we don't resolve the realpath things go wrong # For some reason, If we don't resolve the realpath things go wrong
@@ -75,12 +72,12 @@ let
echo "-isystem $dir" >> $out/nix-support/libcxx-cxxflags echo "-isystem $dir" >> $out/nix-support/libcxx-cxxflags
done done
# FIXME: We should find a better way to modify the PATH instead of using # Need the gcc in the path
# this ugly hack. See https://jungle.bsc.es/git/rarias/bscpkgs/issues/9 echo 'export "PATH=${gcc}/bin:$PATH"' >> $out/nix-support/cc-wrapper-hook
echo 'path_backup="${gcc.cc}/bin:$path_backup"' >> $out/nix-support/cc-wrapper-hook
# Disable hardening by default # Disable hardening by default
echo "" > $out/nix-support/add-hardening.sh echo "" > $out/nix-support/add-hardening.sh
'' + extraBuildCommands; '' + extraBuildCommands;
} // (removeAttrs args ["cc" "extraBuildCommands" "extraInstall"]) } // (removeAttrs args ["cc" "extraBuildCommands" "extraInstall"])
).overrideAttrs (old: { ).overrideAttrs (old: {
@@ -113,8 +110,6 @@ stdenvNoCC.mkDerivation (finalAttrs: {
autoPatchelfIgnoreMissingDeps = [ "libhwloc.so.5" "libcuda.so.1" "libze_loader.so.1" ]; autoPatchelfIgnoreMissingDeps = [ "libhwloc.so.5" "libcuda.so.1" "libze_loader.so.1" ];
dontCheckForBrokenSymlinks = true;
nativeBuildInputs = [ autoPatchelfHook ]; nativeBuildInputs = [ autoPatchelfHook ];
installPhase = '' installPhase = ''
cp -r $src/opt/intel/oneapi/ $out cp -r $src/opt/intel/oneapi/ $out
@@ -162,7 +157,6 @@ stdenvNoCC.mkDerivation (finalAttrs: {
sed -i 's/.*isCxx=0/isCxx=1/' $out/bin/icpx sed -i 's/.*isCxx=0/isCxx=1/' $out/bin/icpx
# oneMath looks for sycl libraries in bin/../lib
ln -s ${finalAttrs.finalPackage.pkgs.compiler}/lib $out/lib ln -s ${finalAttrs.finalPackage.pkgs.compiler}/lib $out/lib
ln -s ${finalAttrs.finalPackage.pkgs.compiler}/include $out/include ln -s ${finalAttrs.finalPackage.pkgs.compiler}/include $out/include
''; '';

View File

@@ -16,19 +16,19 @@
, useGit ? false , useGit ? false
, gitUrl ? "ssh://git@bscpm04.bsc.es/llvm-ompss/llvm-mono.git" , gitUrl ? "ssh://git@bscpm04.bsc.es/llvm-ompss/llvm-mono.git"
, gitBranch ? "master" , gitBranch ? "master"
, gitCommit ? "880e2341c56bad1dc14e8c369fb3356bec19018e" , gitCommit ? "8c0d267c04d7fc3fb923078f510fcd5f4719a6cc"
}: }:
let let
stdenv = llvmPackages_latest.stdenv; stdenv = llvmPackages_latest.stdenv;
release = rec { release = rec {
version = "2025.06"; version = "2024.11";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "bsc-pm"; owner = "bsc-pm";
repo = "llvm"; repo = "llvm";
rev = "refs/tags/github-release-${version}"; rev = "refs/tags/github-release-${version}";
hash = "sha256-ww9PpRmtz/M9IyLiZ8rAehx2UW4VpQt+svf4XfKBzKo="; hash = "sha256-pF0qa987nLkIJPUrXh1srzBkLPfb31skIegD0bl34Kg=";
}; };
}; };
@@ -43,36 +43,32 @@ let
source = if (useGit) then git else release; source = if (useGit) then git else release;
in stdenv.mkDerivation { in stdenv.mkDerivation rec {
pname = "clang-ompss2"; pname = "clang-ompss2";
inherit (source) src version; inherit (source) src version;
enableParallelBuilding = true; enableParallelBuilding = true;
isClang = true;
passthru = { passthru = {
CC = "clang"; CC = "clang";
CXX = "clang++"; CXX = "clang++";
isClang = true;
isClangWithOmpss = true;
inherit gcc zlib;
}; };
nativeBuildInputs = [ isClangWithOmpss = true;
bash
cmake nativeBuildInputs = [ zlib ];
elfutils
llvmPackages_latest.lld
pkg-config
python3
perl
which
zlib
];
buildInputs = [ buildInputs = [
which
bash
python3
perl
cmake
llvmPackages_latest.lld
elfutils
libffi libffi
pkg-config
zlib zlib
gcc.cc.lib # Required for libstdc++.so.6 gcc.cc.lib # Required for libstdc++.so.6
]; ];

View File

@@ -2,7 +2,6 @@
stdenv stdenv
, lib , lib
, gcc , gcc
, gcc13
, clangOmpss2Unwrapped , clangOmpss2Unwrapped
, writeShellScript , writeShellScript
, openmp ? null , openmp ? null
@@ -11,9 +10,9 @@
, ompss2rt ? null , ompss2rt ? null
}: }:
let with lib;
inherit (lib) assertMsg optional optionalString;
let
usingNodesAndOmpv = (openmp.pname == "openmp-v" && ompss2rt.pname == "nodes"); usingNodesAndOmpv = (openmp.pname == "openmp-v" && ompss2rt.pname == "nodes");
sameNosv = openmp.nosv == ompss2rt.nosv; sameNosv = openmp.nosv == ompss2rt.nosv;
in in
@@ -38,15 +37,36 @@ let
targetConfig = stdenv.targetPlatform.config; targetConfig = stdenv.targetPlatform.config;
inherit gcc; inherit gcc;
cc = clangOmpss2Unwrapped; cc = clangOmpss2Unwrapped;
gccVersion = with versions; let v = gcc.version; in concatStringsSep "." [(major v) (minor v) (patch v)];
gccVersion = with lib.versions; let v = gcc.version; in concatStringsSep "." [(major v) (minor v) (patch v)]; resetIntelCCFlags = let tconf = builtins.replaceStrings ["-"] ["_"] targetConfig;
in writeShellScript "remove-intel.sh" ''
if [ "$NIX_CC_WRAPPER_INTEL" = 1 ]; then
unset NIX_CFLAGS_COMPILE_${tconf}
unset NIX_CFLAGS_COMPILE_BEFORE_${tconf}
unset NIX_CFLAGS_LINK_${tconf}
unset NIX_CXXSTDLIB_COMPILE_${tconf}
unset NIX_CXXSTDLIB_LINK_${tconf}
unset NIX_GNATFLAGS_COMPILE_${tconf}
unset NIX_CC_WRAPPER_FLAGS_SET_${tconf}
# unset NIX_BINTOOLS_WRAPPER_FLAGS_${tconf}
fi
'';
in wrapCCWith {
inherit cc bintools;
# extraPackages adds packages to depsTargetTargetPropagated
extraPackages = optional (openmp != null) openmp;
extraBuildCommands = '' extraBuildCommands = ''
echo "-target ${targetConfig}" >> $out/nix-support/cc-cflags echo "-target ${targetConfig}" >> $out/nix-support/cc-cflags
echo "-B${gcc.cc}/lib/gcc/${targetConfig}/${gccVersion}" >> $out/nix-support/cc-cflags echo "-B${gcc.cc}/lib/gcc/${targetConfig}/${gccVersion}" >> $out/nix-support/cc-cflags
echo "-L${gcc.cc}/lib/gcc/${targetConfig}/${gccVersion}" >> $out/nix-support/cc-ldflags echo "-L${gcc.cc}/lib/gcc/${targetConfig}/${gccVersion}" >> $out/nix-support/cc-ldflags
echo "-L${gcc.cc.lib}/lib" >> $out/nix-support/cc-ldflags echo "-L${gcc.cc.lib}/lib" >> $out/nix-support/cc-ldflags
for dir in ${gcc.cc}/lib/gcc/${targetConfig}/*/include; do
echo "-isystem $dir" >> $out/nix-support/cc-cflags
done
for dir in ${gcc.cc}/include/c++/*; do for dir in ${gcc.cc}/include/c++/*; do
echo "-isystem $dir" >> $out/nix-support/libcxx-cxxflags echo "-isystem $dir" >> $out/nix-support/libcxx-cxxflags
done done
@@ -57,51 +77,19 @@ let
echo "--gcc-toolchain=${gcc}" >> $out/nix-support/cc-cflags echo "--gcc-toolchain=${gcc}" >> $out/nix-support/cc-cflags
wrap clang++ $wrapper $ccPath/clang++ wrap clang++ $wrapper $ccPath/clang++
sed -i 's|# Flirting.*|&\nsource ${resetIntelCCFlags}|' $out/bin/clang
sed -i 's|# Flirting.*|&\nsource ${resetIntelCCFlags}|' $out/bin/clang++
echo "" > $out/nix-support/add-hardening.sh
'' + lib.optionalString (openmp != null) ''
echo "export OPENMP_RUNTIME=${ompname}" >> $out/nix-support/cc-wrapper-hook
'' + optionalString (ompss2rt != null) ''
echo "export OMPSS2_RUNTIME=${rtname}" >> $out/nix-support/cc-wrapper-hook
echo "export ${homevar}=${ompss2rt}" >> $out/nix-support/cc-wrapper-hook
'' + optionalString (ompss2rt != null && ompss2rt.pname == "nodes") ''
echo "export NOSV_HOME=${ompss2rt.nosv}" >> $out/nix-support/cc-wrapper-hook
''; '';
}
envExports = lib.optionalString (openmp != null) ''
echo "export OPENMP_RUNTIME=${ompname}" >> $out/nix-support/cc-wrapper-hook
'' + optionalString (ompss2rt != null) ''
echo "export OMPSS2_RUNTIME=${rtname}" >> $out/nix-support/cc-wrapper-hook
echo "export ${homevar}=${ompss2rt}" >> $out/nix-support/cc-wrapper-hook
'' + optionalString (ompss2rt != null && ompss2rt.pname == "nodes") ''
echo "export NOSV_HOME=${ompss2rt.nosv}" >> $out/nix-support/cc-wrapper-hook
'';
extraPackages = optional (openmp != null) openmp;
wrappedCC = wrapCCWith {
# extraPackages adds packages to depsTargetTargetPropagated
inherit cc bintools extraPackages;
extraBuildCommands = extraBuildCommands + envExports;
};
resetIntelCCFlags = let tconf = builtins.replaceStrings ["-"] ["_"] targetConfig;
in writeShellScript "remove-intel.sh" ''
if [ "''${NIX_CC_WRAPPER_INTEL:-0}" = 1 ]; then
unset NIX_CFLAGS_COMPILE_${tconf}
unset NIX_CC_WRAPPER_FLAGS_SET_${tconf}
if (( "''${NIX_DEBUG:-0}" >= 1 )); then
echo "ompss2: cleaned NIX_CFLAGS_COMPILE_${tconf} (invokation from intel compiler detected)"
fi
fi
'';
intelExtraBuildCommands = ''
sed -i 's|# Flirting.*|source ${resetIntelCCFlags}\n\n&|' $out/bin/clang
sed -i 's|# Flirting.*|source ${resetIntelCCFlags}\n\n&|' $out/bin/clang++
'';
wrappedCCIntel = wrapCCWith {
inherit bintools extraPackages;
cc = cc.override { gcc = gcc13; }; # Intel uses gcc13, so we have to match it
# extraPackages adds packages to depsTargetTargetPropagated
extraBuildCommands = intelExtraBuildCommands + envExports;
};
in wrappedCC.overrideAttrs (oldAttrs: {
passthru = oldAttrs.passthru // {
forIcpx = wrappedCCIntel;
};
})

View File

@@ -17,16 +17,16 @@ stdenv.mkDerivation rec {
sha256 = "sha256-SzwplRBO3V0R3m3p15n71ivYBMGoLsajFK2TapYxdqk="; sha256 = "sha256-SzwplRBO3V0R3m3p15n71ivYBMGoLsajFK2TapYxdqk=";
}; };
postUnpack = ''
export sourceRoot="$sourceRoot/src"
'';
postPatch = '' postPatch = ''
sed -i "s@/bin/rm@rm@g" $(find . -name Makefile) sed -i "s@/bin/rm@rm@g" $(find . -name Makefile)
''; '';
buildInputs = [ libtirpc ]; buildInputs = [ libtirpc ];
patches = [ patches = [ ./fix-install.patch ];
./fix-install.patch
./gcc-14.patch
./fix-cross.patch
];
hardeningDisable = [ "all" ]; hardeningDisable = [ "all" ];
@@ -34,13 +34,9 @@ stdenv.mkDerivation rec {
preBuild = '' preBuild = ''
makeFlagsArray+=( makeFlagsArray+=(
-C src
BASE=$out BASE=$out
CFLAGS=-Wno-implicit-int
CPPFLAGS=-I${libtirpc.dev}/include/tirpc CPPFLAGS=-I${libtirpc.dev}/include/tirpc
LDFLAGS=-ltirpc LDFLAGS=-ltirpc
CC=${stdenv.cc.targetPrefix}cc
AR=${stdenv.cc.targetPrefix}ar
) )
''; '';

View File

@@ -1,13 +0,0 @@
diff --git a/src/Makefile b/src/Makefile
index 2555014..356eeb3 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -36,7 +36,7 @@ SHELL=/bin/sh
CC=`../scripts/compiler`
MAKE=`../scripts/make`
-AR=ar
+AR?=ar
ARCREATE=cr
# base of installation location

View File

@@ -1,5 +1,5 @@
--- a/src/Makefile --- a/Makefile
+++ b/src/Makefile +++ b/Makefile
@@ -144,6 +144,7 @@ install-target: @@ -144,6 +144,7 @@ install-target:
if [ ! -d $(BASE)/include ]; then mkdir $(BASE)/include; fi if [ ! -d $(BASE)/include ]; then mkdir $(BASE)/include; fi
if [ ! -d $(BASE)/lib ]; then mkdir $(BASE)/lib; fi if [ ! -d $(BASE)/lib ]; then mkdir $(BASE)/lib; fi

View File

@@ -1,77 +0,0 @@
From a3c6e7d303cd8368e8d4e35be7cbc1997e801257 Mon Sep 17 00:00:00 2001
From: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
Date: Mon, 21 Jul 2025 17:38:58 +0200
Subject: [PATCH] Misc fixes to build with gcc 14
---
src/bench.h | 2 ++
src/lat_select.c | 2 +-
src/lib_debug.c | 1 +
src/lib_sched.c | 2 +-
src/lib_timing.c | 2 +-
5 files changed, 6 insertions(+), 3 deletions(-)
diff --git a/src/bench.h b/src/bench.h
index 8166408..4da9079 100644
--- a/src/bench.h
+++ b/src/bench.h
@@ -320,4 +320,6 @@ extern int handle_scheduler(int childno, int benchproc, int nbenchprocs);
extern char *rpc_xact_1();
extern char *client_rpc_xact_1();
+void lmbench_usage(int argc, char *argv[], char* usage);
+
#endif /* _BENCH_H */
diff --git a/src/lat_select.c b/src/lat_select.c
index 583b505..39df369 100644
--- a/src/lat_select.c
+++ b/src/lat_select.c
@@ -164,7 +164,7 @@ doit(iter_t iterations, void * cookie)
state_t * state = (state_t *)cookie;
fd_set nosave;
static struct timeval tv;
- static count = 0;
+ static int count = 0;
tv.tv_sec = 0;
tv.tv_usec = 0;
diff --git a/src/lib_debug.c b/src/lib_debug.c
index e8347dd..cf65312 100644
--- a/src/lib_debug.c
+++ b/src/lib_debug.c
@@ -1,5 +1,6 @@
#include "bench.h"
#include "lib_debug.h"
+#include <math.h>
/*
* return micro-seconds / iteration at the the fraction point.
diff --git a/src/lib_sched.c b/src/lib_sched.c
index aa83ae0..4f16bbf 100644
--- a/src/lib_sched.c
+++ b/src/lib_sched.c
@@ -91,7 +91,7 @@ handle_scheduler(int childno, int benchproc, int nbenchprocs)
childno * (nbenchprocs + 1) + benchproc);
} else {
/* default action: do nothing */
- return;
+ return 0;
}
return sched_pin(cpu % sched_ncpus());
diff --git a/src/lib_timing.c b/src/lib_timing.c
index af8cf68..7ec9652 100644
--- a/src/lib_timing.c
+++ b/src/lib_timing.c
@@ -1623,7 +1623,7 @@ bread(void* buf, long nbytes)
void
touch(char *buf, int nbytes)
{
- static psize;
+ static int psize;
if (!psize) {
psize = getpagesize();
--
2.49.0

View File

@@ -32,20 +32,17 @@ stdenv.mkDerivation rec {
enableParallelBuilding = true; enableParallelBuilding = true;
nativeBuildInputs = [ buildInputs = [
autoreconfHook autoreconfHook
bison nanos6
flex gperf
python3 python3
gfortran gfortran
pkg-config pkg-config
gperf
gcc
];
buildInputs = [
nanos6
sqlite.dev sqlite.dev
bison
flex
gcc
]; ];
patches = [ ./intel.patch ]; patches = [ ./intel.patch ];

View File

@@ -16,11 +16,10 @@
, jemallocNanos6 ? null , jemallocNanos6 ? null
, cachelineBytes ? 64 , cachelineBytes ? 64
, enableGlibcxxDebug ? false , enableGlibcxxDebug ? false
, enablePapi ? stdenv.hostPlatform == stdenv.buildPlatform # Disabled when cross-compiling
, useGit ? false , useGit ? false
, gitUrl ? "ssh://git@bscpm04.bsc.es/nanos6/nanos6" , gitUrl ? "ssh://git@bscpm04.bsc.es/nanos6/nanos6"
, gitBranch ? "master" , gitBranch ? "master"
, gitCommit ? "f82762b66c82b5174a8eaad33f6c2f335ac759b4" , gitCommit ? "9f54c988e0a8b9c011d9d526acdb8d76f18fcae4"
}: }:
assert enableJemalloc -> (jemallocNanos6 != null); assert enableJemalloc -> (jemallocNanos6 != null);
@@ -29,12 +28,12 @@ with lib;
let let
release = rec { release = rec {
version = "4.3"; version = "4.2";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "bsc-pm"; owner = "bsc-pm";
repo = "nanos6"; repo = "nanos6";
rev = "version-${version}"; rev = "version-${version}";
hash = "sha256-/c6WiKBsAo/01uvMRmjv0PMucbrgvaGmbxlPE6q+dfE="; hash = "sha256-tBrRGLCjSFYdmVGPAC2DzYY6HJyZGUOMeykujafn7+4=";
}; };
}; };
@@ -48,8 +47,6 @@ let
}; };
source = if (useGit) then git else release; source = if (useGit) then git else release;
isCross = stdenv.hostPlatform != stdenv.buildPlatform;
in in
stdenv.mkDerivation (source // { stdenv.mkDerivation (source // {
pname = "nanos6"; pname = "nanos6";
@@ -74,11 +71,9 @@ in
"--disable-all-instrumentations" "--disable-all-instrumentations"
"--enable-ovni-instrumentation" "--enable-ovni-instrumentation"
"--with-ovni=${ovni}" "--with-ovni=${ovni}"
"--with-boost=${boost.dev}"
] ++ ] ++
(optional enableJemalloc "--with-jemalloc=${jemallocNanos6}") ++ (optional enableJemalloc "--with-jemalloc=${jemallocNanos6}") ++
(optional enableGlibcxxDebug "CXXFLAGS=-D_GLIBCXX_DEBUG") ++ (optional enableGlibcxxDebug "CXXFLAGS=-D_GLIBCXX_DEBUG");
(optional isCross "--with-symbol-resolution=ifunc");
postConfigure = lib.optionalString (!enableDebug) '' postConfigure = lib.optionalString (!enableDebug) ''
# Disable debug # Disable debug
@@ -93,23 +88,17 @@ in
dontStrip = enableDebug; dontStrip = enableDebug;
separateDebugInfo = true; separateDebugInfo = true;
nativeBuildInputs = [ buildInputs = [
autoconf autoconf
automake automake
libtool libtool
pkg-config pkg-config
# TODO: papi_version is needed for configure:
# ./configure: line 27378: papi_version: command not found
# This probably breaks cross-compilation
] ++ lib.optionals enablePapi [ papi ];
buildInputs = [
boost boost
numactl numactl
hwloc hwloc
papi
ovni ovni
] ++ lib.optionals enablePapi [ papi ]; ];
# Create a script that sets NANOS6_HOME # Create a script that sets NANOS6_HOME
postInstall = '' postInstall = ''

View File

@@ -6,26 +6,24 @@
, pkg-config , pkg-config
, numactl , numactl
, hwloc , hwloc
, papi
, enablePapi ? stdenv.hostPlatform == stdenv.buildPlatform # Disabled when cross-compiling
, cacheline ? 64 # bits , cacheline ? 64 # bits
, ovni ? null , ovni ? null
, useGit ? false , useGit ? false
, gitUrl ? "git@gitlab-internal.bsc.es:nos-v/nos-v.git" , gitUrl ? "git@gitlab-internal.bsc.es:nos-v/nos-v.git"
, gitBranch ? "master" , gitBranch ? "master"
, gitCommit ? "9f47063873c3aa9d6a47482a82c5000a8c813dd8" , gitCommit ? "cfd361bd1dd30c96da405e6bbaa7e78f5f93dfda"
}: }:
with lib; with lib;
let let
release = rec { release = rec {
version = "3.2.0"; version = "3.1.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "bsc-pm"; owner = "bsc-pm";
repo = "nos-v"; repo = "nos-v";
rev = "${version}"; rev = "${version}";
hash = "sha256-yaz92426EM8trdkBJlISmAoG9KJCDTvoAW/HKrasvOw="; hash = "sha256-Pkre+ZZsREDxJLCoIoPN1HQDuUa2H1IQyKB3omg6qaU=";
}; };
}; };
@@ -58,5 +56,5 @@ in
numactl numactl
hwloc hwloc
ovni ovni
] ++ lib.optionals enablePapi [ papi ]; ];
} }

View File

@@ -1,51 +1,40 @@
{ lib { lib
, intelPackages
, withCFlags
, fetchFromGitHub , fetchFromGitHub
, cmake , cmake
, withCFlags , cudaPackages
, intelPackages , enableNvidia ? true
, withHipTargets ? null # only one target at a time supported
, mklSupport ? true , rocmPackages
, enableMkl ? true
, config
, cudaSupport ? config.cudaSupport
, cudaPackages ? { }
, rocmSupport ? config.rocmSupport
, hipTargets ? null # only one target at a time supported
, rocmPackages ? { }
}: }:
let let
# rocmSupport is not enough, we need a specific target enableHip = withHipTargets != null;
enableHip = rocmSupport && hipTargets != null;
stdenv = withCFlags (lib.optionals cudaSupport [ "--cuda-path=${cudaPackages.cudatoolkit}" ]) intelPackages.stdenv; stdenv = withCFlags (lib.optionals enableNvidia [ "--cuda-path=${cudaPackages.cudatoolkit}" ]) intelPackages.stdenv;
in in
# at least one backend has to be enabled
assert mklSupport || cudaSupport || enableHip;
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "oneMath"; pname = "oneMath";
version = "0.8"; version = "0.7";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "uxlfoundation"; owner = "uxlfoundation";
repo = "oneMath"; repo = "oneMath";
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-xK8lKI3oqKlx3xtvdScpMq+HXAuoYCP0BZdkEqnJP5o="; sha256 = "sha256-De04PUmI68Jx4rJ+MRb+RepayZCapgnouCUCrAu6G38=";
}; };
cmakeFlags = [ cmakeFlags = [
(lib.cmakeBool "ENABLE_MKLCPU_BACKEND" mklSupport) (lib.cmakeBool "ENABLE_MKLCPU_BACKEND" enableMkl)
(lib.cmakeBool "ENABLE_MKLGPU_BACKEND" mklSupport) (lib.cmakeBool "ENABLE_MKLGPU_BACKEND" enableMkl)
(lib.cmakeBool "ENABLE_CUBLAS_BACKEND" cudaSupport) (lib.cmakeBool "ENABLE_CUBLAS_BACKEND" enableNvidia)
(lib.cmakeBool "ENABLE_CUFFT_BACKEND" cudaSupport) (lib.cmakeBool "ENABLE_CUFFT_BACKEND" enableNvidia)
(lib.cmakeBool "ENABLE_CURAND_BACKEND" cudaSupport) (lib.cmakeBool "ENABLE_CURAND_BACKEND" enableNvidia)
(lib.cmakeBool "ENABLE_CUSOLVER_BACKEND" cudaSupport) (lib.cmakeBool "ENABLE_CUSOLVER_BACKEND" enableNvidia)
(lib.cmakeBool "ENABLE_CUSPARSE_BACKEND" cudaSupport) (lib.cmakeBool "ENABLE_CUSPARSE_BACKEND" enableNvidia)
(lib.cmakeBool "ENABLE_ROCBLAS_BACKEND" enableHip) (lib.cmakeBool "ENABLE_ROCBLAS_BACKEND" enableHip)
(lib.cmakeBool "ENABLE_ROCFFT_BACKEND" enableHip) (lib.cmakeBool "ENABLE_ROCFFT_BACKEND" enableHip)
@@ -56,11 +45,11 @@ stdenv.mkDerivation rec {
(lib.cmakeBool "BUILD_FUNCTIONAL_TESTS" false) (lib.cmakeBool "BUILD_FUNCTIONAL_TESTS" false)
(lib.cmakeBool "BUILD_EXAMPLES" false) (lib.cmakeBool "BUILD_EXAMPLES" false)
] ++ lib.optionals enableHip [ ] ++ lib.optionals enableHip [
(lib.cmakeFeature "HIP_TARGETS" hipTargets) (lib.cmakeFeature "HIP_TARGETS" withHipTargets)
]; ];
nativeBuildInputs = [ cmake ]; nativeBuildInputs = [ cmake ];
buildInputs = lib.optionals (mklSupport) [ buildInputs = lib.optionals (enableMkl) [
intelPackages.mkl intelPackages.mkl
intelPackages.tbb intelPackages.tbb
] ++ lib.optionals (enableHip) [ ] ++ lib.optionals (enableHip) [
@@ -70,7 +59,7 @@ stdenv.mkDerivation rec {
rocmPackages.rocsolver rocmPackages.rocsolver
rocmPackages.rocrand rocmPackages.rocrand
rocmPackages.rocsparse rocmPackages.rocsparse
] ++ lib.optionals (cudaSupport) [ ] ++ lib.optionals (enableNvidia) [
(lib.getDev cudaPackages.cuda_cudart) (lib.getDev cudaPackages.cuda_cudart)
cudaPackages.cudatoolkit cudaPackages.cudatoolkit

View File

@@ -24,7 +24,6 @@ stdenv.mkDerivation rec {
doCheck = true; doCheck = true;
enableParallelBuilding = true; enableParallelBuilding = true;
nativeBuildInputs = [ mpiAll ];
buildInputs = [ mpiAll ]; buildInputs = [ mpiAll ];
hardeningDisable = [ "all" ]; hardeningDisable = [ "all" ];
configureFlags = [ configureFlags = [
@@ -41,7 +40,7 @@ stdenv.mkDerivation rec {
meta = { meta = {
description = "OSU Micro-Benchmarks"; description = "OSU Micro-Benchmarks";
homepage = "http://mvapich.cse.ohio-state.edu/benchmarks/"; homepage = http://mvapich.cse.ohio-state.edu/benchmarks/;
maintainers = [ ]; maintainers = [ ];
platforms = lib.platforms.all; platforms = lib.platforms.all;
}; };

View File

@@ -7,21 +7,23 @@
, useGit ? false , useGit ? false
, gitBranch ? "master" , gitBranch ? "master"
, gitUrl ? "ssh://git@bscpm04.bsc.es/rarias/ovni.git" , gitUrl ? "ssh://git@bscpm04.bsc.es/rarias/ovni.git"
, gitCommit ? "e4f62382076f0cf0b1d08175cf57cc0bc51abc61" , gitCommit ? "a7103f8510d1ec124c3e01ceb47d1e443e98bbf4"
, enableDebug ? false , enableDebug ? false
# Only enable MPI if the build is native (fails on cross-compilation) # Only enable MPI if the build is native (fails on cross-compilation)
, useMpi ? (stdenv.buildPlatform.canExecute stdenv.hostPlatform) , useMpi ? (stdenv.buildPlatform.canExecute stdenv.hostPlatform)
}: }:
with lib;
let let
release = rec { release = rec {
version = "1.12.0"; version = "1.11.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "bsc-pm"; owner = "bsc-pm";
repo = "ovni"; repo = "ovni";
rev = "${version}"; rev = "${version}";
hash = "sha256-H04JvsVKrdqr3ON7JhU0g17jjlg/jzQ7eTfx9vUNd3E="; hash = "sha256-DEZUK1dvbPGH5WYkZ2hpP5PShkMxXkHOqMwgYUHHxeM=";
} // { shortRev = "a73afcf"; }; } // { shortRev = "a7103f8"; };
}; };
git = rec { git = rec {
@@ -43,7 +45,7 @@ in
postPatch = '' postPatch = ''
patchShebangs --build test/ patchShebangs --build test/
''; '';
nativeBuildInputs = [ cmake ] ++ lib.optionals (useMpi) [ mpi ]; nativeBuildInputs = [ cmake ];
buildInputs = lib.optionals (useMpi) [ mpi ]; buildInputs = lib.optionals (useMpi) [ mpi ];
cmakeBuildType = if (enableDebug) then "Debug" else "Release"; cmakeBuildType = if (enableDebug) then "Debug" else "Release";
cmakeFlags = [ cmakeFlags = [

View File

@@ -1,5 +1,5 @@
{ stdenv {
, fetchFromGitHub stdenv
, autoreconfHook , autoreconfHook
, boost , boost
, libxml2 , libxml2
@@ -11,32 +11,22 @@
, openssl , openssl
, glibcLocales , glibcLocales
, wrapGAppsHook , wrapGAppsHook
, enableDebug ? false
}: }:
let let
wx = wxGTK32; wx = wxGTK32;
version = "4.12.0";
in in
stdenv.mkDerivation { stdenv.mkDerivation rec {
pname = "wxparaver"; pname = "wxparaver";
inherit version; version = "4.11.2";
src = fetchFromGitHub { src = builtins.fetchGit {
owner = "bsc-performance-tools"; url = "https://github.com/bsc-performance-tools/wxparaver.git";
repo = "wxparaver"; rev = "129e6b4a4f061e5a319049db8db1620f5de3bd70"; # v4.11.2 (missing tag)
rev = "v${version}"; ref = "master";
sha256 = "sha256-YsO5gsuEFQdki3lQudEqgo5WXOt/fPdvNw5OxZQ86Zo=";
}; };
patches = [ hardeningDisable = [ "all" ];
./do-not-steal-focus-on-redraw.patch
# Fix for boost >=1.87 (thanks to gamezelda)
# https://aur.archlinux.org/cgit/aur.git/commit/?h=wxparaver&id=b0dcd08c472536e0a1a3cc1dfbc4c77d9f5e0d47
./fix-boost-87.patch
];
# Fix the PARAVER_HOME variable # Fix the PARAVER_HOME variable
postPatch = '' postPatch = ''
@@ -44,20 +34,13 @@ stdenv.mkDerivation {
sed -i '1aexport LOCALE_ARCHIVE="${glibcLocales}/lib/locale/locale-archive"' docs/wxparaver sed -i '1aexport LOCALE_ARCHIVE="${glibcLocales}/lib/locale/locale-archive"' docs/wxparaver
''; '';
dontStrip = true;
enableParallelBuilding = true; enableParallelBuilding = true;
hardeningDisable = [ "all" ]; preConfigure = ''
export CFLAGS="-O3"
dontStrip = true; export CXXFLAGS="-O3"
'';
env =
let
flags = if enableDebug then "-ggdb -Og" else "-O3";
in
{
CFLAGS = flags;
CXXFLAGS = flags;
};
configureFlags = [ configureFlags = [
"--with-boost=${boost}" "--with-boost=${boost}"
@@ -67,19 +50,19 @@ stdenv.mkDerivation {
]; ];
nativeBuildInputs = [ nativeBuildInputs = [
autoconf
automake
autoreconfHook
wrapGAppsHook wrapGAppsHook
]; ];
buildInputs = [ buildInputs = [
autoreconfHook
boost boost
libxml2 libxml2.dev
xml2 xml2
wx wx
autoconf
automake
paraverKernel paraverKernel
openssl openssl.dev
]; ];
postInstall = '' postInstall = ''

View File

@@ -1,26 +0,0 @@
From 2b185e1b5ce52808b3026334851dbcd5a640ed4d Mon Sep 17 00:00:00 2001
From: aleixbonerib <aleix.boneribo@bsc.es>
Date: Mon, 10 Jun 2024 20:59:45 +0200
Subject: [PATCH] fix: do not set focus on redraw
Some wm can change the window size without focusing. Right now, when the
plot is resized it takes back focus.
---
src/gtimeline.cpp | 1 -
1 file changed, 1 deletion(-)
diff --git a/src/gtimeline.cpp b/src/gtimeline.cpp
index 23ebef2..a896066 100644
--- a/src/gtimeline.cpp
+++ b/src/gtimeline.cpp
@@ -899,7 +899,6 @@ void gTimeline::redraw()
drawZone->Refresh();
- SetFocus();
}
--
2.44.1

View File

@@ -11,7 +11,7 @@ diff --git a/api/semanticcolor.cpp b/api/semanticcolor.cpp
index 9f86960..22859eb 100644 index 9f86960..22859eb 100644
--- a/api/semanticcolor.cpp --- a/api/semanticcolor.cpp
+++ b/api/semanticcolor.cpp +++ b/api/semanticcolor.cpp
@@ -295,8 +295,9 @@ rgb SemanticColor::getColor( PRV_UINT32 pos ) const @@ -232,8 +232,9 @@ rgb CodeColor::getColor( PRV_UINT32 pos ) const
{ {
if( pos == 0 && ParaverConfig::getInstance()->getColorsTimelineUseZero() ) if( pos == 0 && ParaverConfig::getInstance()->getColorsTimelineUseZero() )
return ParaverConfig::getInstance()->getColorsTimelineColorZero(); return ParaverConfig::getInstance()->getColorsTimelineColorZero();
@@ -22,26 +22,26 @@ index 9f86960..22859eb 100644
+ return colors[ pos + 1 ]; + return colors[ pos + 1 ];
} }
void SemanticColor::setColor( PRV_UINT32 whichPos, rgb whichColor ) void CodeColor::setColor( PRV_UINT32 whichPos, rgb whichColor )
@@ -314,6 +315,12 @@ void SemanticColor::setColor( PRV_UINT32 whichPos, rgb whichColor ) @@ -250,6 +251,12 @@ void CodeColor::setColor( PRV_UINT32 whichPos, rgb whichColor )
colors[ whichPos ] = whichColor; colors[ whichPos ] = whichColor;
} }
+void SemanticColor::cutAfter( PRV_UINT32 pos ) +void CodeColor::cutAfter( PRV_UINT32 pos )
+{ +{
+ if ( pos < colors.size() ) + if ( pos < colors.size() )
+ colors.erase( colors.begin() + pos, colors.end() ); + colors.erase( colors.begin() + pos, colors.end() );
+} +}
+ +
void SemanticColor::setCustomColor( TSemanticValue whichValue, rgb color ) void CodeColor::setCustomColor( TSemanticValue whichValue, rgb color )
{ {
customPalette[ whichValue ] = color; customPalette[ whichValue ] = color;
diff --git a/api/semanticcolor.h b/api/semanticcolor.h diff --git a/api/semanticcolor.h b/api/semanticcolor.h
index a079556..bddf3d8 100644 index a079556..bddf3d8 100644
--- a/api/semanticcolor.h --- a/api/semanticcolor.h
+++ b/api/semanticcolor.h +++ b/api/semanticcolor.h
@@ -114,6 +114,7 @@ class SemanticColor @@ -98,6 +98,7 @@ class CodeColor: public SemanticColor
// Code Color methods
PRV_UINT32 getNumColors() const; PRV_UINT32 getNumColors() const;
void setColor( PRV_UINT32 pos, rgb color ); void setColor( PRV_UINT32 pos, rgb color );
+ void cutAfter( PRV_UINT32 pos ); + void cutAfter( PRV_UINT32 pos );
@@ -61,7 +61,7 @@ index b0d2050..ee2ab69 100644
for ( auto it : semanticColors ) for ( auto it : semanticColors )
{ {
std::tie( tmpColor.red, tmpColor.green, tmpColor.blue ) = it.second; std::tie( tmpColor.red, tmpColor.green, tmpColor.blue ) = it.second;
mySemanticColor.setColor( it.first, tmpColor ); myCodeColor.setColor( it.first, tmpColor );
+ if (it.first > maxValue) + if (it.first > maxValue)
+ maxValue = it.first; + maxValue = it.first;
} }
@@ -69,7 +69,7 @@ index b0d2050..ee2ab69 100644
+ // Cut the palette after the highest defined value, so there are no + // Cut the palette after the highest defined value, so there are no
+ // extra expanded values + // extra expanded values
+ if ( !pcfParser.expandColors ) + if ( !pcfParser.expandColors )
+ mySemanticColor.cutAfter(maxValue); + myCodeColor.cutAfter(maxValue);
+ +
myEventLabels = EventLabels( pcfParser ); myEventLabels = EventLabels( pcfParser );
myStateLabels = StateLabels( pcfParser ); myStateLabels = StateLabels( pcfParser );

View File

@@ -1,87 +0,0 @@
From 7ecd888e2ebb9e8c5582851d3c50bff61022708e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Joan=20Bruguera=20Mic=C3=B3?= <joanbrugueram@gmail.com>
Date: Sat, 29 Mar 2025 18:14:25 +0000
Subject: [PATCH] tutorialsdownload: Fix Boost ASIO 1.87.0 removals
---
src/tutorialsdownload.cpp | 25 ++++++++++++-------------
1 file changed, 12 insertions(+), 13 deletions(-)
diff --git a/src/tutorialsdownload.cpp b/src/tutorialsdownload.cpp
index a1921fd..6ce9dc2 100644
--- a/src/tutorialsdownload.cpp
+++ b/src/tutorialsdownload.cpp
@@ -121,13 +121,13 @@ void TutorialsProgress::updateInstall( int whichValue )
class client
{
public:
- client( boost::asio::io_service& io_service,
+ client( boost::asio::io_context& io_context,
boost::asio::ssl::context& context,
const std::string& server, const std::string& path,
ofstream& storeFile,
TutorialsProgress *progress )
- : resolver_( io_service ),
- socket_( io_service, context ),
+ : resolver_( io_context ),
+ socket_( io_context, context ),
store_( storeFile ),
progress_( progress )
{
@@ -143,8 +143,7 @@ class client
// Start an asynchronous resolve to translate the server and service names
// into a list of endpoints.
- tcp::resolver::query query( server, "https" );
- resolver_.async_resolve( query,
+ resolver_.async_resolve( server, "https",
boost::bind( &client::handle_resolve,
this,
boost::asio::placeholders::error,
@@ -154,7 +153,7 @@ class client
private:
void handle_resolve( const boost::system::error_code& err,
- tcp::resolver::iterator endpoint_iterator )
+ const tcp::resolver::results_type& endpoints )
{
if ( !err )
{
@@ -162,7 +161,7 @@ class client
socket_.set_verify_callback( boost::bind( &client::verify_certificate, this, _1, _2 ) );
boost::asio::async_connect( socket_.lowest_layer(),
- endpoint_iterator,
+ endpoints,
boost::bind( &client::handle_connect,
this,
boost::asio::placeholders::error ) );
@@ -536,9 +535,9 @@ bool TutorialsDownload::downloadTutorialsList() const
boost::asio::ssl::context ctx( boost::asio::ssl::context::sslv23 );
ctx.set_default_verify_paths();
- boost::asio::io_service io_service;
- client c( io_service, ctx, server, path, storeFile, nullptr );
- io_service.run();
+ boost::asio::io_context io_context;
+ client c( io_context, ctx, server, path, storeFile, nullptr );
+ io_context.run();
doneDownload = true;
}
@@ -580,9 +579,9 @@ bool TutorialsDownload::download( const TutorialData& whichTutorial, string& tut
boost::asio::ssl::context ctx( boost::asio::ssl::context::sslv23 );
ctx.set_default_verify_paths();
- boost::asio::io_service io_service;
- client c( io_service, ctx, std::string( server.mb_str() ), std::string( path.mb_str() ), storeFile, &progress );
- io_service.run();
+ boost::asio::io_context io_context;
+ client c( io_context, ctx, std::string( server.mb_str() ), std::string( path.mb_str() ), storeFile, &progress );
+ io_context.run();
}
catch ( ParaverKernelException& e )
{
--
2.49.0

View File

@@ -1,23 +0,0 @@
commit 60aa3ffa05f6b40db191a880e9e622d608744c1f
Author: Aleix Boné <aleix.boneribo@bsc.es>
Date: Sun Jul 21 12:11:30 2025 +0200
fix libxml2 deprecated macro
diff --git a/configure.ac b/configure.ac
index 7fe1876..3ce1091 100644
--- a/configure.ac
+++ b/configure.ac
@@ -46,7 +46,10 @@ AC_PROG_CPP
AC_PROG_CXXCPP
AC_PROG_SED
-AM_PATH_XML2
+PKG_PROG_PKG_CONFIG
+PKG_CHECK_MODULES([XML], [libxml-2.0])
+
+AC_SUBST(XML_CPPFLAGS, $XML_CFLAGS)
AX_BOOST_BASE(1.36)
AX_BOOST_SERIALIZATION

View File

@@ -1,36 +1,32 @@
{ stdenv {
, fetchFromGitHub stdenv
, autoreconfHook , autoreconfHook
, boost , boost
, libxml2 , libxml2
, xml2 , xml2
, wxGTK32
, autoconf , autoconf
, automake , automake
, pkg-config , pkg-config
, zlib , zlib
, enableDebug ? false
}: }:
let let
version = "4.12.0"; wx = wxGTK32;
in in
stdenv.mkDerivation { stdenv.mkDerivation rec {
pname = "paraver-kernel"; pname = "paraver-kernel";
inherit version; version = "${src.shortRev}";
src = fetchFromGitHub { src = builtins.fetchGit {
owner = "bsc-performance-tools"; url = "https://github.com/bsc-performance-tools/paraver-kernel.git";
repo = "paraver-kernel"; rev = "2e167da3cee78ca11e31b74faefb23f12bac2b8c"; # master (missing tag)
rev = "v${version}"; ref = "master";
sha256 = "sha256-Xs7g8ITZhPt00v7o2WlTddbou8C8Rc9kBMFpl2WsCS4=";
}; };
patches = [ patches = [
# https://github.com/bsc-performance-tools/paraver-kernel/pull/11 # https://github.com/bsc-performance-tools/paraver-kernel/pull/11
# TODO: add this back if it's still relevant ./dont-expand-colors.patch
# ./dont-expand-colors.patch
./fix-libxml2-deprecation.patch
]; ];
hardeningDisable = [ "all" ]; hardeningDisable = [ "all" ];
@@ -38,31 +34,24 @@ stdenv.mkDerivation {
dontStrip = true; dontStrip = true;
env = preConfigure = ''
let export CFLAGS="-O3 -DPARALLEL_ENABLED"
flags = "-DPARALLEL_ENABLED " + (if enableDebug then "-ggdb -Og" else "-O3"); export CXXFLAGS="-O3 -DPARALLEL_ENABLED"
in '';
{
CFLAGS = flags;
CXXFLAGS = flags;
};
configureFlags = [ configureFlags = [
"--with-boost=${boost}" "--with-boost=${boost}"
"--enable-openmp" "--enable-openmp"
]; ];
nativeBuildInputs = [
autoreconfHook
autoconf
automake
pkg-config
];
buildInputs = [ buildInputs = [
autoreconfHook
boost boost
libxml2.dev libxml2.dev
xml2 xml2
autoconf
automake
pkg-config
zlib zlib
]; ];
} }

View File

@@ -61,16 +61,13 @@ stdenv.mkDerivation rec {
"--with-wx-config=${wx}/bin/wx-config" "--with-wx-config=${wx}/bin/wx-config"
]; ];
nativeBuildInputs = [
autoconf
automake
];
buildInputs = [ buildInputs = [
boost boost
xml2 xml2
libxml2.dev libxml2.dev
wx wx
autoconf
automake
openssl.dev openssl.dev
]; ];

View File

@@ -18,12 +18,8 @@ stdenv.mkDerivation rec {
hardeningDisable = [ "all" ]; hardeningDisable = [ "all" ];
dontStrip = true; dontStrip = true;
configureFlags = [ "--with-ovni=${ovni}" ]; configureFlags = [ "--with-ovni=${ovni}" ];
nativeBuildInputs = [
autoreconfHook
];
buildInputs = [ buildInputs = [
autoreconfHook
ovni ovni
mpi mpi
]; ];

View File

@@ -1,68 +0,0 @@
{ stdenv
, fetchFromGitHub
, automake
, autoconf
, libtool
, gnumake
, autoreconfHook
, boost
, cudaPackages
, 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
stdenv.mkDerivation {
pname = "tacuda";
inherit (source) src version;
enableParallelBuilding = true;
separateDebugInfo = true;
nativeBuildInputs = [
autoreconfHook
automake
autoconf
libtool
gnumake
];
patches = [ ./fix_config.patch ];
configureFlags = [ "--with-cuda-include=${cudaPackages.cudatoolkit}/include" ];
buildInputs = [
boost
cudaPackages.libcublas
cudaPackages.cuda_cudart
];
}

View File

@@ -1,13 +0,0 @@
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,

View File

@@ -8,13 +8,14 @@
, gnumake , gnumake
, boost , boost
, mpi , mpi
, gcc
, autoreconfHook , autoreconfHook
, enableOvni ? true , enableOvni ? true
, ovni ? null , ovni ? null
, useGit ? false , useGit ? false
, gitUrl ? "ssh://git@bscpm04.bsc.es/interoperability/tampi.git" , gitUrl ? "ssh://git@bscpm04.bsc.es/interoperability/tampi.git"
, gitBranch ? "master" , gitBranch ? "master"
, gitCommit ? "f6455db9d3124ae36e715a4874fd49720e79f20a" , gitCommit ? "a5c93bf8ab045b71ad4a8d5e2c991ce774db5cbc"
}: }:
with lib; with lib;
@@ -23,12 +24,12 @@ assert enableOvni -> (ovni != null);
let let
release = rec { release = rec {
version = "4.1"; version = "4.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "bsc-pm"; owner = "bsc-pm";
repo = "tampi"; repo = "tampi";
rev = "v${version}"; rev = "v${version}";
hash = "sha256-SwfPSnwcZnRnSgNvCD5sFSUJRpWINqI5I4adj5Hh+XY="; hash = "sha256-R7ew5tsrxGReTvOeeZe1FD0oThBhOHoDGv6Mo2sbmDg=";
}; };
}; };
git = rec { git = rec {
@@ -40,23 +41,20 @@ let
}; };
}; };
source = if (useGit) then git else release; source = if (useGit) then git else release;
in stdenv.mkDerivation { in stdenv.mkDerivation rec {
pname = "tampi"; pname = "tampi";
inherit (source) src version; inherit (source) src version;
enableParallelBuilding = true; enableParallelBuilding = true;
separateDebugInfo = true; separateDebugInfo = true;
nativeBuildInputs = [
autoconf
automake
autoreconfHook
gnumake
libtool
];
buildInputs = [ buildInputs = [
autoreconfHook
automake
autoconf
libtool
gnumake
boost boost
mpi mpi
gcc
] ++ optional (enableOvni) ovni; ] ++ optional (enableOvni) ovni;
configureFlags = optional (enableOvni) "--with-ovni=${ovni}"; configureFlags = optional (enableOvni) "--with-ovni=${ovni}";
dontDisableStatic = true; dontDisableStatic = true;

View File

@@ -1,46 +0,0 @@
{
stdenv
, automake
, autoconf
, libtool
, gnumake
, boost
, mpi
, gcc
, 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;
configureFlags = [
"--with-opencl-lib=${ocl-icd}/lib"
"--with-opencl-include=${opencl-headers}/include"
];
buildInputs = [
autoreconfHook
automake
autoconf
libtool
gnumake
boost
mpi
gcc
];
dontDisableStatic = true;
hardeningDisable = [ "all" ];
})

View File

@@ -9,6 +9,7 @@
, gnumake , gnumake
, autoreconfHook , autoreconfHook
, boost , boost
, opensycl ? null
, adaptivecpp ? null , adaptivecpp ? null
, useIntel ? true , useIntel ? true
@@ -18,9 +19,17 @@
, gitCommit ? "78f98dcf60a66e0eaa3b4ebcf55be076bec64825" , gitCommit ? "78f98dcf60a66e0eaa3b4ebcf55be076bec64825"
}: }:
assert (useIntel || adaptivecpp != null); assert (useIntel || opensycl != null || adaptivecpp != null);
let let
# opensycl has migrated to adaptivecpp
acpp-flags =
if adaptivecpp == null then
[ "-L${opensycl}/lib" "-lhipSYCL-rt" "-I${opensycl}/include" ]
else
[ "-L${adaptivecpp}/lib" "-lacpp-rt" "-I${adaptivecpp}/include" ]
;
variant = if useIntel then "intel" else "acpp"; variant = if useIntel then "intel" else "acpp";
syclStdenv = syclStdenv =
@@ -29,7 +38,7 @@ let
# intel disables all optimizations # intel disables all optimizations
withCFlags ["-O3"] intelPackages.stdenv withCFlags ["-O3"] intelPackages.stdenv
else else
withCFlags [ "-L${adaptivecpp}/lib" "-lacpp-rt" "-I${adaptivecpp}/include" ] stdenv withCFlags acpp-flags stdenv
; ;
release = rec { release = rec {

View File

@@ -1,4 +1,4 @@
{ writeText, intelPackages, nodes, nosv, clangOmpss2Nodes, strace }: { writeText, intelPackages, nodes, nosv, clangOmpss2Nodes, clangOmpss2Unwrapped, clangOmpss2, strace }:
let let
hello_cpp = writeText "hello.cpp" '' hello_cpp = writeText "hello.cpp" ''
@@ -44,10 +44,6 @@ intelPackages.stdenv.mkDerivation {
dontUnpack = true; dontUnpack = true;
dontConfigure = true; dontConfigure = true;
# NODES requires access to /sys/devices to request NUMA information. It will
# fail to run otherwise, so we disable the sandbox for this test.
__noChroot = true;
env.NODES_HOME = nodes; env.NODES_HOME = nodes;
NIX_DEBUG = 0; NIX_DEBUG = 0;
@@ -58,9 +54,9 @@ intelPackages.stdenv.mkDerivation {
echo NODES_HOME=$NODES_HOME echo NODES_HOME=$NODES_HOME
command -v $CXX command -v $CXX
icpx -Wno-deprecated-declarations -fsycl \ icpx -fsycl \
-fsycl-host-compiler=${clangOmpss2Nodes.forIcpx}/bin/clang++ \ -fsycl-host-compiler=${clangOmpss2Nodes}/bin/clang++ \
-fsycl-host-compiler-options='-Wno-deprecated-declarations -fompss-2=libnodes' \ -fsycl-host-compiler-options='-fompss-2=libnodes' \
-lnodes -lnosv \ -lnodes -lnosv \
$NODES_HOME/lib/nodes-main-wrapper.o \ $NODES_HOME/lib/nodes-main-wrapper.o \
hello.cpp -o hello hello.cpp -o hello