forked from rarias/jungle
Compare commits
41 Commits
45ded6fb98
...
mega-merge
| Author | SHA1 | Date | |
|---|---|---|---|
|
33d85afc11
|
|||
|
3ac19eb970
|
|||
|
0fabb9da19
|
|||
|
cb5b730458
|
|||
|
f6c4e32be2
|
|||
|
0be0ebe359
|
|||
|
bd22d6650d
|
|||
|
556aacb6b8
|
|||
|
9991207323
|
|||
|
54a583dcfa
|
|||
|
1571f53af0
|
|||
|
fc50bf5562
|
|||
|
7bc6fc9b02
|
|||
|
0994be3b93
|
|||
|
1375a068a0
|
|||
|
a329893fbe
|
|||
|
7c833c556e
|
|||
|
9d86074f22
|
|||
|
1dec96e20b
|
|||
|
3a23299835
|
|||
|
663e905444
|
|||
|
ab8d4c4360
|
|||
|
1102f1afd2
|
|||
|
c0dab997a2
|
|||
|
0307b07231
|
|||
|
0aa69ba4f9
|
|||
|
e7622da9df
|
|||
|
4de4b6da1d
|
|||
|
8e30063cdd
|
|||
|
b60b904372
|
|||
|
3d56d438b6
|
|||
|
9ef739bd99
|
|||
|
64b1019978
|
|||
|
03fc97cdbc
|
|||
|
ea67b76018
|
|||
|
5db7c54ce5
|
|||
|
2dddd986b7
|
|||
|
03652a2efa
|
|||
|
658d3ff01f
|
|||
|
817d21d1f2
|
|||
|
4b70f8ad9a
|
22
overlay.nix
22
overlay.nix
@@ -22,6 +22,7 @@ let
|
||||
cudainfo = prev.callPackage ./pkgs/cudainfo/default.nix { };
|
||||
#extrae = callPackage ./pkgs/extrae/default.nix { }; # Broken and outdated
|
||||
gpi-2 = callPackage ./pkgs/gpi-2/default.nix { };
|
||||
gromacs = callPackage ./pkgs/gromacs/default.nix { enableSYCL = true; };
|
||||
intel-apt = callPackage ./pkgs/intel-oneapi/packages.nix { };
|
||||
intelPackages_2023 = callPackage ./pkgs/intel-oneapi/2023.nix { };
|
||||
intelPackages_2024 = final.intel-apt.hpckit_2024;
|
||||
@@ -36,6 +37,7 @@ let
|
||||
linuxPackages_latest = prev.linuxPackages_latest.extend(_final: _prev: {
|
||||
amd-uprof-driver = _prev.callPackage ./pkgs/amd-uprof/driver.nix { };
|
||||
});
|
||||
llvm-intel = callPackage ./pkgs/llvm-intel/default.nix { };
|
||||
lmbench = callPackage ./pkgs/lmbench/default.nix { };
|
||||
# Broken and unmantained
|
||||
# mcxx = callPackage ./pkgs/mcxx/default.nix { };
|
||||
@@ -61,26 +63,38 @@ let
|
||||
paraverKernel = callPackage ./pkgs/paraver/kernel.nix { };
|
||||
pertalde = callPackage ./pkgs/pertalde/default.nix { };
|
||||
pocl = callPackage ./pkgs/pocl/default.nix { };
|
||||
pocl-unpublished = callPackage ./pkgs/pocl/default.nix {
|
||||
gitUrl = "git@github.com:pocl/unpublished.git";
|
||||
gitBranch = "loopvec-next";
|
||||
gitCommit = "74f7e2b5644b1c5598205c8cac1914bb4c5dadec";
|
||||
enableNOSV = false;
|
||||
enableOVNI = false;
|
||||
};
|
||||
pocl-noicd = callPackage ./pkgs/pocl/default.nix { enableICD = false; };
|
||||
prometheus-slurm-exporter = prev.callPackage ./pkgs/slurm-exporter/default.nix { };
|
||||
#pscom = callPackage ./pkgs/parastation/pscom.nix { }; # Unmaintaned
|
||||
#psmpi = callPackage ./pkgs/parastation/psmpi.nix { }; # Unmaintaned
|
||||
rodinia = callPackage ./pkgs/rodinia/default.nix { };
|
||||
slurm = import ./pkgs/slurm/default.nix { slurm = prev.slurm; };
|
||||
sonar = callPackage ./pkgs/sonar/default.nix { };
|
||||
stdenvClangOmpss2 = final.stdenv.override { cc = final.clangOmpss2; allowedRequisites = null; };
|
||||
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 { };
|
||||
tasycl = callPackage ./pkgs/tasycl/default.nix { };
|
||||
tasycl-acpp = callPackage ./pkgs/tasycl/default.nix { useIntel = false; };
|
||||
unified-runtime = callPackage ./pkgs/unified-runtime/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 { };
|
||||
|
||||
gromacs = callPackage ./pkgs/gromacs/default.nix { enableSYCL = true; };
|
||||
_cuda = prev._cuda.extend (_: _prev: final.lib.recursiveUpdate _prev {
|
||||
extensions = _prev.extensions ++ [(finalAttrs: _: {
|
||||
tacuda = finalAttrs.callPackage ./pkgs/tacuda/default.nix { };
|
||||
})];
|
||||
});
|
||||
};
|
||||
|
||||
tests = rec {
|
||||
@@ -91,7 +105,9 @@ let
|
||||
hello-sycl = callPackage ./test/compilers/hello-sycl.nix { };
|
||||
hello-syclompss = callPackage ./test/compilers/icpx-ompss2.nix { };
|
||||
hello-sycl-pocl = (callPackage ./test/compilers/hello-sycl.nix { }).withPocl;
|
||||
hello-sycl-intel = (callPackage ./test/compilers/hello-sycl.nix { }).withIntel;
|
||||
hello-syclompss-pocl = (callPackage ./test/compilers/icpx-ompss2.nix { }).withPocl;
|
||||
hello-syclompss-intel = (callPackage ./test/compilers/icpx-ompss2.nix { }).withIntel;
|
||||
|
||||
lto = callPackage ./test/compilers/lto.nix { };
|
||||
asan = callPackage ./test/compilers/asan.nix { };
|
||||
@@ -133,6 +149,8 @@ let
|
||||
pocl = callPackage ./test/compilers/pocl.nix { };
|
||||
ocl-run-pocl = ocl-build.test-icd;
|
||||
ocl-run-pocl-noicd = ocl-build-noicd.test-noicd;
|
||||
|
||||
sycl-ls = callPackage ./test/compilers/sycl-ls.nix { };
|
||||
};
|
||||
|
||||
# For now, only build toplevel packages in CI/Hydra
|
||||
|
||||
@@ -20,6 +20,7 @@
|
||||
rdma-core,
|
||||
ucx,
|
||||
zlib,
|
||||
writeTextFile,
|
||||
}:
|
||||
|
||||
lib.makeOverridable (
|
||||
@@ -157,13 +158,19 @@ lib.makeOverridable (
|
||||
folder: version:
|
||||
let
|
||||
original = "${finalAttrs.finalPackage}/${folder}/${version}";
|
||||
|
||||
etc-vendors = writeTextFile {
|
||||
name = "intel-ocl-icd";
|
||||
text = "${original}/lib/libintelocl.so";
|
||||
destination = "/etc/OpenCL/vendors/intel.icd";
|
||||
};
|
||||
in
|
||||
(symlinkJoin {
|
||||
symlinkJoin {
|
||||
pname = "intel-${folder}";
|
||||
inherit version;
|
||||
paths = [ original ];
|
||||
}).overrideAttrs
|
||||
{ passthru = { inherit original; }; }
|
||||
paths = [ original ] ++ lib.optionals (folder == "compiler") [ etc-vendors ];
|
||||
passthru = { inherit original; };
|
||||
}
|
||||
) _components;
|
||||
in
|
||||
pkgs
|
||||
@@ -178,7 +185,7 @@ lib.makeOverridable (
|
||||
# NOTE: there are clashes with packages that have symlinks outside their
|
||||
# scope (libtcm and env/vars.sh)
|
||||
all = symlinkJoin {
|
||||
pname = finalAttrs.finalPackage + "-symlinked";
|
||||
pname = finalAttrs.finalPackage.pname + "-symlinked";
|
||||
inherit (finalAttrs.finalPackage) version;
|
||||
paths = filter lib.isDerivation (attrValues finalAttrs.finalPackage.pkgs);
|
||||
};
|
||||
|
||||
200
pkgs/llvm-intel/default.nix
Normal file
200
pkgs/llvm-intel/default.nix
Normal file
@@ -0,0 +1,200 @@
|
||||
{
|
||||
stdenv,
|
||||
lib,
|
||||
ninja,
|
||||
addDriverRunpath,
|
||||
cmake,
|
||||
emhash,
|
||||
fetchFromGitHub,
|
||||
khronos-ocl-icd-loader,
|
||||
libbacktrace,
|
||||
opencl-headers,
|
||||
parallel-hashmap,
|
||||
perl,
|
||||
pkg-config,
|
||||
python3,
|
||||
spirv-headers,
|
||||
spirv-tools,
|
||||
symlinkJoin,
|
||||
zlib,
|
||||
|
||||
cudaPackages,
|
||||
enableCuda ? true,
|
||||
}:
|
||||
|
||||
let
|
||||
version = "6.2.1";
|
||||
src = fetchFromGitHub {
|
||||
owner = "intel";
|
||||
repo = "llvm";
|
||||
tag = "v${version}";
|
||||
sha256 = "sha256-j8+DmGKO0qDF5JjH+DlkLKs1kBz6dS7ukwySd/Crqv0=";
|
||||
};
|
||||
|
||||
pinned = {
|
||||
inherit parallel-hashmap;
|
||||
|
||||
vc-intrinsics.src = fetchFromGitHub {
|
||||
owner = "intel";
|
||||
repo = "vc-intrinsics";
|
||||
rev = "4e51b2467104a257c22788e343dafbdde72e28bb";
|
||||
sha256 = "sha256-AHXeKbih4bzmcuu+tx2TeS7Ixmk54uS1vKFVxI6ZP8g=";
|
||||
};
|
||||
|
||||
unified-memory-framework.src = fetchFromGitHub {
|
||||
owner = "oneapi-src";
|
||||
repo = "unified-memory-framework";
|
||||
tag = "v0.11.0";
|
||||
sha256 = "sha256-k8QdP2u1QOoeCZ6ps4sM8+1iZq/H3q0lqCfVk8mz9KI=";
|
||||
};
|
||||
|
||||
ocl-headers = opencl-headers.overrideAttrs {
|
||||
version = "2024.10.24";
|
||||
src = fetchFromGitHub {
|
||||
owner = "KhronosGroup";
|
||||
repo = "OpenCL-Headers";
|
||||
tag = "v2024.10.24";
|
||||
sha256 = "sha256-KDlruE0IG8d+lAChxYyc6dg5XOvqCMrMyO69sdAzejA=";
|
||||
};
|
||||
};
|
||||
|
||||
ocl-icd = khronos-ocl-icd-loader;
|
||||
|
||||
spirv-headers = spirv-headers.overrideAttrs {
|
||||
version = "1.4.309.0";
|
||||
src = fetchFromGitHub {
|
||||
owner = "KhronosGroup";
|
||||
repo = "SPIRV-Headers";
|
||||
tag = "vulkan-sdk-1.4.309.0";
|
||||
sha256 = "sha256-Q1i6i5XimULuGufP6mimwDW674anAETUiIEvDQwvg5Y=";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
fetchcontent_cmakeFlags = lib.mapAttrsToList (
|
||||
name: value: (lib.cmakeFeature "FETCHCONTENT_SOURCE_DIR_${lib.toUpper name}" (toString value.src))
|
||||
) pinned;
|
||||
|
||||
# Hack to fix #include <emhash/...>
|
||||
emhash' = symlinkJoin {
|
||||
name = "emhash";
|
||||
paths = [ emhash ];
|
||||
postBuild = ''
|
||||
pushd $out/include
|
||||
ln -s . emhash
|
||||
popd
|
||||
'';
|
||||
};
|
||||
|
||||
in
|
||||
stdenv.mkDerivation {
|
||||
pname = "intel-llvm";
|
||||
inherit src version;
|
||||
|
||||
enableParallelBuilding = true;
|
||||
strictDeps = true;
|
||||
|
||||
nativeBuildInputs = [
|
||||
perl
|
||||
cmake
|
||||
ninja
|
||||
pkg-config
|
||||
python3
|
||||
spirv-tools
|
||||
addDriverRunpath
|
||||
]
|
||||
++ lib.optionals enableCuda [
|
||||
cudaPackages.cuda_nvcc
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
emhash'
|
||||
libbacktrace
|
||||
zlib
|
||||
|
||||
pinned.ocl-icd
|
||||
pinned.ocl-headers
|
||||
pinned.spirv-headers
|
||||
]
|
||||
++ lib.optionals enableCuda [
|
||||
cudaPackages.cudatoolkit
|
||||
];
|
||||
|
||||
patches = [ ./fix-ur.patch ]; # Has been fixed in next release
|
||||
|
||||
preBuild = ''
|
||||
chmod -R u+w /build/source
|
||||
'';
|
||||
|
||||
cmakeDir = "../llvm";
|
||||
|
||||
cmakeFlags =
|
||||
let
|
||||
cmakeList = name: l: lib.cmakeOptionType "list" name (builtins.concatStringsSep ";" l);
|
||||
|
||||
LLVM_EXTERNAL_PROJECTS = [
|
||||
"sycl"
|
||||
"llvm-spirv"
|
||||
"opencl"
|
||||
"xpti"
|
||||
"xptifw"
|
||||
"compiler-rt"
|
||||
"sycl-jit"
|
||||
]
|
||||
++ lib.optionals enableCuda [
|
||||
"libclc"
|
||||
];
|
||||
in
|
||||
[
|
||||
(lib.cmakeBool "LLVM_ENABLE_ASSERTIONS" true)
|
||||
|
||||
(cmakeList "LLVM_TARGETS_TO_BUILD" (
|
||||
[
|
||||
"host"
|
||||
"SPIRV"
|
||||
]
|
||||
++ lib.optionals enableCuda [ "NVPTX" ]
|
||||
))
|
||||
(cmakeList "LLVM_EXTERNAL_PROJECTS" LLVM_EXTERNAL_PROJECTS)
|
||||
(cmakeList "LLVM_ENABLE_PROJECTS" ([ "clang" ] ++ LLVM_EXTERNAL_PROJECTS))
|
||||
|
||||
(lib.cmakeBool "UR_USE_EXTERNAL_UMF" false)
|
||||
(lib.cmakeOptionType "path" "UR_OPENCL_INCLUDE_DIR" (toString pinned.ocl-headers))
|
||||
(lib.cmakeOptionType "path" "UR_OPENCL_ICD_LOADER_LIBRARY" (toString pinned.ocl-icd))
|
||||
(lib.cmakeFeature "UR_OPENCL_ICD_LOADER_LIBRARY" (toString pinned.ocl-icd))
|
||||
|
||||
(lib.cmakeBool "BUILD_SHARED_LIBS" false)
|
||||
(lib.cmakeBool "LLVM_BUILD_TOOLS" true)
|
||||
(lib.cmakeBool "LLVM_ENABLE_ZSTD" true)
|
||||
(lib.cmakeBool "LLVM_USE_STATIC_ZSTD" true)
|
||||
(lib.cmakeBool "LLVM_ENABLE_DOXYGEN" false)
|
||||
(lib.cmakeBool "LLVM_ENABLE_LLD" false)
|
||||
(lib.cmakeBool "LLVM_ENABLE_SPHINX" false)
|
||||
(lib.cmakeBool "LLVM_SPIRV_ENABLE_LIBSPIRV_DIS" false)
|
||||
(lib.cmakeBool "SYCL_ENABLE_WERROR" false)
|
||||
(lib.cmakeBool "SYCL_INCLUDE_TESTS" false)
|
||||
(lib.cmakeBool "SYCL_ENABLE_EXTENSION_JIT" true)
|
||||
(lib.cmakeBool "SYCL_ENABLE_MAJOR_RELEASE_PREVIEW_LIB" false)
|
||||
(lib.cmakeBool "SYCL_ENABLE_XPTI_TRACING" true)
|
||||
(lib.cmakeBool "XPTI_ENABLE_WERROR" false)
|
||||
|
||||
(cmakeList "SYCL_ENABLE_BACKENDS" ([ "opencl" ] ++ lib.optionals enableCuda [ "cuda" ]))
|
||||
]
|
||||
++ fetchcontent_cmakeFlags
|
||||
++ lib.optionals enableCuda [
|
||||
(lib.cmakeOptionType "list" "LIBCLC_TARGETS_TO_BUILD" "nvptx64--nvidiacl")
|
||||
(lib.cmakeBool "LIBCLC_GENERATE_REMANGLED_VARIANTS" true)
|
||||
(lib.cmakeBool "LIBCLC_NATIVECPU_HOST_TARGET" false)
|
||||
];
|
||||
|
||||
meta = {
|
||||
homepage = "https://github.com/intel/llvm";
|
||||
description = "Intel staging area for llvm.org contribution";
|
||||
maintainers = with lib.maintainers.bsc; [ abonerib ];
|
||||
platforms = lib.platforms.linux;
|
||||
license = [
|
||||
lib.licenses.asl20
|
||||
lib.licenses.llvm-exception
|
||||
];
|
||||
};
|
||||
}
|
||||
23
pkgs/llvm-intel/fix-ur.patch
Normal file
23
pkgs/llvm-intel/fix-ur.patch
Normal file
@@ -0,0 +1,23 @@
|
||||
diff --git a/unified-runtime/source/adapters/cuda/CMakeLists.txt b/unified-runtime/source/adapters/cuda/CMakeLists.txt
|
||||
index a8401c71a..2ab363926 100644
|
||||
--- a/unified-runtime/source/adapters/cuda/CMakeLists.txt
|
||||
+++ b/unified-runtime/source/adapters/cuda/CMakeLists.txt
|
||||
@@ -62,14 +62,14 @@ add_library(cudadrv SHARED IMPORTED GLOBAL)
|
||||
if (WIN32)
|
||||
set_target_properties(
|
||||
cudadrv PROPERTIES
|
||||
- IMPORTED_IMPLIB ${CUDA_cuda_driver_LIBRARY}
|
||||
- INTERFACE_INCLUDE_DIRECTORIES ${CUDAToolkit_INCLUDE_DIRS}
|
||||
+ IMPORTED_IMPLIB "${CUDA_cuda_driver_LIBRARY}"
|
||||
+ INTERFACE_INCLUDE_DIRECTORIES "${CUDAToolkit_INCLUDE_DIRS}"
|
||||
)
|
||||
else()
|
||||
set_target_properties(
|
||||
cudadrv PROPERTIES
|
||||
- IMPORTED_LOCATION ${CUDA_cuda_driver_LIBRARY}
|
||||
- INTERFACE_INCLUDE_DIRECTORIES ${CUDAToolkit_INCLUDE_DIRS}
|
||||
+ IMPORTED_LOCATION "${CUDA_cuda_driver_LIBRARY}"
|
||||
+ INTERFACE_INCLUDE_DIRECTORIES "${CUDAToolkit_INCLUDE_DIRS}"
|
||||
)
|
||||
endif()
|
||||
|
||||
@@ -1,67 +0,0 @@
|
||||
diff --git a/m4/papi.m4 b/m4/papi.m4
|
||||
--- a/m4/papi.m4
|
||||
+++ b/m4/papi.m4
|
||||
@@ -24,12 +24,13 @@ AC_DEFUN([AC_CHECK_PAPI],
|
||||
else
|
||||
PKG_CHECK_MODULES(
|
||||
[papi],
|
||||
- [papi],
|
||||
+ [papi >= 5.6.0],
|
||||
[
|
||||
AC_MSG_CHECKING([the PAPI installation prefix])
|
||||
AC_MSG_RESULT([retrieved from pkg-config])
|
||||
papi_CPPFLAGS="${papi_CFLAGS}"
|
||||
ac_use_papi=yes
|
||||
+ ac_papi_version_correct=yes
|
||||
], [
|
||||
AC_MSG_CHECKING([the PAPI installation prefix])
|
||||
AC_MSG_RESULT([not available])
|
||||
@@ -67,27 +68,29 @@ AC_DEFUN([AC_CHECK_PAPI],
|
||||
fi
|
||||
|
||||
if test x"${ac_use_papi}" = x"yes" ; then
|
||||
- if test x"${ac_cv_use_papi_prefix}" != x"" ; then
|
||||
- papiBinary=${ac_cv_use_papi_prefix}/bin/papi_version
|
||||
- else
|
||||
- papiBinary=papi_version
|
||||
- fi
|
||||
- papiVersion=`$papiBinary | sed 's/[[^0-9.]]*\([[0-9.]]*\).*/\1/'`
|
||||
+ if test x"${ac_papi_version_correct}" != x"yes" ; then
|
||||
+ if test x"${ac_cv_use_papi_prefix}" != x"" ; then
|
||||
+ papiBinary=${ac_cv_use_papi_prefix}/bin/papi_version
|
||||
+ else
|
||||
+ papiBinary=papi_version
|
||||
+ fi
|
||||
+ papiVersion=`$papiBinary | sed 's/[[^0-9.]]*\([[0-9.]]*\).*/\1/'`
|
||||
|
||||
- AX_COMPARE_VERSION(
|
||||
- [[${papiVersion}]],
|
||||
- [[ge]],
|
||||
- [[5.6.0]],
|
||||
- [[ac_papi_version_correct=yes]],
|
||||
- [[ac_papi_version_correct=no]]
|
||||
- )
|
||||
+ AX_COMPARE_VERSION(
|
||||
+ [[${papiVersion}]],
|
||||
+ [[ge]],
|
||||
+ [[5.6.0]],
|
||||
+ [[ac_papi_version_correct=yes]],
|
||||
+ [[ac_papi_version_correct=no]]
|
||||
+ )
|
||||
|
||||
- if test x"${ac_papi_version_correct}" != x"yes" ; then
|
||||
- AC_MSG_ERROR([PAPI version must be >= 5.6.0.])
|
||||
- ac_use_papi=no
|
||||
- else
|
||||
- AC_MSG_CHECKING([if the PAPI version >= 5.6.0.])
|
||||
- AC_MSG_RESULT([${ac_papi_version_correct}])
|
||||
+ if test x"${ac_papi_version_correct}" != x"yes" ; then
|
||||
+ AC_MSG_ERROR([PAPI version must be >= 5.6.0.])
|
||||
+ ac_use_papi=no
|
||||
+ else
|
||||
+ AC_MSG_CHECKING([if the PAPI version >= 5.6.0.])
|
||||
+ AC_MSG_RESULT([${ac_papi_version_correct}])
|
||||
+ fi
|
||||
fi
|
||||
fi
|
||||
|
||||
@@ -80,7 +80,8 @@ in
|
||||
(optional enableGlibcxxDebug "CXXFLAGS=-D_GLIBCXX_DEBUG") ++
|
||||
# Most nanos6 api symbols are resolved at runtime, so prefer
|
||||
# ifunc by default
|
||||
(optional isCross "--with-symbol-resolution=ifunc");
|
||||
(optional isCross "--with-symbol-resolution=ifunc") ++
|
||||
(optional enablePapi "--with-papi=${papi}");
|
||||
|
||||
postConfigure = lib.optionalString (!enableDebug) ''
|
||||
# Disable debug
|
||||
@@ -96,7 +97,6 @@ in
|
||||
separateDebugInfo = true;
|
||||
|
||||
strictDeps = true;
|
||||
patches = [ ./check-papi-version-with-pkgconfig.patch ];
|
||||
|
||||
nativeBuildInputs = [
|
||||
autoconf
|
||||
|
||||
@@ -1,68 +0,0 @@
|
||||
diff --git a/m4/papi.m4 b/m4/papi.m4
|
||||
index de905848..fa3db9a1 100644
|
||||
--- a/m4/papi.m4
|
||||
+++ b/m4/papi.m4
|
||||
@@ -24,12 +24,13 @@ AC_DEFUN([AC_CHECK_PAPI],
|
||||
else
|
||||
PKG_CHECK_MODULES(
|
||||
[papi],
|
||||
- [papi],
|
||||
+ [papi >= 5.6.0],
|
||||
[
|
||||
AC_MSG_CHECKING([the PAPI installation prefix])
|
||||
AC_MSG_RESULT([retrieved from pkg-config])
|
||||
papi_CFLAGS="${papi_CFLAGS}"
|
||||
ac_use_papi=yes
|
||||
+ ac_papi_version_correct=yes
|
||||
], [
|
||||
AC_MSG_CHECKING([the PAPI installation prefix])
|
||||
AC_MSG_RESULT([not available])
|
||||
@@ -67,27 +68,29 @@ AC_DEFUN([AC_CHECK_PAPI],
|
||||
fi
|
||||
|
||||
if test x"${ac_use_papi}" = x"yes" ; then
|
||||
- if test x"${ac_cv_use_papi_prefix}" != x"" ; then
|
||||
- papiBinary=${ac_cv_use_papi_prefix}/bin/papi_version
|
||||
- else
|
||||
- papiBinary=papi_version
|
||||
- fi
|
||||
- papiVersion=`$papiBinary | sed 's/[[^0-9.]]*\([[0-9.]]*\).*/\1/'`
|
||||
+ if test x"${ac_papi_version_correct}" != x"yes" ; then
|
||||
+ if test x"${ac_cv_use_papi_prefix}" != x"" ; then
|
||||
+ papiBinary=${ac_cv_use_papi_prefix}/bin/papi_version
|
||||
+ else
|
||||
+ papiBinary=papi_version
|
||||
+ fi
|
||||
+ papiVersion=`$papiBinary | sed 's/[[^0-9.]]*\([[0-9.]]*\).*/\1/'`
|
||||
|
||||
- AX_COMPARE_VERSION(
|
||||
- [[${papiVersion}]],
|
||||
- [[ge]],
|
||||
- [[5.6.0]],
|
||||
- [[ac_papi_version_correct=yes]],
|
||||
- [[ac_papi_version_correct=no]]
|
||||
- )
|
||||
+ AX_COMPARE_VERSION(
|
||||
+ [[${papiVersion}]],
|
||||
+ [[ge]],
|
||||
+ [[5.6.0]],
|
||||
+ [[ac_papi_version_correct=yes]],
|
||||
+ [[ac_papi_version_correct=no]]
|
||||
+ )
|
||||
|
||||
- if test x"${ac_papi_version_correct}" != x"yes" ; then
|
||||
- AC_MSG_ERROR([PAPI version must be >= 5.6.0.])
|
||||
- ac_use_papi=no
|
||||
- else
|
||||
- AC_MSG_CHECKING([if the PAPI version >= 5.6.0.])
|
||||
- AC_MSG_RESULT([${ac_papi_version_correct}])
|
||||
+ if test x"${ac_papi_version_correct}" != x"yes" ; then
|
||||
+ AC_MSG_ERROR([PAPI version must be >= 5.6.0.])
|
||||
+ ac_use_papi=no
|
||||
+ else
|
||||
+ AC_MSG_CHECKING([if the PAPI version >= 5.6.0.])
|
||||
+ AC_MSG_RESULT([${ac_papi_version_correct}])
|
||||
+ fi
|
||||
fi
|
||||
fi
|
||||
|
||||
@@ -47,11 +47,10 @@ in
|
||||
dontStrip = true;
|
||||
separateDebugInfo = true;
|
||||
strictDeps = true;
|
||||
patches = [ ./check-papi-version-with-pkgconfig.patch ];
|
||||
configureFlags = [
|
||||
"--with-ovni=${ovni}"
|
||||
"CACHELINE_WIDTH=${toString cacheline}"
|
||||
];
|
||||
] ++ lib.optionals enablePapi [ "--with-papi=${papi}" ];
|
||||
nativeBuildInputs = [
|
||||
autoreconfHook
|
||||
pkg-config
|
||||
@@ -61,6 +60,7 @@ in
|
||||
hwloc
|
||||
ovni
|
||||
] ++ lib.optionals enablePapi [ papi ];
|
||||
patches = [ ./fix-papi.patch ];
|
||||
|
||||
meta = {
|
||||
homepage = "https://gitlab.bsc.es/nos-v/nos-v";
|
||||
|
||||
136
pkgs/nosv/fix-papi.patch
Normal file
136
pkgs/nosv/fix-papi.patch
Normal file
@@ -0,0 +1,136 @@
|
||||
Commit ID: c09633f172ce4075e0a05a33f6dcbe8e03e1202a
|
||||
Change ID: onmwypnnrysktutwsvotqovzponvwrxs
|
||||
Bookmarks: fix/papi fix/papi@git fix/papi@origin
|
||||
Author : Aleix Boné <aleix.boneribo@bsc.es> (2025-12-10 11:14:14)
|
||||
Committer: Aleix Boné <aleix.boneribo@bsc.es> (2025-12-12 12:56:48)
|
||||
|
||||
Improve PAPI m4 module for cross compilation
|
||||
|
||||
diff --git a/m4/papi.m4 b/m4/papi.m4
|
||||
index de90584870..8398f856f5 100644
|
||||
--- a/m4/papi.m4
|
||||
+++ b/m4/papi.m4
|
||||
@@ -1,6 +1,6 @@
|
||||
# This file is part of Nanos6 and is licensed under the terms contained in the COPYING file.
|
||||
#
|
||||
-# Copyright (C) 2021-2022 Barcelona Supercomputing Center (BSC)
|
||||
+# Copyright (C) 2021-2025 Barcelona Supercomputing Center (BSC)
|
||||
|
||||
AC_DEFUN([AC_CHECK_PAPI],
|
||||
[
|
||||
@@ -8,34 +8,38 @@
|
||||
[papi],
|
||||
[AS_HELP_STRING([--with-papi=prefix], [specify the installation prefix of PAPI])],
|
||||
[ ac_cv_use_papi_prefix=$withval ],
|
||||
- [ ac_cv_use_papi_prefix="" ]
|
||||
+ [ ac_cv_use_papi_prefix="check" ]
|
||||
)
|
||||
|
||||
if test x"${ac_cv_use_papi_prefix}" = x"no"; then
|
||||
AC_MSG_CHECKING([the PAPI installation prefix])
|
||||
AC_MSG_RESULT([${ac_cv_use_papi_prefix}])
|
||||
ac_use_papi=no
|
||||
- elif test x"${ac_cv_use_papi_prefix}" != x"" ; then
|
||||
- AC_MSG_CHECKING([the PAPI installation prefix])
|
||||
- AC_MSG_RESULT([${ac_cv_use_papi_prefix}])
|
||||
- papi_LIBS="-L${ac_cv_use_papi_prefix}/lib -lpapi -Wl,-rpath,${ac_cv_use_papi_prefix}/lib"
|
||||
- papi_CFLAGS="-I$ac_cv_use_papi_prefix/include"
|
||||
- ac_use_papi=yes
|
||||
- else
|
||||
+ elif test x"${ac_cv_use_papi_prefix}" = x""; then
|
||||
+ AC_MSG_RESULT([invalid prefix])
|
||||
+ AC_MSG_ERROR([papi prefix specified but empty])
|
||||
+ elif test x"${ac_cv_use_papi_prefix}" = x"yes" -o x"${ac_cv_use_papi_prefix}" = x"check"; then
|
||||
PKG_CHECK_MODULES(
|
||||
[papi],
|
||||
- [papi],
|
||||
+ [papi >= 5.6.0],
|
||||
[
|
||||
AC_MSG_CHECKING([the PAPI installation prefix])
|
||||
AC_MSG_RESULT([retrieved from pkg-config])
|
||||
papi_CFLAGS="${papi_CFLAGS}"
|
||||
ac_use_papi=yes
|
||||
+ ac_papi_version_correct=yes
|
||||
], [
|
||||
AC_MSG_CHECKING([the PAPI installation prefix])
|
||||
AC_MSG_RESULT([not available])
|
||||
ac_use_papi=no
|
||||
]
|
||||
)
|
||||
+ else
|
||||
+ AC_MSG_CHECKING([the PAPI installation prefix])
|
||||
+ AC_MSG_RESULT([${ac_cv_use_papi_prefix}])
|
||||
+ papi_LIBS="-L${ac_cv_use_papi_prefix}/lib -lpapi -Wl,-rpath,${ac_cv_use_papi_prefix}/lib"
|
||||
+ papi_CFLAGS="-I$ac_cv_use_papi_prefix/include"
|
||||
+ ac_use_papi=yes
|
||||
fi
|
||||
|
||||
if test x"${ac_use_papi}" = x"yes" ; then
|
||||
@@ -53,10 +57,10 @@
|
||||
ac_use_papi=yes
|
||||
],
|
||||
[
|
||||
- if test x"${ac_cv_use_papi_prefix}" != x"" ; then
|
||||
- AC_MSG_ERROR([PAPI cannot be found.])
|
||||
+ if test x"${ac_cv_use_papi_prefix}" = x"yes" ; then
|
||||
+ AC_MSG_ERROR([PAPI >= 5.6.0 cannot be found.])
|
||||
else
|
||||
- AC_MSG_WARN([PAPI cannot be found.])
|
||||
+ AC_MSG_WARN([PAPI >= 5.6.0 not available.])
|
||||
fi
|
||||
ac_use_papi=no
|
||||
]
|
||||
@@ -64,30 +68,38 @@
|
||||
|
||||
CFLAGS="${ac_save_CFLAGS}"
|
||||
LIBS="${ac_save_LIBS}"
|
||||
+ elif test x"${ac_cv_use_papi_prefix}" = x"yes" ; then
|
||||
+ AC_MSG_ERROR([PAPI >= 5.6.0 cannot be found.])
|
||||
fi
|
||||
|
||||
- if test x"${ac_use_papi}" = x"yes" ; then
|
||||
- if test x"${ac_cv_use_papi_prefix}" != x"" ; then
|
||||
+ if test x"${ac_use_papi}" = x"yes" -a x"${ac_papi_version_correct}" != x"yes" ; then
|
||||
+ if test x"${ac_cv_use_papi_prefix}" != x"yes" -a x"${ac_cv_use_papi_prefix}" != x"check" ; then
|
||||
papiBinary=${ac_cv_use_papi_prefix}/bin/papi_version
|
||||
else
|
||||
papiBinary=papi_version
|
||||
fi
|
||||
- papiVersion=`$papiBinary | sed 's/[[^0-9.]]*\([[0-9.]]*\).*/\1/'`
|
||||
|
||||
- AX_COMPARE_VERSION(
|
||||
- [[${papiVersion}]],
|
||||
- [[ge]],
|
||||
- [[5.6.0]],
|
||||
- [[ac_papi_version_correct=yes]],
|
||||
- [[ac_papi_version_correct=no]]
|
||||
- )
|
||||
|
||||
- if test x"${ac_papi_version_correct}" != x"yes" ; then
|
||||
- AC_MSG_ERROR([PAPI version must be >= 5.6.0.])
|
||||
- ac_use_papi=no
|
||||
+ if test x"$cross_compiling" = x"yes" ; then
|
||||
+ AC_MSG_WARN([Cross-compiling detected, skipping PAPI version check])
|
||||
else
|
||||
- AC_MSG_CHECKING([if the PAPI version >= 5.6.0.])
|
||||
- AC_MSG_RESULT([${ac_papi_version_correct}])
|
||||
+ papiVersion=`$papiBinary | sed 's/[[^0-9.]]*\([[0-9.]]*\).*/\1/'`
|
||||
+
|
||||
+ AX_COMPARE_VERSION(
|
||||
+ [[${papiVersion}]],
|
||||
+ [[ge]],
|
||||
+ [[5.6.0]],
|
||||
+ [[ac_papi_version_correct=yes]],
|
||||
+ [[ac_papi_version_correct=no]]
|
||||
+ )
|
||||
+
|
||||
+ if test x"${ac_papi_version_correct}" != x"yes" ; then
|
||||
+ AC_MSG_ERROR([PAPI version must be >= 5.6.0.])
|
||||
+ ac_use_papi=no
|
||||
+ else
|
||||
+ AC_MSG_CHECKING([if the PAPI version >= 5.6.0.])
|
||||
+ AC_MSG_RESULT([${ac_papi_version_correct}])
|
||||
+ fi
|
||||
fi
|
||||
fi
|
||||
|
||||
@@ -14,6 +14,8 @@
|
||||
python3,
|
||||
writableTmpDirAsHomeHook,
|
||||
writeText,
|
||||
runCommand,
|
||||
opencl-cts,
|
||||
|
||||
fetchFromGitHub,
|
||||
|
||||
@@ -201,12 +203,38 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
''
|
||||
);
|
||||
|
||||
passthru = {
|
||||
updateScript = nix-update-script { };
|
||||
git = finalAttrs.finalPackage.override { useGit = true; };
|
||||
test = finalAttrs.finalPackage.overrideAttrs { doCheck = true; };
|
||||
withICD = enableICD;
|
||||
};
|
||||
passthru =
|
||||
let
|
||||
self = finalAttrs.finalPackage;
|
||||
in
|
||||
{
|
||||
updateScript = nix-update-script { };
|
||||
git = self.override { useGit = true; };
|
||||
|
||||
withICD = enableICD;
|
||||
|
||||
test = {
|
||||
# Run builtin tests (causes a rebuild)
|
||||
self = self.overrideAttrs { doCheck = true; };
|
||||
|
||||
# Run basic test from Khronos OpenCL Conformance Test Suite
|
||||
# WARN: despite its name, test_basic is very exhaustive, and can take more
|
||||
# than 1 hour in a marenostrum5 node.
|
||||
cts =
|
||||
assert enableICD;
|
||||
lib.genAttrs [ "api" "basic" "c11_atomics" "printf" "svm" ] (
|
||||
name:
|
||||
runCommand "pocl-cts-test_${name}" {
|
||||
nativeBuildInputs = [ self ];
|
||||
requiredSystemFeatures = [ "sys-devices" ];
|
||||
env = {
|
||||
POCL_DEBUG = "error,warn";
|
||||
POCL_CACHE_DIR = "/build/pocl_cache";
|
||||
};
|
||||
} "${opencl-cts}/bin/Release/test_${name} | tee $out"
|
||||
);
|
||||
};
|
||||
};
|
||||
|
||||
env.HWLOC_SYNTHETIC = lib.optionalDrvAttr enableHWLOC "node:1 core:1 pu:1";
|
||||
|
||||
|
||||
58
pkgs/rodinia/default.nix
Normal file
58
pkgs/rodinia/default.nix
Normal file
@@ -0,0 +1,58 @@
|
||||
{
|
||||
stdenv,
|
||||
lib,
|
||||
fetchurl,
|
||||
ocl-icd,
|
||||
opencl-headers,
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
pname = "rodinia-opencl";
|
||||
version = "3.1";
|
||||
src = fetchurl {
|
||||
url = "http://www.cs.virginia.edu/~skadron/lava/Rodinia/Packages/rodinia_3.1.tar.bz2";
|
||||
hash = "sha256-+uusfBHtj4/Pa/LX6FwwhvwtEfciBNbfwo3FsujyrP0=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
./rodinia-fixes.patch
|
||||
./rodinia-rm.patch
|
||||
];
|
||||
buildInputs = [
|
||||
opencl-headers
|
||||
ocl-icd
|
||||
];
|
||||
buildFlags = [
|
||||
"OPENCL"
|
||||
"--always-make"
|
||||
];
|
||||
|
||||
preBuild = ''
|
||||
mkdir -p bin/linux/{cuda,omp,opencl}
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
mkdir -p $out/share
|
||||
cp -r bin data opencl $out
|
||||
cp LICENSE README $out/share
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
meta = {
|
||||
homepage = "https://rodinia.cs.virginia.edu/";
|
||||
description = "Test Suite of Compute-Intensive Applications with Accelerators";
|
||||
maintainers = with lib.maintainers.bsc; [ abonerib ];
|
||||
platforms = lib.platforms.linux;
|
||||
license = {
|
||||
deprecated = false;
|
||||
free = false;
|
||||
fullName = "Rodinia License";
|
||||
redistributable = true;
|
||||
shortName = "rodinia";
|
||||
url = "https://www.cs.virginia.edu/~skadron/lava/rodinia/license.htm";
|
||||
};
|
||||
};
|
||||
}
|
||||
1540
pkgs/rodinia/rodinia-fixes.patch
Normal file
1540
pkgs/rodinia/rodinia-fixes.patch
Normal file
File diff suppressed because it is too large
Load Diff
1880
pkgs/rodinia/rodinia-rm.patch
Normal file
1880
pkgs/rodinia/rodinia-rm.patch
Normal file
File diff suppressed because it is too large
Load Diff
@@ -1,5 +1,5 @@
|
||||
{
|
||||
stdenv,
|
||||
backendStdenv,
|
||||
fetchFromGitHub,
|
||||
automake,
|
||||
autoconf,
|
||||
@@ -7,7 +7,9 @@
|
||||
gnumake,
|
||||
autoreconfHook,
|
||||
boost,
|
||||
cudaPackages,
|
||||
cudatoolkit,
|
||||
libcublas,
|
||||
cuda_cudart,
|
||||
|
||||
useGit ? false,
|
||||
gitUrl ? "git@gitlab-internal.bsc.es:task-awareness/tacuda/tacuda.git",
|
||||
@@ -41,12 +43,13 @@ let
|
||||
|
||||
in
|
||||
|
||||
stdenv.mkDerivation {
|
||||
backendStdenv.mkDerivation {
|
||||
pname = "tacuda";
|
||||
inherit (source) src version;
|
||||
|
||||
enableParallelBuilding = true;
|
||||
separateDebugInfo = true;
|
||||
strictDeps = true;
|
||||
|
||||
nativeBuildInputs = [
|
||||
autoreconfHook
|
||||
@@ -58,12 +61,12 @@ stdenv.mkDerivation {
|
||||
|
||||
patches = [ ./fix_config.patch ];
|
||||
|
||||
configureFlags = [ "--with-cuda-include=${cudaPackages.cudatoolkit}/include" ];
|
||||
configureFlags = [ "--with-cuda-include=${cudatoolkit}/include" ];
|
||||
|
||||
buildInputs = [
|
||||
boost
|
||||
cudaPackages.libcublas
|
||||
cudaPackages.cuda_cudart
|
||||
libcublas
|
||||
cuda_cudart
|
||||
];
|
||||
|
||||
}
|
||||
|
||||
@@ -6,7 +6,6 @@
|
||||
gnumake,
|
||||
boost,
|
||||
mpi,
|
||||
gcc,
|
||||
autoreconfHook,
|
||||
ocl-icd,
|
||||
opencl-headers,
|
||||
@@ -24,21 +23,24 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
|
||||
enableParallelBuilding = true;
|
||||
separateDebugInfo = true;
|
||||
strictDeps = true;
|
||||
|
||||
configureFlags = [
|
||||
"--with-opencl-lib=${ocl-icd}/lib"
|
||||
"--with-opencl-include=${opencl-headers}/include"
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
nativeBuildInputs = [
|
||||
autoreconfHook
|
||||
automake
|
||||
autoconf
|
||||
libtool
|
||||
gnumake
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
boost
|
||||
mpi
|
||||
gcc
|
||||
];
|
||||
|
||||
dontDisableStatic = true;
|
||||
|
||||
63
pkgs/unified-runtime/default.nix
Normal file
63
pkgs/unified-runtime/default.nix
Normal file
@@ -0,0 +1,63 @@
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
fetchFromGitHub,
|
||||
cmake,
|
||||
python3,
|
||||
cudatoolkit,
|
||||
libbacktrace,
|
||||
intel-compute-runtime,
|
||||
level-zero,
|
||||
unified-memory-framework,
|
||||
autoAddDriverRunpath,
|
||||
|
||||
enableL0 ? false,
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "unified-runtime";
|
||||
version = "2025-WW45";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "intel";
|
||||
repo = "llvm";
|
||||
tag = version;
|
||||
sha256 = "sha256-yf8pFEeNEWf9LpEhAy4vMdFDlA08x5XaCegnq+5aXRw=";
|
||||
};
|
||||
|
||||
sourceRoot = "${src.name}/unified-runtime";
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
python3
|
||||
libbacktrace
|
||||
(python3.withPackages (
|
||||
python-pkgs: with python-pkgs; [
|
||||
lit
|
||||
filecheck
|
||||
]
|
||||
))
|
||||
autoAddDriverRunpath
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
unified-memory-framework
|
||||
cudatoolkit
|
||||
]
|
||||
++ lib.optionals enableL0 [
|
||||
intel-compute-runtime
|
||||
level-zero
|
||||
];
|
||||
|
||||
cmakeFlags = [
|
||||
(lib.cmakeBool "UR_USE_EXTERNAL_UMF" true)
|
||||
(lib.cmakeBool "UR_BUILD_TESTS" false)
|
||||
|
||||
(lib.cmakeBool "UR_BUILD_ADAPTER_CUDA" true)
|
||||
(lib.cmakeBool "UR_BUILD_ADAPTER_L0" enableL0)
|
||||
|
||||
(lib.cmakeBool "UR_BUILD_ADAPTER_OPENCL" false)
|
||||
(lib.cmakeBool "UR_BUILD_ADAPTER_HIP" false)
|
||||
(lib.cmakeBool "UR_BUILD_ADAPTER_NATIVE_CPU" false)
|
||||
];
|
||||
}
|
||||
@@ -31,7 +31,7 @@ let
|
||||
return 0;
|
||||
} catch (sycl::exception &e) {
|
||||
std::cout << "SYCL exception: " << e.what() << std::endl;
|
||||
return 0; // we excpect to fail since no devices should be available;
|
||||
return 0; // we expect to fail since no devices should be available;
|
||||
}
|
||||
'';
|
||||
in
|
||||
@@ -61,19 +61,31 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
cp test-output $out
|
||||
'';
|
||||
|
||||
passthru.withPocl = finalAttrs.finalPackage.overrideAttrs (old: {
|
||||
nativeBuildInputs = old.nativeBuildInputs ++ [ pocl ];
|
||||
env = (old.env or { }) // {
|
||||
POCL_DEBUG = "error,warn";
|
||||
POCL_CACHE_DIR = "/build/pocl_cache";
|
||||
passthru = {
|
||||
withPocl = finalAttrs.finalPackage.overrideAttrs (old: {
|
||||
nativeBuildInputs = old.nativeBuildInputs ++ [ pocl ];
|
||||
env = (old.env or { }) // {
|
||||
POCL_DEBUG = "error,warn";
|
||||
POCL_CACHE_DIR = "/build/pocl_cache";
|
||||
|
||||
# Make PoCL report Intel vendor id so oneapi SYCL works
|
||||
POCL_DRIVER_VERSION_OVERRIDE = "2024.18.6.0.02_160000";
|
||||
POCL_CPU_VENDOR_ID_OVERRIDE = 32902;
|
||||
};
|
||||
doInstallCheck = true;
|
||||
installCheckPhase = ''
|
||||
grep "Hello World! (on device)" $out
|
||||
'';
|
||||
});
|
||||
# Make PoCL report Intel vendor id so oneapi SYCL works
|
||||
POCL_DRIVER_VERSION_OVERRIDE = "2024.18.6.0.02_160000";
|
||||
POCL_CPU_VENDOR_ID_OVERRIDE = 32902;
|
||||
};
|
||||
doInstallCheck = true;
|
||||
installCheckPhase = ''
|
||||
grep "Hello World! (on device)" $out
|
||||
'';
|
||||
});
|
||||
withIntel = finalAttrs.finalPackage.overrideAttrs (old: {
|
||||
env = (old.env or { }) // {
|
||||
OCL_ICD_VENDORS = intelPackages.compiler + "/etc/OpenCL/vendors";
|
||||
};
|
||||
doInstallCheck = true;
|
||||
installCheckPhase = ''
|
||||
grep "Hello World! (on device)" $out
|
||||
'';
|
||||
|
||||
});
|
||||
};
|
||||
})
|
||||
|
||||
@@ -49,21 +49,33 @@ intelPackages.stdenv.mkDerivation (finalAttrs: {
|
||||
nosv
|
||||
];
|
||||
|
||||
passthru.withPocl = finalAttrs.finalPackage.overrideAttrs (old: {
|
||||
nativeBuildInputs = old.nativeBuildInputs ++ [ pocl ];
|
||||
env = (old.env or { }) // {
|
||||
POCL_DEBUG = "error,warn";
|
||||
POCL_CACHE_DIR = "/build/pocl_cache";
|
||||
passthru = {
|
||||
withPocl = finalAttrs.finalPackage.overrideAttrs (old: {
|
||||
nativeBuildInputs = old.nativeBuildInputs ++ [ pocl ];
|
||||
env = (old.env or { }) // {
|
||||
POCL_DEBUG = "error,warn";
|
||||
POCL_CACHE_DIR = "/build/pocl_cache";
|
||||
|
||||
# Make PoCL report Intel vendor id so oneapi SYCL works
|
||||
POCL_DRIVER_VERSION_OVERRIDE = "2024.18.6.0.02_160000";
|
||||
POCL_CPU_VENDOR_ID_OVERRIDE = 32902;
|
||||
};
|
||||
doInstallCheck = true;
|
||||
installCheckPhase = ''
|
||||
grep "Hello World! (on device)" $out
|
||||
'';
|
||||
});
|
||||
# Make PoCL report Intel vendor id so oneapi SYCL works
|
||||
POCL_DRIVER_VERSION_OVERRIDE = "2024.18.6.0.02_160000";
|
||||
POCL_CPU_VENDOR_ID_OVERRIDE = 32902;
|
||||
};
|
||||
doInstallCheck = true;
|
||||
installCheckPhase = ''
|
||||
grep "Hello World! (on device)" $out
|
||||
'';
|
||||
});
|
||||
|
||||
withIntel = finalAttrs.finalPackage.overrideAttrs (old: {
|
||||
env = (old.env or { }) // {
|
||||
OCL_ICD_VENDORS = intelPackages.compiler + "/etc/OpenCL/vendors";
|
||||
};
|
||||
doInstallCheck = true;
|
||||
installCheckPhase = ''
|
||||
grep "Hello World! (on device)" $out
|
||||
'';
|
||||
});
|
||||
};
|
||||
|
||||
dontUnpack = true;
|
||||
dontConfigure = true;
|
||||
|
||||
@@ -1,31 +0,0 @@
|
||||
{
|
||||
stdenv,
|
||||
clang-ompss2,
|
||||
nanos6,
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
version = "0.0.1";
|
||||
name = "test-clang-ompss2";
|
||||
src = ./.;
|
||||
buildInputs = [
|
||||
clang-ompss2
|
||||
nanos6
|
||||
];
|
||||
|
||||
env = {
|
||||
# NIX_DEBUG = 1;
|
||||
OCL_ICD_VENDORS = "";
|
||||
};
|
||||
|
||||
buildPhase = ''
|
||||
clang -fompss-2 hello.c -o hello
|
||||
./hello
|
||||
clang++ -fompss-2 hello.cc -o hello
|
||||
./hello
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out
|
||||
'';
|
||||
}
|
||||
40
test/compilers/sycl-ls.nix
Normal file
40
test/compilers/sycl-ls.nix
Normal file
@@ -0,0 +1,40 @@
|
||||
{
|
||||
intelPackages,
|
||||
pocl,
|
||||
runCommandWith,
|
||||
symlinkJoin,
|
||||
clinfo,
|
||||
}:
|
||||
|
||||
runCommandWith
|
||||
{
|
||||
name = "sycl-ls";
|
||||
inherit (intelPackages) stdenv;
|
||||
runLocal = true;
|
||||
derivationArgs = {
|
||||
nativeBuildInputs = [ clinfo ];
|
||||
env = {
|
||||
OCL_ICD_VENDORS = symlinkJoin {
|
||||
name = "vendors";
|
||||
paths = builtins.map (p: p + "/etc/OpenCL/vendors") [
|
||||
intelPackages.compiler
|
||||
pocl
|
||||
];
|
||||
};
|
||||
|
||||
POCL_DRIVER_VERSION_OVERRIDE = "2024.18.6.0.02_160000";
|
||||
POCL_CPU_VENDOR_ID_OVERRIDE = 32902;
|
||||
POCL_DEBUG = "error,warn";
|
||||
POCL_CACHE_DIR = "/build/pocl_cache";
|
||||
|
||||
HWLOC_SYNTHETIC = "node:1 core:1 pu:1";
|
||||
};
|
||||
};
|
||||
}
|
||||
# bash
|
||||
''
|
||||
clinfo -l | tee -a $out
|
||||
sycl-ls | tee -a $out
|
||||
|
||||
test x6 = x"$(cat $out | wc -l)" # 2 lines per clinfo entry and 1 per sycl-ls
|
||||
''
|
||||
Reference in New Issue
Block a user