~ruther/guix-local

8f57e6c9960a490072276b197e04d8858ff1ea68 — Nicolas Graves 7 months ago 14e0bca6
gnu: tensorflow-lite: Update to 2.14.0.

* gnu/packages/patches/tensorflow-lite-unbundle.patch: Remove it.
* gnu/local.mk: De-register patch.
* gnu/packages/machine-learning.scm (tensorflow-lite): Update to 2.14.0.
[source]: De-register patch.
[inputs]: Improve style. Add python-ml-dtypes. Replace
flatbuffers-23.1 by flatbuffers-23.5.
[arguments]<#:configure-flags>: Refresh them.
<#:phases>: Add phases 'unbundle and 'gemmlowp-fix. Refresh phases
'install-extra and 'copy-sources.
* gnu/packages/serialization.scm (flatbuffers-23.5): Update comment.

Change-Id: Ifeadfaa9173df4e0be08ce4f0dc13a4cd5297c0e
Signed-off-by: Andreas Enge <andreas@enge.fr>
4 files changed, 52 insertions(+), 66 deletions(-)

M gnu/local.mk
M gnu/packages/machine-learning.scm
D gnu/packages/patches/tensorflow-lite-unbundle.patch
M gnu/packages/serialization.scm
M gnu/local.mk => gnu/local.mk +0 -1
@@ 2331,7 2331,6 @@ dist_patch_DATA =						\
  %D%/packages/patches/tcsh-fix-autotest.patch			\
  %D%/packages/patches/teensy-loader-cli-help.patch		\
  %D%/packages/patches/tensorflow-c-api-fix.patch		\
  %D%/packages/patches/tensorflow-lite-unbundle.patch 		\
  %D%/packages/patches/texinfo-headings-single.patch		\
  %D%/packages/patches/texinfo-5-perl-compat.patch		\
  %D%/packages/patches/telegram-desktop-allow-disable-libtgvoip.patch   \

M gnu/packages/machine-learning.scm => gnu/packages/machine-learning.scm +51 -37
@@ 3194,7 3194,7 @@ Python.")
(define-public tensorflow-lite
  (package
    (name "tensorflow-lite")
    (version "2.13.1")
    (version "2.14.0")
    (source
     (origin
       (method git-fetch)


@@ 3204,8 3204,7 @@ Python.")
       (file-name (git-file-name name version))
       (sha256
        (base32
         "09mfskmpvpbq919wibnw3bnhi1y3hkx3qrzm72gdr0gsivn1yb3w"))
       (patches (search-patches "tensorflow-lite-unbundle.patch"))))
         "07f4x4g3kwhfjz7iadhqrv97zmw0blacixvca1gdqkqqi7aipxis"))))
    (build-system cmake-build-system)
    (arguments
     (list


@@ 3226,6 3225,7 @@ Python.")
         "-DTFLITE_ENABLE_RUY=ON"
         "-DTFLITE_ENABLE_XNNPACK=ON"

         "-DSYSTEM_PTHREADPOOL=ON"
         ;; TODO: turn on Farmhash
         ;;"-DSYSTEM_FARMHASH=ON"
         (string-append "-Dabsl_DIR=" #$(this-package-input "abseil-cpp")


@@ 3241,8 3241,11 @@ Python.")
                        "/share/cpuinfo")
         (string-append "-Druy_DIR=" #$(this-package-input "ruy")
                        "/lib/cmake/ruy")
         (string-append "-DML_DTYPES_LIBRARY_DIRS="
                        #$(this-package-input "python-ml-dtypes") "/lib")

         ;; Don't fetch the sources.  We have these already
         "-Dml_dtypes_POPULATED=ON"
         "-Dgemmlowp_POPULATED=TRUE"
         "-Degl_headers_POPULATED=TRUE"
         "-Dfp16_headers_POPULATED=TRUE"


@@ 3262,22 3265,28 @@ Python.")
      #~(modify-phases %standard-phases
          (add-after 'unpack 'chdir
            (lambda _ (chdir "tensorflow/lite")))
          (add-after 'chdir 'unbundle-gemmlowp
            (lambda _
              (call-with-output-file "tools/cmake/modules/gemmlowp.cmake"
                (lambda (port)
                  (display "\
add_library(gemmlowp INTERFACE IMPORTED)
include_directories(\"${gemmlowp_ROOT}/include/gemmlowp\")" port)))
              (call-with-output-file "tools/cmake/modules/ml_dtypes.cmake"
                (lambda (port)
                  (display "\
add_library(ml_dtypes INTERFACE IMPORTED)
find_library(ML_DTYPES_LIBRARIES
  NAMES ml_dtypes.so
  PATHS \"${ML_DTYPES_LIBRARY_DIRS}\"
  NO_DEFAULT_PATH)" port)))))
          (add-after 'chdir 'copy-sources
            (lambda* (#:key inputs #:allow-other-keys)
              ;; TODO: properly use Guix's pthreaqdpool.  We are not using
              ;; pthreadpool because we are not enabling xnnpack
              (substitute* "CMakeLists.txt"
                (("if\\(NOT DEFINED PTHREADPOOL_SOURCE_DIR\\)")
                 "if(false)"))
              (substitute* "CMakeLists.txt"
                (("if\\(NOT TARGET pthreadpool\\)")
                 "if(false)"))

              ;; Don't fetch source code; we already have everything we need.
              (substitute* '("tools/cmake/modules/fft2d.cmake"
                             "tools/cmake/modules/farmhash.cmake"
                             "tools/cmake/modules/gemmlowp.cmake")
                (("OverridableFetchContent_Populate.*") ""))
                (("^ *OverridableFetchContent_Populate.*") ""))

              (mkdir-p "/tmp/farmhash")
              (with-directory-excursion "/tmp/farmhash"


@@ 3303,6 3312,11 @@ Python.")
            (lambda _ (substitute* "kernels/internal/spectrogram.cc"
              (("#include <math.h>")
               "#include <math.h>\n#include <cstdint>\n"))))
          (add-after 'stdint-fix 'gemmlowp-fix
            (lambda _
              (substitute* "kernels/internal/common.h"
                (("#include \"fixedpoint/fixedpoint\\.h\"")
                 "#include <fixedpoint/fixedpoint.h>"))))
          (add-after 'build 'build-shared-library
            (lambda* (#:key configure-flags #:allow-other-keys)
              (mkdir-p "c")


@@ 3316,35 3330,35 @@ Python.")
                      "-j" (number->string (parallel-job-count)))))

          (add-after 'install 'install-extra
            (lambda* (#:key outputs #:allow-other-keys)
              (let* ((out (assoc-ref outputs "out"))
                     (lib (string-append out "/lib"))
                     (bin (string-append out "/bin")))
                (install-file "../build/c/libtensorflowlite_c.so" lib)
                (install-file "../build/tools/benchmark/benchmark_model" bin))))
            (lambda _
              (install-file "../build/c/libtensorflowlite_c.so"
                            (string-append #$output "/lib"))
              (install-file "../build/tools/benchmark/benchmark_model"
                            (string-append #$output "/bin"))))
          (replace 'check
            (lambda* (#:key tests? #:allow-other-keys)
              (when tests?
                (invoke "ctest" "-L" "plain")))))))
    (inputs
     `(("abseil-cpp" ,abseil-cpp)
       ("cpuinfo" ,cpuinfo)
       ("eigen" ,eigen)
       ("fp16" ,fp16)
       ("flatbuffers" ,flatbuffers-23.1)
       ("gemmlowp" ,gemmlowp)
       ("mesa-headers" ,mesa-headers)
       ("neon2sse" ,neon2sse)
       ("nsync" ,nsync)
       ("opencl-clhpp" ,opencl-clhpp)
       ("opencl-headers" ,opencl-headers)
       ("opencl-icd-loader" ,opencl-icd-loader)
       ("pthreadpool" ,pthreadpool)
       ("python" ,python)
       ("ruy" ,ruy)
       ("re2" ,re2)
       ("xnnpack" ,xnnpack)
       ("vulkan-headers" ,vulkan-headers)))
     (list abseil-cpp
           cpuinfo
           eigen
           fp16
           flatbuffers-23.5
           gemmlowp
           mesa-headers
           neon2sse
           nsync
           opencl-clhpp
           opencl-headers
           opencl-icd-loader
           pthreadpool
           python
           python-ml-dtypes
           ruy
           re2
           xnnpack
           vulkan-headers))
    (native-inputs
     `(("pkg-config" ,pkg-config)
       ("googletest" ,googletest)

D gnu/packages/patches/tensorflow-lite-unbundle.patch => gnu/packages/patches/tensorflow-lite-unbundle.patch +0 -27
@@ 1,27 0,0 @@
Disable local CMake build code for bundled 3rdparty components.

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 $<BUILD_INTERFACE:${TENSORFLOW_SOURCE_DIR}> $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
-  ${CMAKE_BINARY_DIR}/gemmlowp
+  ${gemmlowp_ROOT}/include/gemmlowp
 )
 target_link_libraries(tensorflow-lite
   PUBLIC
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,6 @@
 include(gemmlowp)
 if(gemmlowp_POPULATED)
   set(GEMMLOWP_FOUND TRUE)
-  get_target_property(GEMMLOWP_INCLUDE_DIRS gemmlowp INTERFACE_DIRECTORIES)
   set(GEMMLOWP_LIBRARIES
     gemmlowp
     gemmlowp_fixedpoint

M gnu/packages/serialization.scm => gnu/packages/serialization.scm +1 -1
@@ 932,7 932,7 @@ game development and other performance-critical applications.")
  (hidden-package
   (package
     (inherit flatbuffers)
     ;; needed explicitly by onnxruntime
     ;; needed explicitly by onnxruntime and tensorflow-lite@2.14.0
     (version "23.5.26")
     (source
      (origin