forked from rarias/jungle
Compare commits
13 Commits
5448fc75e1
...
39ccc19282
| Author | SHA1 | Date | |
|---|---|---|---|
|
39ccc19282
|
|||
|
a1086d8c67
|
|||
|
2b5abf4990
|
|||
|
67a7abbb70
|
|||
|
dc96b999cb
|
|||
|
9d2604ebb8
|
|||
|
68b74f61fe
|
|||
|
88f480fddf
|
|||
|
0b0de30d12
|
|||
|
745b435dba
|
|||
|
d60713ef9e
|
|||
|
f15055ccdb
|
|||
|
f836ffe7dc
|
@@ -23,7 +23,6 @@ let
|
||||
intelPackages_2024 = final.intel-apt.hpckit_2024;
|
||||
intelPackages_2025 = final.intel-apt.hpckit_2025;
|
||||
intelPackages = final.intelPackages_2025;
|
||||
oneMath = callPackage ./pkgs/onemath/default.nix { };
|
||||
jemallocNanos6 = callPackage ./pkgs/nanos6/jemalloc.nix { };
|
||||
# FIXME: Extend this to all linuxPackages variants. Open problem, see:
|
||||
# https://discourse.nixos.org/t/whats-the-right-way-to-make-a-custom-kernel-module-available/4636
|
||||
@@ -46,6 +45,7 @@ let
|
||||
#nix-wrap = callPackage ./pkgs/nix-wrap/default.nix { };
|
||||
nodes = callPackage ./pkgs/nodes/default.nix { };
|
||||
nosv = callPackage ./pkgs/nosv/default.nix { };
|
||||
oneMath = callPackage ./pkgs/onemath/default.nix { };
|
||||
openmp = callPackage ./pkgs/llvm-ompss2/openmp.nix { monorepoSrc = final.clangOmpss2Unwrapped.src; version = final.clangOmpss2Unwrapped.version; };
|
||||
openmpv = final.openmp.override { enableNosv = true; enableOvni = true; };
|
||||
osumb = callPackage ./pkgs/osu/default.nix { };
|
||||
|
||||
@@ -35,35 +35,18 @@ let
|
||||
mpi = "2021.9.0";
|
||||
};
|
||||
|
||||
aptPackageIndex = stdenv.mkDerivation {
|
||||
name = "intel-oneapi-packages";
|
||||
srcs = [
|
||||
# Run update.sh to update the package lists
|
||||
./amd64-packages ./all-packages
|
||||
];
|
||||
phases = [ "installPhase" ];
|
||||
installPhase = ''
|
||||
awk -F': ' '\
|
||||
BEGIN { print "[ {" } \
|
||||
NF==0 { empty=1; } \
|
||||
NF && empty { print "} {"; empty=0; } \
|
||||
/: / { printf "%s = \"%s\";\n", $1, $2 } \
|
||||
END { print "} ]" }' $srcs > $out
|
||||
'';
|
||||
};
|
||||
|
||||
findMatch = name:
|
||||
let
|
||||
aptPackages = import aptPackageIndex;
|
||||
matches = lib.filter (x: name == x.Package) aptPackages;
|
||||
aptPackages = builtins.fromJSON (builtins.readFile ./packages.json);
|
||||
matches = lib.filter (x: name == x.pname) aptPackages;
|
||||
n = lib.length matches;
|
||||
match = builtins.traceVerbose (name + " -- ${builtins.toString n}") (builtins.head matches);
|
||||
|
||||
apthost = "https://apt.repos.intel.com/oneapi/";
|
||||
in
|
||||
{
|
||||
url = apthost + match.Filename;
|
||||
sha256 = match.SHA256;
|
||||
url = apthost + match.filename;
|
||||
sha256 = match.sha256;
|
||||
};
|
||||
|
||||
uncompressDebs = debs: name: stdenv.mkDerivation {
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
@@ -144,24 +144,24 @@ let
|
||||
# package set may be broken.
|
||||
components = {
|
||||
"2025" = {
|
||||
ishmem = "1.3";
|
||||
pti = "0.12";
|
||||
tcm = "1.3";
|
||||
umf = "0.10";
|
||||
ishmem = "1.4";
|
||||
pti = "0.13";
|
||||
tcm = "1.4";
|
||||
umf = "0.11";
|
||||
|
||||
ccl = "2021.15";
|
||||
compiler = "2025.1";
|
||||
dal = "2025.5";
|
||||
debugger = "2025.1";
|
||||
dev-utilities = "2025.1";
|
||||
dnnl = "2025.1";
|
||||
dpcpp-ct = "2025.1";
|
||||
dpl = "2022.8";
|
||||
ipp = "2022.1";
|
||||
ippcp = "2025.1";
|
||||
mkl = "2025.1";
|
||||
mpi = "2021.15";
|
||||
tbb = "2022.1";
|
||||
ccl = "2021.16";
|
||||
compiler = "2025.2";
|
||||
dal = "2025.8";
|
||||
debugger = "2025.2";
|
||||
dev-utilities = "2025.2";
|
||||
dnnl = "2025.2";
|
||||
dpcpp-ct = "2025.2";
|
||||
dpl = "2022.9";
|
||||
ipp = "2022.2";
|
||||
ippcp = "2025.2";
|
||||
mkl = "2025.2";
|
||||
mpi = "2021.16";
|
||||
tbb = "2022.2";
|
||||
};
|
||||
"2024" = {
|
||||
tcm = "1.1";
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
{ stdenv
|
||||
, stdenvNoCC
|
||||
{ stdenvNoCC
|
||||
, lib
|
||||
, symlinkJoin
|
||||
, autoPatchelfHook
|
||||
, wrapCCWith
|
||||
, overrideCC
|
||||
, gcc13
|
||||
, gcc13Stdenv
|
||||
, hwloc
|
||||
, libelf
|
||||
, libffi_3_3
|
||||
@@ -34,6 +34,7 @@ let
|
||||
inherit (builtins) attrValues filter mapAttrs removeAttrs;
|
||||
|
||||
gcc = gcc13;
|
||||
stdenv = gcc13Stdenv;
|
||||
|
||||
__components = removeAttrs components ["extraPackages"];
|
||||
_components = __components;
|
||||
@@ -113,6 +114,7 @@ stdenvNoCC.mkDerivation (finalAttrs: {
|
||||
|
||||
autoPatchelfIgnoreMissingDeps = [ "libhwloc.so.5" "libcuda.so.1" "libze_loader.so.1" ];
|
||||
|
||||
# There are broken symlinks that go outside packages, ignore them
|
||||
dontCheckForBrokenSymlinks = true;
|
||||
|
||||
nativeBuildInputs = [ autoPatchelfHook ];
|
||||
|
||||
@@ -11,7 +11,7 @@ def extract_fields: {
|
||||
} ;
|
||||
|
||||
# parses dependencies into a list of [{.pname, .kind, .version}]
|
||||
# some dependencies do not have a version specified, in which case, version = version = null
|
||||
# some dependencies do not have a version specified, in which case, kind = version = null
|
||||
#
|
||||
# example dependencies:
|
||||
# intel-oneapi-common-vars (>= 2023.0.0-25325), intel-oneapi-common-licensing-2023.0.0
|
||||
|
||||
@@ -1,6 +1,11 @@
|
||||
#!/bin/sh
|
||||
|
||||
curl https://apt.repos.intel.com/oneapi/dists/all/main/binary-amd64/Packages -o amd64-packages
|
||||
curl https://apt.repos.intel.com/oneapi/dists/all/main/binary-all/Packages -o all-packages
|
||||
out_64=$(mktemp intel-api.64.XXXXXX)
|
||||
out_all=$(mktemp intel-api.all.XXXXXX)
|
||||
trap 'rm -f "$out_64" "$out_all"' EXIT INT HUP
|
||||
|
||||
cat amd64-packages all-packages | ./toJson.awk | ./process.jq >packages.json
|
||||
curl https://apt.repos.intel.com/oneapi/dists/all/main/binary-amd64/Packages -o "$out_64"
|
||||
curl https://apt.repos.intel.com/oneapi/dists/all/main/binary-all/Packages -o "$out_all"
|
||||
|
||||
# NOTE: we use `jq -r tostring` to minify the json (3.2Mb -> 2.3Mb)
|
||||
cat "$out_64" "$out_all" | ./toJson.awk | ./process.jq | jq -r tostring >packages.json
|
||||
|
||||
@@ -1,36 +1,32 @@
|
||||
{ stdenv
|
||||
, lib
|
||||
, withCFlags
|
||||
, intelPackages
|
||||
, fetchFromGitHub
|
||||
, automake
|
||||
, autoconf
|
||||
, libtool
|
||||
, gnumake
|
||||
, autoreconfHook
|
||||
, boost
|
||||
, adaptivecpp ? null
|
||||
, useIntel ? true
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
autoconf,
|
||||
automake,
|
||||
autoreconfHook,
|
||||
boost,
|
||||
fetchFromGitHub,
|
||||
gnumake,
|
||||
libtool,
|
||||
withCFlags,
|
||||
|
||||
, useGit ? false
|
||||
, gitUrl ? "git@gitlab-internal.bsc.es:task-awareness/tasycl/tasycl.git"
|
||||
, gitBranch ? "main"
|
||||
, gitCommit ? "78f98dcf60a66e0eaa3b4ebcf55be076bec64825"
|
||||
useIntel ? true,
|
||||
adaptivecpp ? null,
|
||||
intelPackages ? null,
|
||||
|
||||
useGit ? false,
|
||||
gitUrl ? "git@gitlab-internal.bsc.es:task-awareness/tasycl/tasycl.git",
|
||||
gitBranch ? "main",
|
||||
gitCommit ? "78f98dcf60a66e0eaa3b4ebcf55be076bec64825",
|
||||
}:
|
||||
|
||||
assert (useIntel || adaptivecpp != null);
|
||||
assert !useIntel -> adaptivecpp != null;
|
||||
assert useIntel -> intelPackages != null;
|
||||
|
||||
let
|
||||
variant = if useIntel then "intel" else "acpp";
|
||||
|
||||
syclStdenv =
|
||||
if useIntel then
|
||||
# If we don't set optimization level, separateDebugInfo sets ggdb and
|
||||
# intel disables all optimizations
|
||||
withCFlags ["-O3"] intelPackages.stdenv
|
||||
else
|
||||
withCFlags [ "-L${adaptivecpp}/lib" "-lacpp-rt" "-I${adaptivecpp}/include" ] stdenv
|
||||
;
|
||||
syclStdenv = withCFlags [ "-O3" ] (if useIntel then intelPackages.stdenv else stdenv);
|
||||
|
||||
release = rec {
|
||||
version = "2.1.0";
|
||||
@@ -53,14 +49,10 @@ let
|
||||
|
||||
source = if (useGit) then git else release;
|
||||
|
||||
isOldRelease = (!useGit && (builtins.compareVersions source.version "2.0.0" <= 0));
|
||||
|
||||
in
|
||||
|
||||
assert !isOldRelease || useIntel; # old releases only work with intel
|
||||
|
||||
syclStdenv.mkDerivation {
|
||||
pname = "tasycl";
|
||||
pname = "tasycl-${variant}";
|
||||
inherit (source) src version;
|
||||
|
||||
enableParallelBuilding = true;
|
||||
@@ -78,8 +70,9 @@ syclStdenv.mkDerivation {
|
||||
boost
|
||||
];
|
||||
|
||||
# only needed for release versions prior or equal to 2.0.0
|
||||
configureFlags = lib.optionals isOldRelease [ "--with-sycl-include=${intelPackages.icx.cc}/include/sycl" ];
|
||||
configureFlags = lib.optionals (!useIntel) [
|
||||
"CXX=${lib.getExe adaptivecpp}"
|
||||
];
|
||||
|
||||
# add symlinks so we can explicitly link with tasycl-intel / tasycl-acpp
|
||||
postInstall = ''
|
||||
|
||||
Reference in New Issue
Block a user