From 846f514688e92d921c9692a6e97ac88bb329226a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aleix=20Bon=C3=A9?= Date: Mon, 11 Aug 2025 16:58:56 +0200 Subject: [PATCH] Add TACUDA package --- overlay.nix | 1 + pkgs/tacuda/default.nix | 69 ++++++++++++++++++++++++++++++++++++ pkgs/tacuda/fix_config.patch | 13 +++++++ 3 files changed, 83 insertions(+) create mode 100644 pkgs/tacuda/default.nix create mode 100644 pkgs/tacuda/fix_config.patch diff --git a/overlay.nix b/overlay.nix index f0d7274..2c0686a 100644 --- a/overlay.nix +++ b/overlay.nix @@ -61,6 +61,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 { }; diff --git a/pkgs/tacuda/default.nix b/pkgs/tacuda/default.nix new file mode 100644 index 0000000..2ebe0c8 --- /dev/null +++ b/pkgs/tacuda/default.nix @@ -0,0 +1,69 @@ +{ + 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 + ]; + +} diff --git a/pkgs/tacuda/fix_config.patch b/pkgs/tacuda/fix_config.patch new file mode 100644 index 0000000..b57f9e0 --- /dev/null +++ b/pkgs/tacuda/fix_config.patch @@ -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,