Compare commits

..

1 Commits

Author SHA1 Message Date
39b65d8f96 Add TACUDA package 2025-10-28 17:02:23 +01:00
4 changed files with 82 additions and 56 deletions

View File

@@ -7,33 +7,6 @@ let
callPackage = final.callPackage;
bscPkgs = {
# override stdenv to add a sentinel to know if a derivation comes
# from unfree sources.
stdenv = prev.stdenv // {
mkDerivation =
args:
let
originalDrv = prev.stdenv.mkDerivation args;
checkLicense = l: if builtins.isAttrs l then !(l.free or true) else false;
licenses = if builtins.isList args.meta.license then args.meta.license else [ args.meta.license ];
hasUnfreeLicense =
if args ? meta && args.meta ? license then builtins.any checkLicense licenses else false;
in
if hasUnfreeLicense then
builtins.traceVerbose "adding nix-support/private to ${originalDrv.name or originalDrv.pname}" (
originalDrv.overrideAttrs (old: {
postInstall = (old.postInstall or "") + ''
mkdir -p $out/nix-support
touch $out/nix-support/private
'';
}))
else
originalDrv;
};
agenix = prev.callPackage ./pkgs/agenix/default.nix { };
amd-uprof = prev.callPackage ./pkgs/amd-uprof/default.nix { };
bench6 = callPackage ./pkgs/bench6/default.nix { };
@@ -84,6 +57,7 @@ let
stdenvClangOmpss2Nanos6 = final.stdenv.override { cc = final.clangOmpss2Nanos6; allowedRequisites = null; };
stdenvClangOmpss2Nodes = final.stdenv.override { cc = final.clangOmpss2Nodes; allowedRequisites = null; };
stdenvClangOmpss2NodesOmpv = final.stdenv.override { cc = final.clangOmpss2NodesOmpv; allowedRequisites = null; };
tacuda = callPackage ./pkgs/tacuda/default.nix { };
tagaspi = callPackage ./pkgs/tagaspi/default.nix { };
tampi = callPackage ./pkgs/tampi/default.nix { };
upc-qaire-exporter = prev.callPackage ./pkgs/upc-qaire-exporter/default.nix { };

View File

@@ -50,15 +50,11 @@ let
];
phases = [ "installPhase" ];
installPhase = ''
runHook preInstall
awk -F': ' '\
BEGIN { print "[ {" } \
NR>1 && /^Package: / { print "} {"; } \
/: / { printf "%s = \"%s\";\n", $1, $2 } \
END { print "} ]" }' $srcs > $out
runHook postInstall
'';
};
@@ -92,15 +88,11 @@ let
nativeBuildInputs = [ dpkg ];
phases = [ "installPhase" ];
installPhase = ''
runHook preInstall
mkdir -p $out
for src in $srcs; do
echo "unpacking $src"
dpkg -x $src $out
done
runHook postInstall
'';
inherit meta;
@@ -139,8 +131,6 @@ let
phases = [ "installPhase" "fixupPhase" ];
dontStrip = true;
installPhase = ''
runHook preInstall
mkdir -p $out/{bin,etc,lib,include}
mkdir -p $out/share/man
@@ -157,8 +147,6 @@ let
# Broken due missing libze_loader.so.1
rsync -a --exclude IMB-MPI1-GPU bin/ $out/bin/
popd
runHook postInstall
'';
preFixup = ''
for i in $out/bin/mpi* ; do
@@ -197,8 +185,6 @@ let
autoPatchelfIgnoreMissingDeps = [ "libhwloc.so.5" ];
installPhase = ''
runHook preInstall
mkdir -p $out/lib
cd $src
@@ -207,8 +193,6 @@ let
# Libraries
rsync -a lib/intel64/gcc4.8/ $out/lib/
popd
runHook postInstall
'';
inherit meta;
@@ -244,8 +228,6 @@ let
autoPatchelfIgnoreMissingDeps = [ "libsycl.so.6" ];
installPhase = ''
runHook preInstall
mkdir -p $out/{bin,lib,include}
mkdir -p $out/share/man
@@ -270,8 +252,6 @@ let
rsync -a compiler/include/ $out/include/
popd
popd
runHook postInstall
'';
inherit meta;
@@ -313,8 +293,6 @@ let
dontStrip = true;
installPhase = ''
runHook preInstall
mkdir -p $out/{bin,lib,include}
mkdir -p $out/share/man
@@ -340,10 +318,7 @@ let
# Fix lib_lin
ln -s $out/lib $out/lib_lin
popd
runHook postInstall
'';
inherit meta;
@@ -406,8 +381,6 @@ let
dontStrip = true;
installPhase = ''
runHook preInstall
mkdir -p $out/{bin,lib}
mkdir -p $out/share/man
@@ -435,8 +408,6 @@ let
# Manuals
rsync -a documentation/en/man/common/ $out/share/man/
popd
runHook postInstall
'';
inherit meta;

68
pkgs/tacuda/default.nix Normal file
View File

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

@@ -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,