1{ cmake
2, fetchFromGitHub
3, lib
4, stdenv
5}:
6
7# This was originally called mkl-dnn, then it was renamed to dnnl, and it has
8# just recently been renamed again to oneDNN. See here for details:
9# https://github.com/oneapi-src/oneDNN#oneapi-deep-neural-network-library-onednn
10stdenv.mkDerivation (finalAttrs: {
11 pname = "oneDNN";
12 version = "3.4.1";
13
14 src = fetchFromGitHub {
15 owner = "oneapi-src";
16 repo = "oneDNN";
17 rev = "v${finalAttrs.version}";
18 hash = "sha256-6iPcytsRWvDn2hg5tkSG6A3cv/aOhmEVd5rS2uOKCPk=";
19 };
20
21 outputs = [ "out" "dev" "doc" ];
22
23 nativeBuildInputs = [ cmake ];
24
25 # Tests fail on some Hydra builders, because they do not support SSE4.2.
26 doCheck = false;
27
28 # Fixup bad cmake paths
29 postInstall = ''
30 substituteInPlace $out/lib/cmake/dnnl/dnnl-config.cmake \
31 --replace "\''${PACKAGE_PREFIX_DIR}/" ""
32
33 substituteInPlace $out/lib/cmake/dnnl/dnnl-targets.cmake \
34 --replace "\''${_IMPORT_PREFIX}/" ""
35 '';
36
37 meta = {
38 changelog = "https://github.com/oneapi-src/oneDNN/releases/tag/v${finalAttrs.version}";
39 description = "oneAPI Deep Neural Network Library (oneDNN)";
40 homepage = "https://01.org/oneDNN";
41 license = lib.licenses.asl20;
42 maintainers = with lib.maintainers; [ bhipple ];
43 platforms = lib.platforms.all;
44 };
45})