From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp1 ([2001:41d0:2:bcc0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms0.migadu.com with LMTPS id 6OSsJujPnmBBfgEAgWs5BA (envelope-from ) for ; Fri, 14 May 2021 21:30:48 +0200 Received: from aspmx1.migadu.com ([2001:41d0:2:bcc0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp1 with LMTPS id QDw+IujPnmAYUQAAbx9fmQ (envelope-from ) for ; Fri, 14 May 2021 19:30:48 +0000 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id A721D26B3D for ; Fri, 14 May 2021 21:30:47 +0200 (CEST) Received: from localhost ([::1]:46462 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lhcgM-0002je-7c for larch@yhetil.org; Fri, 14 May 2021 14:37:06 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:51408) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lhcfK-0002ED-Rw for guix-patches@gnu.org; Fri, 14 May 2021 14:36:02 -0400 Received: from debbugs.gnu.org ([209.51.188.43]:35503) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1lhcfK-00069r-Kd for guix-patches@gnu.org; Fri, 14 May 2021 14:36:02 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1lhcfK-00089Z-I0 for guix-patches@gnu.org; Fri, 14 May 2021 14:36:02 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#48423] [PATCH 1/1] gnu: Add onednn. References: <20210514183126.629672-1-monego@posteo.net> In-Reply-To: <20210514183126.629672-1-monego@posteo.net> Resent-From: Vinicius Monego Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Fri, 14 May 2021 18:36:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 48423 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 48423@debbugs.gnu.org Cc: Vinicius Monego Received: via spool by 48423-submit@debbugs.gnu.org id=B48423.162101732631291 (code B ref 48423); Fri, 14 May 2021 18:36:02 +0000 Received: (at 48423) by debbugs.gnu.org; 14 May 2021 18:35:26 +0000 Received: from localhost ([127.0.0.1]:47049 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lhcek-00088c-3V for submit@debbugs.gnu.org; Fri, 14 May 2021 14:35:26 -0400 Received: from mout02.posteo.de ([185.67.36.66]:47617) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lhceh-00088L-Iy for 48423@debbugs.gnu.org; Fri, 14 May 2021 14:35:25 -0400 Received: from submission (posteo.de [89.146.220.130]) by mout02.posteo.de (Postfix) with ESMTPS id 28E7D240101 for <48423@debbugs.gnu.org>; Fri, 14 May 2021 20:35:16 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017; t=1621017317; bh=Imk1j3bp+MXH0PyApNepB55q4gEc8baUdx+L5DJps6U=; h=From:To:Cc:Subject:Date:From; b=nshyL3qVeXVMgTo8Cp1oGQDlhb4ba0oHZbCINs402sYGBHblQgYTMEU7axAOG0UtD V7YtpEkVi8CIe4iRqo9QU8kNuDYbvdEl1MrN8EeOtad6RikWQ5GeTxEZtS6i68gjQ9 vXXSPoYbVI4e7iycP6gkifrtFHwU/wwazwM9Iu/b9TzgJc/d5f9NNwwj1Nw1AdVbdE V0FdqVyQcGxCWSPtYlDS3KuHIl/RdJwJ8JnsbHfnz99LqfRvTfgKP7XssmYvuH7yjD 9O4S9U1ll6kImMjRt6DOpUmePMh/1C5Jvr2ZuzWUOlnzISdz9atN1m3aOPmoG8rZ2S ZwOEZFYHX3QRg== Received: from customer (localhost [127.0.0.1]) by submission (posteo.de) with ESMTPSA id 4Fhcdv10Rvz9rxM; Fri, 14 May 2021 20:35:14 +0200 (CEST) From: Vinicius Monego Date: Fri, 14 May 2021 18:34:57 +0000 Message-Id: <20210514183457.630049-1-monego@posteo.net> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+larch=yhetil.org@gnu.org Sender: "Guix-patches" X-Migadu-Flow: FLOW_IN ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1621020647; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding:resent-cc: resent-from:resent-sender:resent-message-id:in-reply-to:in-reply-to: references:references:list-id:list-help:list-unsubscribe: list-subscribe:list-post:dkim-signature; bh=Itt/5VQH6AhOLjcxsTBbZMU5lPcZa+CSHA4wFPq3w78=; b=UWITOgxwff/vnhM5G5mQeklYVbTcHqs+L9Tsui4otO+7HCvenBrT4ubGSKEEdT856x8wV0 dmlfkyjgVz2dGmGtrT3JPrGF/QBy+8wJkyjliLZH5h94Js9z6+Yc633Ipr+9TtKpWG6+zE XbY/SE/YcStpQkcDlB4GqaOp5iO/dXYw9RnzAUj+aj1bXn0UNjUaJiv0+erqXOkxzlBY5t rNbxemZYL4Y8hLgfWpq0S5S40PJKU+IACPzlQ5ubT4iDV0VpJaCTaTV2m/gJ0Dh8V664Uf oewY82WM0+EtoZD3qDJ3X1CzqS6ppsWWLaTDDFaTShZAOK80S2VLytjUuBkD3A== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1621020647; a=rsa-sha256; cv=none; b=f9KEG/V3H5dDtFLkbfGDAEmNC8vUNxtpAMDIg5iImrC+MTGnJSAYqxjJkQaF21bdzkoSVC dH3Z2XcX9zmvBlLuC8nCV+n7GSZP2rwNehv1ES2lLya0/NG7e629fHd5Nj3P/s69OjexQT 8iTS/G5oTCUCOYsrS0A1sAikd09HLvkdaQT1V2n69r8wAOS2czU/rZa0Um+B3T0ARhBmfx NsC4cHPlAiA6t1riDtoLw5LQ2HfKdhkgNDIWUW5XtSWCdJ0iAhfW41hg82XLOJVH1VGhJU qMUsbrv1mPRkb53jdS6etgz7+yQvoeJtOXy7jEk/G60Mx3YfOQPwzQL7dONg7g== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=fail ("headers rsa verify failed") header.d=posteo.net header.s=2017 header.b=nshyL3qV; spf=pass (aspmx1.migadu.com: domain of guix-patches-bounces@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=guix-patches-bounces@gnu.org X-Migadu-Spam-Score: 5.15 Authentication-Results: aspmx1.migadu.com; dkim=fail ("headers rsa verify failed") header.d=posteo.net header.s=2017 header.b=nshyL3qV; dmarc=fail reason="SPF not aligned (strict)" header.from=posteo.net (policy=none); spf=pass (aspmx1.migadu.com: domain of guix-patches-bounces@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=guix-patches-bounces@gnu.org X-Migadu-Queue-Id: A721D26B3D X-Spam-Score: 5.15 X-Migadu-Scanner: scn0.migadu.com X-TUID: zZNpHunfkECF * gnu/packages/machine-learning.scm (onednn): New variable. * gnu/packages/patches/onednn-disable-gpu-tests.patch, gnu/packages/patches/onednn-use-system-googletest.patch: New files. * gnu/local.mk (dist_PATCH_DATA): Add them. --- gnu/local.mk | 2 + gnu/packages/machine-learning.scm | 44 +++++++ .../patches/onednn-disable-gpu-tests.patch | 26 ++++ .../onednn-use-system-googletest.patch | 117 ++++++++++++++++++ 4 files changed, 189 insertions(+) create mode 100644 gnu/packages/patches/onednn-disable-gpu-tests.patch create mode 100644 gnu/packages/patches/onednn-use-system-googletest.patch diff --git a/gnu/local.mk b/gnu/local.mk index 37166bb2fc..e32d693c0d 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1480,6 +1480,8 @@ dist_patch_DATA = \ %D%/packages/patches/ocaml-dose3-dont-make-printconf.patch \ %D%/packages/patches/ocaml-dose3-Install-mli-cmx-etc.patch \ %D%/packages/patches/omake-fix-non-determinism.patch \ + %D%/packages/patches/onednn-disable-gpu-tests.patch \ + %D%/packages/patches/onednn-use-system-googletest.patch \ %D%/packages/patches/openbabel-fix-crash-on-nwchem-output.patch \ %D%/packages/patches/opencascade-oce-glibc-2.26.patch \ %D%/packages/patches/opencv-fix-build-of-grfmt_jpeg2000.cpp.patch \ diff --git a/gnu/packages/machine-learning.scm b/gnu/packages/machine-learning.scm index 837ebbba67..8140380db9 100644 --- a/gnu/packages/machine-learning.scm +++ b/gnu/packages/machine-learning.scm @@ -70,6 +70,7 @@ #:use-module (gnu packages mpi) #:use-module (gnu packages ocaml) #:use-module (gnu packages onc-rpc) + #:use-module (gnu packages opencl) #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) #:use-module (gnu packages protobuf) @@ -1955,6 +1956,49 @@ any function). It currently contains the interface and IO code from the Shap project, and it will potentially also do the same for the Lime project.") (license license:expat))) +(define-public onednn + (package + (name "onednn") + (version "2.2.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/oneapi-src/oneDNN") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + ;; GPU tests fail with: "C++ exception with description 'could not + ;; create an engine' thrown in auxiliary test code (environments or + ;; event listeners)". It may be because of the build environment + ;; isolation. Disable them for now. + (patches (search-patches "onednn-disable-gpu-tests.patch" + "onednn-use-system-googletest.patch")) + (sha256 + (base32 "1a7fak7g8zpv1hnbnnnv964bkvdpwm5vgsx39j2sp2jswwh5s7g5")))) + (build-system cmake-build-system) + (arguments + `(;; See doc/build/build_options.md for a list of build options. + #:configure-flags (list "-DDNNL_BUILD_EXAMPLES=OFF" + "-DDNNL_GPU_RUNTIME=OCL"))) + (native-inputs + `(("googletest" ,googletest) + ("opencl-headers" ,opencl-headers) + ("python" ,python-wrapper))) + (inputs + `(("ocl-icd" ,ocl-icd))) + (home-page "https://01.org/oneDNN") + (synopsis "Library of building blocks for deep learning applications") + ;; See "Requirements for Building from Source" in the README for a list. + (supported-systems '("x86_64-linux" "aarch-64-linux")) + (description + "oneAPI Deep Neural Network Library (oneDNN) is a performance library of +basic building blocks for deep learning applications. It is intended for deep +learning applications and framework developers interested in improving +application performance on Intel CPUs and GPUs.") + ;; See THIRD-PARTY-PROGRAMS for a full list. + (license (list license:asl2.0 ;oneDNN + license:bsd-3)))) ;XByak, IIT API + (define-public python-keras-applications (package (name "python-keras-applications") diff --git a/gnu/packages/patches/onednn-disable-gpu-tests.patch b/gnu/packages/patches/onednn-disable-gpu-tests.patch new file mode 100644 index 0000000000..746999a8dd --- /dev/null +++ b/gnu/packages/patches/onednn-disable-gpu-tests.patch @@ -0,0 +1,26 @@ +From 09bd5a7f6d279a7fab1ed16c8bf1c5d5531d2c97 Mon Sep 17 00:00:00 2001 +From: Vinicius Monego +Date: Fri, 14 May 2021 02:28:22 -0300 +Subject: [PATCH] Disable GPU tests. + +--- + tests/gtests/CMakeLists.txt | 3 --- + 1 file changed, 3 deletions(-) + +diff --git a/tests/gtests/CMakeLists.txt b/tests/gtests/CMakeLists.txt +index 1e763af..f3cdd20 100644 +--- a/tests/gtests/CMakeLists.txt ++++ b/tests/gtests/CMakeLists.txt +@@ -169,9 +169,6 @@ function(register_gtest exe src) + if(NOT DNNL_GPU_RUNTIME STREQUAL "NONE" AND NOT no_engine_param) + add_dnnl_test(${exe}_cpu ${exe} COMMAND ${exe} --engine=cpu) + maybe_configure_windows_test(${exe}_cpu TEST) +- +- add_dnnl_test(${exe}_gpu ${exe} COMMAND ${exe} --engine=gpu) +- maybe_configure_windows_test(${exe}_gpu TEST) + else() + add_dnnl_test(${exe} ${exe}) + maybe_configure_windows_test(${exe} TEST) +-- +2.31.1 + diff --git a/gnu/packages/patches/onednn-use-system-googletest.patch b/gnu/packages/patches/onednn-use-system-googletest.patch new file mode 100644 index 0000000000..6a78346d6b --- /dev/null +++ b/gnu/packages/patches/onednn-use-system-googletest.patch @@ -0,0 +1,117 @@ +From 5b20029658c23b6ce2d60eab19841ef8424858c6 Mon Sep 17 00:00:00 2001 +From: Vinicius Monego +Date: Thu, 13 May 2021 14:12:58 -0300 +Subject: [PATCH] Use system googletest. + +--- + tests/gtests/CMakeLists.txt | 5 ++--- + tests/gtests/api/CMakeLists.txt | 4 ++-- + tests/gtests/internals/CMakeLists.txt | 2 +- + tests/gtests/ocl/CMakeLists.txt | 2 +- + tests/gtests/ocl/api/CMakeLists.txt | 2 +- + tests/gtests/regression/CMakeLists.txt | 2 +- + tests/gtests/sycl/api/CMakeLists.txt | 2 +- + 7 files changed, 9 insertions(+), 10 deletions(-) + +diff --git a/tests/gtests/CMakeLists.txt b/tests/gtests/CMakeLists.txt +index cef298d..1e763af 100644 +--- a/tests/gtests/CMakeLists.txt ++++ b/tests/gtests/CMakeLists.txt +@@ -19,7 +19,7 @@ if(WIN32 AND DNNL_WITH_SYCL) + add_definitions(-DGTEST_HAS_SEH=0) + endif() + +-add_subdirectory (gtest) ++find_package(GTest CONFIG REQUIRED) + + set(APP_NAME "gtest") + set(MAIN_SRC_GTEST ${CMAKE_CURRENT_SOURCE_DIR}/main.cpp) +@@ -35,7 +35,6 @@ if(UNIX) + endif() + + include_directories(${CMAKE_CURRENT_SOURCE_DIR} +- ${CMAKE_CURRENT_SOURCE_DIR}/gtest + ${CMAKE_CURRENT_SOURCE_DIR}/in + ${CMAKE_CURRENT_SOURCE_DIR}/../../src/common + ${CMAKE_CURRENT_SOURCE_DIR}/../../src/cpu +@@ -158,7 +157,7 @@ set_source_files_properties( + function(register_gtest exe src) + add_executable(${exe} ${MAIN_SRC_GTEST} ${src}) + add_definitions(-DNOMINMAX) # to allow std::max on Windows with parentheses +- target_link_libraries(${exe} ${LIB_NAME} dnnl_gtest ${EXTRA_SHARED_LIBS}) ++ target_link_libraries(${exe} ${LIB_NAME} gtest ${EXTRA_SHARED_LIBS}) + + get_source_file_property(no_engine_param ${src} NO_ENGINE_PARAM) + +diff --git a/tests/gtests/api/CMakeLists.txt b/tests/gtests/api/CMakeLists.txt +index 10819d1..6584541 100644 +--- a/tests/gtests/api/CMakeLists.txt ++++ b/tests/gtests/api/CMakeLists.txt +@@ -27,11 +27,11 @@ endif() + + # Switch off C API tests for CUDA since USM model is not supported + if(NOT DNNL_SYCL_CUDA) +- register_exe(${TEST_EXE} "${TEST_SOURCES}" "test" "dnnl_gtest") ++ register_exe(${TEST_EXE} "${TEST_SOURCES}" "test" "gtest") + endif() + + # Create DPC++ buffer target. + if(DNNL_WITH_SYCL) +- register_exe(${TEST_EXE}_buffer "${TEST_SOURCES}" "test" "dnnl_gtest") ++ register_exe(${TEST_EXE}_buffer "${TEST_SOURCES}" "test" "gtest") + target_compile_definitions(${TEST_EXE}_buffer PUBLIC -DTEST_DNNL_DPCPP_BUFFER) + endif() +diff --git a/tests/gtests/internals/CMakeLists.txt b/tests/gtests/internals/CMakeLists.txt +index c39d860..ae82272 100644 +--- a/tests/gtests/internals/CMakeLists.txt ++++ b/tests/gtests/internals/CMakeLists.txt +@@ -24,4 +24,4 @@ endif() + file(GLOB TEST_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/test_*.cpp) + list(APPEND TEST_SOURCES ${MAIN_SRC_GTEST}) + +-register_exe(${TEST_EXE} "${TEST_SOURCES}" "test" "dnnl_gtest") ++register_exe(${TEST_EXE} "${TEST_SOURCES}" "test" "gtest") +diff --git a/tests/gtests/ocl/CMakeLists.txt b/tests/gtests/ocl/CMakeLists.txt +index 9b686fb..c075271 100644 +--- a/tests/gtests/ocl/CMakeLists.txt ++++ b/tests/gtests/ocl/CMakeLists.txt +@@ -20,5 +20,5 @@ file(GLOB TEST_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/test_*.cpp) + + foreach(TEST_FILE ${TEST_SOURCES}) + get_filename_component(exe ${TEST_FILE} NAME_WE) +- register_exe(${exe} "${TEST_SOURCES};${MAIN_SRC_GTEST}" "test" "dnnl_gtest") ++ register_exe(${exe} "${TEST_SOURCES};${MAIN_SRC_GTEST}" "test" "gtest") + endforeach() +diff --git a/tests/gtests/ocl/api/CMakeLists.txt b/tests/gtests/ocl/api/CMakeLists.txt +index 6ca368e..dcd6e34 100644 +--- a/tests/gtests/ocl/api/CMakeLists.txt ++++ b/tests/gtests/ocl/api/CMakeLists.txt +@@ -19,4 +19,4 @@ set(TEST_EXE test_api_ocl) + file(GLOB TEST_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/test_*.cpp) + list(APPEND TEST_SOURCES ${MAIN_SRC_GTEST}) + +-register_exe(${TEST_EXE} "${TEST_SOURCES}" "test" "dnnl_gtest") ++register_exe(${TEST_EXE} "${TEST_SOURCES}" "test" "gtest") +diff --git a/tests/gtests/regression/CMakeLists.txt b/tests/gtests/regression/CMakeLists.txt +index 5d9692c..b9bbb77 100644 +--- a/tests/gtests/regression/CMakeLists.txt ++++ b/tests/gtests/regression/CMakeLists.txt +@@ -19,4 +19,4 @@ set(TEST_EXE test_regression) + file(GLOB TEST_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/test_*.cpp) + list(APPEND TEST_SOURCES ${MAIN_SRC_GTEST}) + +-register_exe(${TEST_EXE} "${TEST_SOURCES}" "test" "dnnl_gtest") ++register_exe(${TEST_EXE} "${TEST_SOURCES}" "test" "gtest") +diff --git a/tests/gtests/sycl/api/CMakeLists.txt b/tests/gtests/sycl/api/CMakeLists.txt +index 541a206..bedfeb6 100644 +--- a/tests/gtests/sycl/api/CMakeLists.txt ++++ b/tests/gtests/sycl/api/CMakeLists.txt +@@ -19,4 +19,4 @@ set(TEST_EXE test_api_sycl) + file(GLOB TEST_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/test_*.cpp) + list(APPEND TEST_SOURCES ${MAIN_SRC_GTEST}) + +-register_exe(${TEST_EXE} "${TEST_SOURCES}" "test" "dnnl_gtest") ++register_exe(${TEST_EXE} "${TEST_SOURCES}" "test" "gtest") +-- +2.31.1 + -- 2.31.1