From patchwork Sun Sep 10 07:23:42 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andy Tai X-Patchwork-Id: 53699 Return-Path: X-Original-To: patchwork@mira.cbaines.net Delivered-To: patchwork@mira.cbaines.net Received: by mira.cbaines.net (Postfix, from userid 113) id BFDC527BBEA; Sun, 10 Sep 2023 08:25:30 +0100 (BST) X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-2.7 required=5.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,SPF_HELO_PASS autolearn=ham autolearn_force=no version=3.4.6 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mira.cbaines.net (Postfix) with ESMTPS id C552B27BBE2 for ; Sun, 10 Sep 2023 08:25:23 +0100 (BST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qfEoX-0004LB-HM; Sun, 10 Sep 2023 03:25:01 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qfEoU-0004Kn-Vx for guix-patches@gnu.org; Sun, 10 Sep 2023 03:24:59 -0400 Received: from debbugs.gnu.org ([2001:470:142:5::43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qfEoU-00067y-OC for guix-patches@gnu.org; Sun, 10 Sep 2023 03:24:58 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1qfEoY-0003nJ-1C for guix-patches@gnu.org; Sun, 10 Sep 2023 03:25:02 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#65835] [PATCH v2] gnu: tensorflow-lite: Update to 2.13.0 References: In-Reply-To: Resent-From: Andy Tai Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Sun, 10 Sep 2023 07:25:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 65835 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 65835@debbugs.gnu.org Cc: Andy Tai Received: via spool by 65835-submit@debbugs.gnu.org id=B65835.169433064214497 (code B ref 65835); Sun, 10 Sep 2023 07:25:01 +0000 Received: (at 65835) by debbugs.gnu.org; 10 Sep 2023 07:24:02 +0000 Received: from localhost ([127.0.0.1]:48872 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qfEnZ-0003lV-6n for submit@debbugs.gnu.org; Sun, 10 Sep 2023 03:24:02 -0400 Received: from mail-pj1-x1031.google.com ([2607:f8b0:4864:20::1031]:42095) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qfEnV-0003lB-KC for 65835@debbugs.gnu.org; Sun, 10 Sep 2023 03:24:00 -0400 Received: by mail-pj1-x1031.google.com with SMTP id 98e67ed59e1d1-271b102659fso2282833a91.0 for <65835@debbugs.gnu.org>; Sun, 10 Sep 2023 00:23:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1694330628; x=1694935428; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:sender:from:to:cc:subject:date:message-id:reply-to; bh=A0bBpa+rf/wBMGQ3E/hp6kj2J5QSTRzrFC14YffPiAQ=; b=DnAlI8doYY2eJokzJ0TZdsGNu/1rf+o11ctr92LDtwqT0TA7AUA7nqyuH9h8zE+vGl +Hp5jEYP4NXdswGLsUzk30v9AX4VJLPTYvKC1m8Zu3IawaPvWVzR/Xadfpli/r388Ujl HUNQJyN/tIucrav3hThwnDSIbZSbtKjEoYXyhseU4dfhjWYby9WbkfF1UdAtjtpF9wga 4J5LMgwVUwE7Ix8KXTraXG3BsF5geASecMBPApgmu7b7suzbMqSun7G7HjT6YZIuV6n7 1wwqeR8myHRydWrhhq3EmSuH3N/DQjHAMOtD+Qzw7alGTZhNqUxtDRS1MvoXuZLZsxda Crxg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1694330628; x=1694935428; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:sender:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=A0bBpa+rf/wBMGQ3E/hp6kj2J5QSTRzrFC14YffPiAQ=; b=qbcBM4OwpRzHw8jnCaudbIXnndTIjnhI9os5NwzXB7CahNaVOJHLaIDlfW4annCbTm ODZzOhriY4dRRQ2lGv1OPEhecofM+x8l8TGm/1tIC2tXDbhMpw5NZKHVIJjyVkT0CWkh FCgR4ISndx239rGvn80ay8Y8qEvgoFAhhXkg3hOOWPWgH+wZhYJPaka390MOGwT7TGF7 Cz5J1NvONCPw4GB75Kj+bI/O6g56bsiy9DyAiBqgFs1YJiiYF9CcUGk4GHiRsNgz/zR2 KvXdslfZZL+PgvgF+KQ06NVHqZnJ9mJUDLxu4zdNhcw6h9voShNQ/cJr7Rx2W8M8rhmJ wtgw== X-Gm-Message-State: AOJu0YwuJCvCZROyqb2mFQoFDci0CD+rAj87t6sYLy3k9FGmVEWcdwKw T0g85dMo1Wz3xp3RLhxd+0FtPlsP5TyHaA== X-Google-Smtp-Source: AGHT+IGoGc7zmKtnLAGBQRKHjZkypqMv+4tKsYoWZ2E3kUZGZDdCeC8Lo39kSJVoaiUDKKjhl51TwA== X-Received: by 2002:a17:90a:17c9:b0:263:f521:da3e with SMTP id q67-20020a17090a17c900b00263f521da3emr8836943pja.2.1694330627821; Sun, 10 Sep 2023 00:23:47 -0700 (PDT) Received: from localhost.localdomain ([98.37.226.98]) by smtp.googlemail.com with ESMTPSA id i8-20020a17090a2ac800b002696aeb72e5sm5930025pjg.2.2023.09.10.00.23.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 10 Sep 2023 00:23:47 -0700 (PDT) From: Andy Tai Date: Sun, 10 Sep 2023 00:23:42 -0700 Message-ID: X-Mailer: git-send-email 2.41.0 MIME-Version: 1.0 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+patchwork=mira.cbaines.net@gnu.org Sender: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org X-getmail-retrieved-from-mailbox: Patches * gnu/packages/machine-learning.scm: (tensorflow-lite): Update to 2.13.0 [inputs]: Add gemmlowp [native-inputs]: Remove gemmlowp-src * gnu/packages/patches/tensorflow-lite-disable-local-cmake-3rdparty-components.patch: New file --- gnu/packages/machine-learning.scm | 47 +++++++------- ...able-local-cmake-3rdparty-components.patch | 62 +++++++++++++++++++ 2 files changed, 85 insertions(+), 24 deletions(-) create mode 100644 gnu/packages/patches/tensorflow-lite-disable-local-cmake-3rdparty-components.patch base-commit: 5db78e7c1b06d1b4892bdb3e153b95b21577271e diff --git a/gnu/packages/machine-learning.scm b/gnu/packages/machine-learning.scm index fd0be8d500..fd6089a525 100644 --- a/gnu/packages/machine-learning.scm +++ b/gnu/packages/machine-learning.scm @@ -2972,7 +2972,7 @@ (define-public tensorflow (define-public tensorflow-lite (package (name "tensorflow-lite") - (version "2.12.1") + (version "2.13.0") (source (origin (method git-fetch) @@ -2982,11 +2982,15 @@ (define-public tensorflow-lite (file-name (git-file-name name version)) (sha256 (base32 - "0jkgljdagdqllnxygl35r5bh3f9qmbczymfj357gm9krh59g2kmd")))) + "07g6vlrs0aayrg2mfdl15gxg5dy103wx2xlqkran15dib40nkbj6")) + (patches + (search-patches + ;; patch to disable local cmake build code for 3rdparty + ;; componentas + "tensorflow-lite-disable-local-cmake-3rdparty-components.patch")))) (build-system cmake-build-system) (arguments (list - #:tests? #false ;tests are not building now #:build-type "Release" #:modules '((ice-9 match) (guix build utils) @@ -3005,11 +3009,11 @@ (define-public tensorflow-lite ;; TODO: turn on Farmhash ;;"-DSYSTEM_FARMHASH=ON" - (string-append "-Dabsl_DIR=" #$(this-package-input "abseil-cpp") + (string-append "-Dabseil-cpp_DIR=" #$(this-package-input "abseil-cpp") "/lib/cmake/absl") (string-append "-DEigen3_DIR=" #$(this-package-input "eigen") "/share/eigen3/cmake") - (string-append "-DFlatBuffers_DIR=" + (string-append "-Dflatbuffers_DIR=" #$(this-package-input "flatbuffers-shared") "/lib/cmake/flatbuffers") (string-append "-DNEON_2_SSE_DIR=" #$(this-package-input "neon2sse") @@ -3025,6 +3029,9 @@ (define-public tensorflow-lite "-DTFLITE_ENABLE_XNNPACK=OFF" ;; Don't fetch the sources. We have these already + "-Dabseil-cpp_POPULATED=TRUE" + "-Dflatbuffers_POPULATED=TRUE" + "-Dgemmlowp_POPULATED=TRUE" "-Degl_headers_POPULATED=TRUE" "-Dfp16_headers_POPULATED=TRUE" "-Dopencl_headers_POPULATED=TRUE" @@ -3037,7 +3044,10 @@ (define-public tensorflow-lite "-DFFT2D_SOURCE_DIR=/tmp/fft2d" "-DFARMHASH_SOURCE_DIR=/tmp/farmhash" - "-Dgemmlowp_SOURCE_DIR=/tmp/gemmlowp") + (string-append "-Dabseil-cpp_ROOT=" #$(this-package-input "abseil-cpp")) + (string-append "-Dflatbuffers_ROOT=" #$(this-package-input "flatbuffers-shared")) + (string-append "-Dgemmlowp_ROOT=" #$(this-package-input "gemmlowp")) + ) #:phases #~(modify-phases %standard-phases (add-after 'unpack 'chdir @@ -3069,8 +3079,10 @@ (define-public tensorflow-lite (invoke "tar" "--strip-components=1" "-xf" (assoc-ref inputs "fft2d-src"))) - (copy-recursively (assoc-ref inputs "gemmlowp-src") - "/tmp/gemmlowp/"))) + ;(copy-recursively (assoc-ref inputs "gemmlowp-src") + ; "/tmp/gemmlowp/") + + )) (add-after 'build 'build-shared-library (lambda* (#:key configure-flags #:allow-other-keys) @@ -3096,12 +3108,12 @@ (define-public tensorflow-lite (when tests? (invoke "ctest" "-L" "plain"))))))) (inputs - `(("abseil-cpp" ,abseil-cpp-20200923.3) + `(("abseil-cpp" ,abseil-cpp) ("cpuinfo" ,cpuinfo) ("eigen" ,eigen) ("fp16" ,fp16) ("flatbuffers-shared" ,flatbuffers-next-shared) - ;;("gemmlowp" ,gemmlowp) ; TODO + ("gemmlowp" ,gemmlowp) ("mesa-headers" ,mesa-headers) ("neon2sse" ,neon2sse) ("nsync" ,nsync) @@ -3117,21 +3129,8 @@ (define-public tensorflow-lite (native-inputs `(("pkg-config" ,pkg-config) ("googletest" ,googletest) - ("gemmlowp-src" - ;; The commit hash is taken from - ;; "tensorflow/lite/tools/cmake/modules/gemmlowp.cmake". - ,(let ((commit "fda83bdc38b118cc6b56753bd540caa49e570745")) - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/google/gemmlowp") - (commit commit))) - (file-name (git-file-name "gemmlowp" (string-take commit 8))) - (sha256 - (base32 - "1sbp8kmr2azwlvfbzryy1frxi99jhsh1nc93bdbxdf8zdgpv0kxl"))))) ("farmhash-src" - ,(let ((commit "816a4ae622e964763ca0862d9dbd19324a1eaf45")) + ,(let ((commit "0d859a811870d10f53a594927d0d0b97573ad06d")) (origin (method url-fetch) (uri (string-append diff --git a/gnu/packages/patches/tensorflow-lite-disable-local-cmake-3rdparty-components.patch b/gnu/packages/patches/tensorflow-lite-disable-local-cmake-3rdparty-components.patch new file mode 100644 index 0000000000..eb1cc76db6 --- /dev/null +++ b/gnu/packages/patches/tensorflow-lite-disable-local-cmake-3rdparty-components.patch @@ -0,0 +1,62 @@ +diff --git a/tensorflow/lite/CMakeLists.txt b/tensorflow/lite/CMakeLists.txt +index 0476170e075..90abea00e8c 100644 +--- a/tensorflow/lite/CMakeLists.txt ++++ b/tensorflow/lite/CMakeLists.txt +@@ -564,7 +564,7 @@ set(_ALL_TFLITE_HDRS ${_ALL_TFLITE_SRCS}) + list(FILTER _ALL_TFLITE_HDRS INCLUDE REGEX ".*\\.h$") + target_include_directories(tensorflow-lite + PUBLIC $ $ +- ${CMAKE_BINARY_DIR}/gemmlowp ++ ${gemmlowp_ROOT}/include/gemmlowp + ) + target_link_libraries(tensorflow-lite + PUBLIC +diff --git a/tensorflow/lite/kernels/CMakeLists.txt b/tensorflow/lite/kernels/CMakeLists.txt +index 57ed10d7e64..b45b5d1df82 100644 +--- a/tensorflow/lite/kernels/CMakeLists.txt ++++ b/tensorflow/lite/kernels/CMakeLists.txt +@@ -25,11 +25,13 @@ set(SCHEMA_GENERATED_PATH ${SCHEMA_GENERATED_ROOT}/tensorflow/lite/schema/mutabl + set(SCHEMA_GENERATED_FILE ${SCHEMA_GENERATED_PATH}/schema_generated.h) + + # Use the util function in flatbuffer to generate the schema header. ++list(APPEND CMAKE_MODULE_PATH "${flatbuffers_DIR}") + include(BuildFlatBuffers) + + # For cross-compilation purposes a natively compiled 'flatc' compiler is required + if(${CMAKE_CROSSCOMPILING}) + set(FLATC_PATHS ++ ${flatbuffers_ROOT}/bin + ${TFLITE_HOST_TOOLS_DIR} + ${TFLITE_HOST_TOOLS_DIR}/bin + ${TFLITE_HOST_TOOLS_DIR}/flatbuffers-flatc/bin +@@ -43,7 +45,7 @@ if(${CMAKE_CROSSCOMPILING}) + set(FLATBUFFERS_FLATC_EXECUTABLE ${FLATC_BIN}) + endif() + else() +- set(FLATBUFFERS_FLATC_EXECUTABLE ${CMAKE_BINARY_DIR}/flatbuffers-flatc/bin/flatc) ++ set(FLATBUFFERS_FLATC_EXECUTABLE ${flatbuffers_ROOT}/bin/flatc) + endif() + + set(FLATBUFFERS_FLATC_SCHEMA_EXTRA_ARGS +@@ -55,7 +57,7 @@ build_flatbuffers( + "${SCHEMA_FILE}" + "" + mutable_schema_file +- flatbuffers-flatc ++ ${FLATBUFFERS_FLATC_EXECUTABLE} + "${SCHEMA_GENERATED_PATH}" + "" + "" +diff --git a/tensorflow/lite/tools/cmake/modules/Findgemmlowp.cmake b/tensorflow/lite/tools/cmake/modules/Findgemmlowp.cmake +index 70331ad0a69..a9bd8a0f3bd 100644 +--- a/tensorflow/lite/tools/cmake/modules/Findgemmlowp.cmake ++++ b/tensorflow/lite/tools/cmake/modules/Findgemmlowp.cmake +@@ -18,7 +18,7 @@ + include(gemmlowp) + if(gemmlowp_POPULATED) + set(GEMMLOWP_FOUND TRUE) +- get_target_property(GEMMLOWP_INCLUDE_DIRS gemmlowp INTERFACE_DIRECTORIES) ++ #get_target_property(GEMMLOWP_INCLUDE_DIRS gemmlowp INTERFACE_DIRECTORIES) + set(GEMMLOWP_LIBRARIES + gemmlowp + gemmlowp_fixedpoint