* [Buildroot] [PATCH v6 01/10] package/cpuinfo: new package
@ 2023-03-16 8:34 James Hilliard
2023-03-16 8:34 ` [Buildroot] [PATCH v6 02/10] package/ruy: " James Hilliard
` (8 more replies)
0 siblings, 9 replies; 12+ messages in thread
From: James Hilliard @ 2023-03-16 8:34 UTC (permalink / raw)
To: buildroot; +Cc: Stefan Hager, James Hilliard, Samuel Martin, Thomas Petazzoni
From: Stefan Hager <stefan.hager@ginzinger.com>
This package is required by tensorflow-lite.
Add a patch removing cpp requirement when not building tests.
Tested-by: Stefan Hager <stefan.hager@ginzinger.com>
Signed-off-by: Stefan Hager <stefan.hager@ginzinger.com>
Signed-off-by: James Hilliard <james.hilliard1@gmail.com>
---
Changes v5 -> v6:
- update patch to latest pull request version
- add architecture restrictions
- update to latest commit
Changes v4 -> v5:
- don't require cpp
Changes v2 -> v3:
- move to libraries->hardware handling
---
DEVELOPERS | 3 ++
package/Config.in | 1 +
...nly-when-needed-for-tests-benchmarks.patch | 41 +++++++++++++++++++
package/cpuinfo/Config.in | 17 ++++++++
package/cpuinfo/cpuinfo.hash | 4 ++
package/cpuinfo/cpuinfo.mk | 17 ++++++++
6 files changed, 83 insertions(+)
create mode 100644 package/cpuinfo/0001-Enable-CXX-only-when-needed-for-tests-benchmarks.patch
create mode 100644 package/cpuinfo/Config.in
create mode 100644 package/cpuinfo/cpuinfo.hash
create mode 100644 package/cpuinfo/cpuinfo.mk
diff --git a/DEVELOPERS b/DEVELOPERS
index b6d288c54f..8ec32087a1 100644
--- a/DEVELOPERS
+++ b/DEVELOPERS
@@ -2685,6 +2685,9 @@ F: package/libvpx/
F: package/mesa3d-demos/
F: package/ti-gfx/
+N: Stefan Hager <stefan.hager@ginzinger.com>
+F: package/cpuinfo/
+
N: Stefan Ott <stefan@ott.net>
F: package/unbound/
diff --git a/package/Config.in b/package/Config.in
index 0f8dab3e71..60d6a115e0 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -1664,6 +1664,7 @@ menu "Hardware handling"
source "package/bcm2835/Config.in"
source "package/c-periphery/Config.in"
source "package/ccid/Config.in"
+ source "package/cpuinfo/Config.in"
source "package/dtc/Config.in"
source "package/gnu-efi/Config.in"
source "package/hackrf/Config.in"
diff --git a/package/cpuinfo/0001-Enable-CXX-only-when-needed-for-tests-benchmarks.patch b/package/cpuinfo/0001-Enable-CXX-only-when-needed-for-tests-benchmarks.patch
new file mode 100644
index 0000000000..7aeef0edc0
--- /dev/null
+++ b/package/cpuinfo/0001-Enable-CXX-only-when-needed-for-tests-benchmarks.patch
@@ -0,0 +1,41 @@
+From 66dbf4fbe202318860caeab3b1ef9c2fe70e2c4c Mon Sep 17 00:00:00 2001
+From: James Hilliard <james.hilliard1@gmail.com>
+Date: Sun, 29 Jan 2023 16:55:08 -0700
+Subject: [PATCH] Enable CXX only when needed for tests/benchmarks
+
+Signed-off-by: James Hilliard <james.hilliard1@gmail.com>
+[Upstream status:
+https://github.com/pytorch/cpuinfo/pull/133]
+---
+ CMakeLists.txt | 8 +++++++-
+ 1 file changed, 7 insertions(+), 1 deletion(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 9f4d1d1..9e1c153 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -3,7 +3,7 @@ CMAKE_MINIMUM_REQUIRED(VERSION 3.5 FATAL_ERROR)
+ # ---[ Setup project
+ PROJECT(
+ cpuinfo
+- LANGUAGES C CXX
++ LANGUAGES C
+ )
+
+ # ---[ Options.
+@@ -103,6 +103,12 @@ ELSEIF(NOT CMAKE_SYSTEM_NAME MATCHES "^(Windows|WindowsStore|CYGWIN|MSYS|Darwin|
+ ENDIF()
+ ENDIF()
+
++IF(CPUINFO_SUPPORTED_PLATFORM)
++ IF(CPUINFO_BUILD_MOCK_TESTS OR CPUINFO_BUILD_UNIT_TESTS OR CPUINFO_BUILD_BENCHMARKS)
++ ENABLE_LANGUAGE(CXX)
++ ENDIF()
++ENDIF()
++
+ # ---[ Download deps
+ SET(CONFU_DEPENDENCIES_SOURCE_DIR ${CMAKE_SOURCE_DIR}/deps
+ CACHE PATH "Confu-style dependencies source directory")
+--
+2.34.1
+
diff --git a/package/cpuinfo/Config.in b/package/cpuinfo/Config.in
new file mode 100644
index 0000000000..257480f068
--- /dev/null
+++ b/package/cpuinfo/Config.in
@@ -0,0 +1,17 @@
+config BR2_PACKAGE_CPUINFO_ARCH_SUPPORTS
+ bool
+ default y if BR2_aarch64
+ default y if BR2_arm
+ default y if BR2_i386
+ default y if BR2_x86_64
+
+config BR2_PACKAGE_CPUINFO
+ bool "cpuinfo"
+ depends on BR2_PACKAGE_CPUINFO_ARCH_SUPPORTS
+ depends on BR2_TOOLCHAIN_HAS_THREADS
+ help
+ CPU INFOrmation library, cpuinfo is a library to detect
+ essential for performance optimization information about
+ host CPU.
+
+ https://github.com/pytorch/cpuinfo
diff --git a/package/cpuinfo/cpuinfo.hash b/package/cpuinfo/cpuinfo.hash
new file mode 100644
index 0000000000..7dd0d57172
--- /dev/null
+++ b/package/cpuinfo/cpuinfo.hash
@@ -0,0 +1,4 @@
+# Locally calculated
+sha256 cf243e7ac07cd5e2ac58dcb29f8a9047b7887452212aead2ddf1ceda45cc66dd cpuinfo-eb4a6674bfe9cf91b63b9817412ae5f6862c8432.tar.gz
+# License files, locally calculated
+sha256 8e7e60636c3aa0cb03571a1a841ce5697f9551ff92b3c426c2561613d15ade70 LICENSE
diff --git a/package/cpuinfo/cpuinfo.mk b/package/cpuinfo/cpuinfo.mk
new file mode 100644
index 0000000000..d59513eea3
--- /dev/null
+++ b/package/cpuinfo/cpuinfo.mk
@@ -0,0 +1,17 @@
+################################################################################
+#
+# cpuinfo
+#
+################################################################################
+
+CPUINFO_VERSION = eb4a6674bfe9cf91b63b9817412ae5f6862c8432
+CPUINFO_SITE = $(call github,pytorch,cpuinfo,$(CPUINFO_VERSION))
+CPUINFO_LICENSE = BSD-2-Clause
+CPUINFO_LICENSE_FILES = LICENSE
+CPUINFO_INSTALL_STAGING = YES
+CPUINFO_CONF_OPTS = \
+ -DCPUINFO_BUILD_UNIT_TESTS=OFF \
+ -DCPUINFO_BUILD_MOCK_TESTS=OFF \
+ -DCPUINFO_BUILD_BENCHMARKS=OFF
+
+$(eval $(cmake-package))
--
2.34.1
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [Buildroot] [PATCH v6 02/10] package/ruy: new package
2023-03-16 8:34 [Buildroot] [PATCH v6 01/10] package/cpuinfo: new package James Hilliard
@ 2023-03-16 8:34 ` James Hilliard
2023-03-16 8:34 ` [Buildroot] [PATCH v6 03/10] package/gemmlowp: " James Hilliard
` (7 subsequent siblings)
8 siblings, 0 replies; 12+ messages in thread
From: James Hilliard @ 2023-03-16 8:34 UTC (permalink / raw)
To: buildroot; +Cc: Stefan Hager, James Hilliard, Samuel Martin, Thomas Petazzoni
From: Stefan Hager <stefan.hager@ginzinger.com>
This package is required by tensorflow-lite.
Tested-by: Stefan Hager <stefan.hager@ginzinger.com>
Signed-off-by: Stefan Hager <stefan.hager@ginzinger.com>
Signed-off-by: James Hilliard <james.hilliard1@gmail.com>
---
Changes v5 -> v6:
- add architecture dependency
- update to latest version
Changes v2 -> v3:
- add C++14 dependency
---
DEVELOPERS | 1 +
package/Config.in | 1 +
package/ruy/Config.in | 22 ++++++++++++++++++++++
package/ruy/ruy.hash | 4 ++++
package/ruy/ruy.mk | 18 ++++++++++++++++++
5 files changed, 46 insertions(+)
create mode 100644 package/ruy/Config.in
create mode 100644 package/ruy/ruy.hash
create mode 100644 package/ruy/ruy.mk
diff --git a/DEVELOPERS b/DEVELOPERS
index 8ec32087a1..c338125a53 100644
--- a/DEVELOPERS
+++ b/DEVELOPERS
@@ -2687,6 +2687,7 @@ F: package/ti-gfx/
N: Stefan Hager <stefan.hager@ginzinger.com>
F: package/cpuinfo/
+F: package/ruy/
N: Stefan Ott <stefan@ott.net>
F: package/unbound/
diff --git a/package/Config.in b/package/Config.in
index 60d6a115e0..7ff1bfb088 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -2146,6 +2146,7 @@ endif
source "package/qlibc/Config.in"
source "package/reproc/Config.in"
source "package/riemann-c-client/Config.in"
+ source "package/ruy/Config.in"
source "package/shapelib/Config.in"
source "package/skalibs/Config.in"
source "package/sphinxbase/Config.in"
diff --git a/package/ruy/Config.in b/package/ruy/Config.in
new file mode 100644
index 0000000000..cc137a403c
--- /dev/null
+++ b/package/ruy/Config.in
@@ -0,0 +1,22 @@
+config BR2_PACKAGE_RUY_ARCH_SUPPORTS
+ bool
+ default y if BR2_PACKAGE_CPUINFO_ARCH_SUPPORTS
+
+config BR2_PACKAGE_RUY
+ bool "ruy"
+ depends on BR2_PACKAGE_CPUINFO_ARCH_SUPPORTS
+ depends on BR2_INSTALL_LIBSTDCPP
+ depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # C++14
+ depends on BR2_TOOLCHAIN_HAS_THREADS # cpuinfo
+ select BR2_PACKAGE_CPUINFO
+ help
+ Ruy is a matrix multiplication library. Its focus is to cover
+ the matrix multiplication needs of neural network inference
+ engines. Its initial user has been TensorFlow Lite, where it
+ is used by default on the ARM CPU architecture.
+
+ https://github.com/google/ruy
+
+comment "ruy needs a toolchain w/ C++14, threads"
+ depends on !BR2_INSTALL_LIBSTDCPP || \
+ !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 || !BR2_TOOLCHAIN_HAS_THREADS
diff --git a/package/ruy/ruy.hash b/package/ruy/ruy.hash
new file mode 100644
index 0000000000..675b457b1c
--- /dev/null
+++ b/package/ruy/ruy.hash
@@ -0,0 +1,4 @@
+# Locally calculated
+sha256 e151a5b55059a6e83ded001787e1a8889ba1e5e4eaa5bc836b9b660e7e1cb519 ruy-21a85fef159f9942f636a43b14c64b481c2a05b2.tar.gz
+# License files, locally calculated
+sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 LICENSE
diff --git a/package/ruy/ruy.mk b/package/ruy/ruy.mk
new file mode 100644
index 0000000000..1e8141f91b
--- /dev/null
+++ b/package/ruy/ruy.mk
@@ -0,0 +1,18 @@
+################################################################################
+#
+# ruy
+#
+################################################################################
+
+RUY_VERSION = 21a85fef159f9942f636a43b14c64b481c2a05b2
+RUY_SITE = $(call github,google,ruy,$(RUY_VERSION))
+RUY_LICENSE = Apache-2.0
+RUY_LICENSE_FILES = LICENSE
+RUY_INSTALL_STAGING = YES
+RUY_DEPENDENCIES = cpuinfo
+RUY_CONF_OPTS = \
+ -DCMAKE_POSITION_INDEPENDENT_CODE=ON \
+ -DRUY_FIND_CPUINFO=ON \
+ -DRUY_MINIMAL_BUILD=ON
+
+$(eval $(cmake-package))
--
2.34.1
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [Buildroot] [PATCH v6 03/10] package/gemmlowp: new package
2023-03-16 8:34 [Buildroot] [PATCH v6 01/10] package/cpuinfo: new package James Hilliard
2023-03-16 8:34 ` [Buildroot] [PATCH v6 02/10] package/ruy: " James Hilliard
@ 2023-03-16 8:34 ` James Hilliard
2023-03-16 8:34 ` [Buildroot] [PATCH v6 04/10] package/pthreadpool: " James Hilliard
` (6 subsequent siblings)
8 siblings, 0 replies; 12+ messages in thread
From: James Hilliard @ 2023-03-16 8:34 UTC (permalink / raw)
To: buildroot; +Cc: Stefan Hager, James Hilliard, Samuel Martin, Thomas Petazzoni
From: Stefan Hager <stefan.hager@ginzinger.com>
This package is required by tensorflow-lite.
Tested-by: Stefan Hager <stefan.hager@ginzinger.com>
Signed-off-by: Stefan Hager <stefan.hager@ginzinger.com>
Signed-off-by: James Hilliard <james.hilliard1@gmail.com>
---
Changes v4 -> v5:
- add comment indicating library is header only
Changes v2 -> v3:
- add C++11 dependency
---
DEVELOPERS | 1 +
package/Config.in | 1 +
package/gemmlowp/Config.in | 12 ++++++++++++
package/gemmlowp/gemmlowp.hash | 4 ++++
package/gemmlowp/gemmlowp.mk | 16 ++++++++++++++++
5 files changed, 34 insertions(+)
create mode 100644 package/gemmlowp/Config.in
create mode 100644 package/gemmlowp/gemmlowp.hash
create mode 100644 package/gemmlowp/gemmlowp.mk
diff --git a/DEVELOPERS b/DEVELOPERS
index c338125a53..40df433fbc 100644
--- a/DEVELOPERS
+++ b/DEVELOPERS
@@ -2687,6 +2687,7 @@ F: package/ti-gfx/
N: Stefan Hager <stefan.hager@ginzinger.com>
F: package/cpuinfo/
+F: package/gemmlowp/
F: package/ruy/
N: Stefan Ott <stefan@ott.net>
diff --git a/package/Config.in b/package/Config.in
index 7ff1bfb088..f506d79b0b 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -2039,6 +2039,7 @@ menu "Other"
source "package/fxdiv/Config.in"
source "package/gconf/Config.in"
source "package/gdal/Config.in"
+ source "package/gemmlowp/Config.in"
source "package/gflags/Config.in"
source "package/gli/Config.in"
source "package/glibmm/Config.in"
diff --git a/package/gemmlowp/Config.in b/package/gemmlowp/Config.in
new file mode 100644
index 0000000000..379450d1b0
--- /dev/null
+++ b/package/gemmlowp/Config.in
@@ -0,0 +1,12 @@
+config BR2_PACKAGE_GEMMLOWP
+ bool "gemmlowp"
+ depends on BR2_INSTALL_LIBSTDCPP
+ depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 # C++11
+ help
+ Low-precision matrix multiplication.
+
+ https://github.com/google/gemmlowp
+
+comment "gemmlowp needs a toolchain w/ C++11"
+ depends on !BR2_INSTALL_LIBSTDCPP || \
+ !BR2_TOOLCHAIN_GCC_AT_LEAST_4_8
diff --git a/package/gemmlowp/gemmlowp.hash b/package/gemmlowp/gemmlowp.hash
new file mode 100644
index 0000000000..7c56a18bb6
--- /dev/null
+++ b/package/gemmlowp/gemmlowp.hash
@@ -0,0 +1,4 @@
+# Locally calculated
+sha256 cc8a22b6f071c3781e6b4b72654c89b1cdc198e72ebadebb17638eac205344c1 gemmlowp-08e4bb339e34017a0835269d4a37c4ea04d15a69.tar.gz
+# License files, locally calculated
+sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 LICENSE
diff --git a/package/gemmlowp/gemmlowp.mk b/package/gemmlowp/gemmlowp.mk
new file mode 100644
index 0000000000..9489dccbe5
--- /dev/null
+++ b/package/gemmlowp/gemmlowp.mk
@@ -0,0 +1,16 @@
+################################################################################
+#
+# gemmlowp
+#
+################################################################################
+
+GEMMLOWP_VERSION = 08e4bb339e34017a0835269d4a37c4ea04d15a69
+GEMMLOWP_SITE = $(call github,google,gemmlowp,$(GEMMLOWP_VERSION))
+GEMMLOWP_LICENSE = Apache-2.0
+GEMMLOWP_LICENSE_FILES = LICENSE
+GEMMLOWP_INSTALL_STAGING = YES
+# Only installs a header
+GEMMLOWP_INSTALL_TARGET = NO
+GEMMLOWP_SUBDIR = contrib
+
+$(eval $(cmake-package))
--
2.34.1
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [Buildroot] [PATCH v6 04/10] package/pthreadpool: new package
2023-03-16 8:34 [Buildroot] [PATCH v6 01/10] package/cpuinfo: new package James Hilliard
2023-03-16 8:34 ` [Buildroot] [PATCH v6 02/10] package/ruy: " James Hilliard
2023-03-16 8:34 ` [Buildroot] [PATCH v6 03/10] package/gemmlowp: " James Hilliard
@ 2023-03-16 8:34 ` James Hilliard
2023-03-16 8:34 ` [Buildroot] [PATCH v6 05/10] package/psimd: " James Hilliard
` (5 subsequent siblings)
8 siblings, 0 replies; 12+ messages in thread
From: James Hilliard @ 2023-03-16 8:34 UTC (permalink / raw)
To: buildroot; +Cc: Stefan Hager, James Hilliard, Samuel Martin, Thomas Petazzoni
This package is required by tensorflow-lite.
Signed-off-by: James Hilliard <james.hilliard1@gmail.com>
---
Changes v5 -> v6:
- update to latest version
---
DEVELOPERS | 1 +
package/Config.in | 1 +
package/pthreadpool/Config.in | 8 +++++++
package/pthreadpool/pthreadpool.hash | 4 ++++
package/pthreadpool/pthreadpool.mk | 33 ++++++++++++++++++++++++++++
5 files changed, 47 insertions(+)
create mode 100644 package/pthreadpool/Config.in
create mode 100644 package/pthreadpool/pthreadpool.hash
create mode 100644 package/pthreadpool/pthreadpool.mk
diff --git a/DEVELOPERS b/DEVELOPERS
index 40df433fbc..b0cabbc4f4 100644
--- a/DEVELOPERS
+++ b/DEVELOPERS
@@ -2688,6 +2688,7 @@ F: package/ti-gfx/
N: Stefan Hager <stefan.hager@ginzinger.com>
F: package/cpuinfo/
F: package/gemmlowp/
+F: package/pthreadpool/
F: package/ruy/
N: Stefan Ott <stefan@ott.net>
diff --git a/package/Config.in b/package/Config.in
index f506d79b0b..6dafc7cb5c 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -2143,6 +2143,7 @@ endif
source "package/protobuf/Config.in"
source "package/protobuf-c/Config.in"
source "package/protozero/Config.in"
+ source "package/pthreadpool/Config.in"
source "package/qhull/Config.in"
source "package/qlibc/Config.in"
source "package/reproc/Config.in"
diff --git a/package/pthreadpool/Config.in b/package/pthreadpool/Config.in
new file mode 100644
index 0000000000..194ae33f85
--- /dev/null
+++ b/package/pthreadpool/Config.in
@@ -0,0 +1,8 @@
+config BR2_PACKAGE_PTHREADPOOL
+ bool "pthreadpool"
+ select BR2_PACKAGE_FXDIV
+ help
+ Pthreadpool is a portable and efficient thread pool
+ implementation.
+
+ https://github.com/Maratyszcza/pthreadpool
diff --git a/package/pthreadpool/pthreadpool.hash b/package/pthreadpool/pthreadpool.hash
new file mode 100644
index 0000000000..8f15132595
--- /dev/null
+++ b/package/pthreadpool/pthreadpool.hash
@@ -0,0 +1,4 @@
+# Locally calculated
+sha256 6b0018ce7c926b718ed3ecbed1e48c8a083df60529b33ef2c7232260d3c32f61 pthreadpool-edeb5d6b967bef092ff195ab40e216fa5ac11f61.tar.gz
+# License files, locally calculated
+sha256 57814a606b4d0fb087d9a534919084b6c11b58a4174cb5a4aef200187780dc3a LICENSE
diff --git a/package/pthreadpool/pthreadpool.mk b/package/pthreadpool/pthreadpool.mk
new file mode 100644
index 0000000000..75327951df
--- /dev/null
+++ b/package/pthreadpool/pthreadpool.mk
@@ -0,0 +1,33 @@
+################################################################################
+#
+# pthreadpool
+#
+################################################################################
+
+PTHREADPOOL_VERSION = edeb5d6b967bef092ff195ab40e216fa5ac11f61
+PTHREADPOOL_SITE = $(call github,Maratyszcza,pthreadpool,$(PTHREADPOOL_VERSION))
+PTHREADPOOL_LICENSE = BSD-2-Clause
+PTHREADPOOL_LICENSE_FILES = LICENSE
+PTHREADPOOL_INSTALL_STAGING = YES
+PTHREADPOOL_DEPENDENCIES = fxdiv
+
+PTHREADPOOL_CFLAGS = $(TARGET_CFLAGS)
+PTHREADPOOL_CXXFLAGS = $(TARGET_CXXFLAGS)
+
+ifeq ($(BR2_PACKAGE_CPUINFO),y)
+PTHREADPOOL_DEPENDENCIES += cpuinfo
+PTHREADPOOL_CFLAGS += -DPTHREADPOOL_USE_CPUINFO=1
+PTHREADPOOL_CXXFLAGS += -DPTHREADPOOL_USE_CPUINFO=1
+else
+PTHREADPOOL_CFLAGS += -DPTHREADPOOL_USE_CPUINFO=0
+PTHREADPOOL_CXXFLAGS += -DPTHREADPOOL_USE_CPUINFO=0
+endif
+
+PTHREADPOOL_CONF_OPTS = \
+ -DCMAKE_C_FLAGS="$(PTHREADPOOL_CFLAGS)" \
+ -DCMAKE_CXX_FLAGS="$(PTHREADPOOL_CXXFLAGS)" \
+ -DFXDIV_SOURCE_DIR="$(FXDIV_DIR)" \
+ -DPTHREADPOOL_BUILD_TESTS=OFF \
+ -DPTHREADPOOL_BUILD_BENCHMARKS=OFF
+
+$(eval $(cmake-package))
--
2.34.1
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [Buildroot] [PATCH v6 05/10] package/psimd: new package
2023-03-16 8:34 [Buildroot] [PATCH v6 01/10] package/cpuinfo: new package James Hilliard
` (2 preceding siblings ...)
2023-03-16 8:34 ` [Buildroot] [PATCH v6 04/10] package/pthreadpool: " James Hilliard
@ 2023-03-16 8:34 ` James Hilliard
2023-03-16 8:34 ` [Buildroot] [PATCH v6 06/10] package/fp16: " James Hilliard
` (4 subsequent siblings)
8 siblings, 0 replies; 12+ messages in thread
From: James Hilliard @ 2023-03-16 8:34 UTC (permalink / raw)
To: buildroot; +Cc: Stefan Hager, James Hilliard, Samuel Martin, Thomas Petazzoni
This package is required by tensorflow-lite.
Signed-off-by: James Hilliard <james.hilliard1@gmail.com>
---
Changes v4 -> v5:
- add comment indicating library is header only
---
DEVELOPERS | 1 +
package/Config.in | 1 +
package/psimd/Config.in | 6 ++++++
package/psimd/psimd.hash | 4 ++++
package/psimd/psimd.mk | 15 +++++++++++++++
5 files changed, 27 insertions(+)
create mode 100644 package/psimd/Config.in
create mode 100644 package/psimd/psimd.hash
create mode 100644 package/psimd/psimd.mk
diff --git a/DEVELOPERS b/DEVELOPERS
index b0cabbc4f4..24c571544d 100644
--- a/DEVELOPERS
+++ b/DEVELOPERS
@@ -2688,6 +2688,7 @@ F: package/ti-gfx/
N: Stefan Hager <stefan.hager@ginzinger.com>
F: package/cpuinfo/
F: package/gemmlowp/
+F: package/psimd/
F: package/pthreadpool/
F: package/ruy/
diff --git a/package/Config.in b/package/Config.in
index 6dafc7cb5c..ac9241f18b 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -2143,6 +2143,7 @@ endif
source "package/protobuf/Config.in"
source "package/protobuf-c/Config.in"
source "package/protozero/Config.in"
+ source "package/psimd/Config.in"
source "package/pthreadpool/Config.in"
source "package/qhull/Config.in"
source "package/qlibc/Config.in"
diff --git a/package/psimd/Config.in b/package/psimd/Config.in
new file mode 100644
index 0000000000..c5c51ca2ef
--- /dev/null
+++ b/package/psimd/Config.in
@@ -0,0 +1,6 @@
+config BR2_PACKAGE_PSIMD
+ bool "psimd"
+ help
+ Portable 128-bit SIMD intrinsics.
+
+ https://github.com/Maratyszcza/psimd
diff --git a/package/psimd/psimd.hash b/package/psimd/psimd.hash
new file mode 100644
index 0000000000..5692e79bd6
--- /dev/null
+++ b/package/psimd/psimd.hash
@@ -0,0 +1,4 @@
+# Locally calculated
+sha256 f6c4dab91ae9a03b3019e7cab0572743afd0e1b6e75b97fcca50259c737c924e psimd-072586a71b55b7f8c584153d223e95687148a900.tar.gz
+# License files, locally calculated
+sha256 984ce1e0b8ee89d234e28b960381f240e03a07a8031f35012f9c3256f56964e2 LICENSE
diff --git a/package/psimd/psimd.mk b/package/psimd/psimd.mk
new file mode 100644
index 0000000000..be0090a32f
--- /dev/null
+++ b/package/psimd/psimd.mk
@@ -0,0 +1,15 @@
+################################################################################
+#
+# psimd
+#
+################################################################################
+
+PSIMD_VERSION = 072586a71b55b7f8c584153d223e95687148a900
+PSIMD_SITE = $(call github,Maratyszcza,psimd,$(PSIMD_VERSION))
+PSIMD_LICENSE = MIT
+PSIMD_LICENSE_FILES = LICENSE
+PSIMD_INSTALL_STAGING = YES
+# Only installs a header
+PSIMD_INSTALL_TARGET = NO
+
+$(eval $(cmake-package))
--
2.34.1
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [Buildroot] [PATCH v6 06/10] package/fp16: new package
2023-03-16 8:34 [Buildroot] [PATCH v6 01/10] package/cpuinfo: new package James Hilliard
` (3 preceding siblings ...)
2023-03-16 8:34 ` [Buildroot] [PATCH v6 05/10] package/psimd: " James Hilliard
@ 2023-03-16 8:34 ` James Hilliard
2023-03-16 8:34 ` [Buildroot] [PATCH v6 07/10] package/xnnpack: " James Hilliard
` (3 subsequent siblings)
8 siblings, 0 replies; 12+ messages in thread
From: James Hilliard @ 2023-03-16 8:34 UTC (permalink / raw)
To: buildroot; +Cc: Stefan Hager, James Hilliard, Samuel Martin, Thomas Petazzoni
This package is required by tensorflow-lite.
We need to add a patch to remove the c++ requirement.
Signed-off-by: James Hilliard <james.hilliard1@gmail.com>
---
Changes v5 -> v6:
- add patch fixing build without c++
Changes v4 -> v5:
- add comment indicating library is header only
---
DEVELOPERS | 1 +
package/Config.in | 1 +
...le-CXX-unless-building-tests-benchma.patch | 48 +++++++++++++++++++
package/fp16/Config.in | 8 ++++
package/fp16/fp16.hash | 4 ++
package/fp16/fp16.mk | 20 ++++++++
6 files changed, 82 insertions(+)
create mode 100644 package/fp16/0001-CMake-don-t-enable-CXX-unless-building-tests-benchma.patch
create mode 100644 package/fp16/Config.in
create mode 100644 package/fp16/fp16.hash
create mode 100644 package/fp16/fp16.mk
diff --git a/DEVELOPERS b/DEVELOPERS
index 24c571544d..12b33c5fbc 100644
--- a/DEVELOPERS
+++ b/DEVELOPERS
@@ -2687,6 +2687,7 @@ F: package/ti-gfx/
N: Stefan Hager <stefan.hager@ginzinger.com>
F: package/cpuinfo/
+F: package/fp16/
F: package/gemmlowp/
F: package/psimd/
F: package/pthreadpool/
diff --git a/package/Config.in b/package/Config.in
index ac9241f18b..4878e8ba2f 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -2036,6 +2036,7 @@ menu "Other"
source "package/flann/Config.in"
source "package/flatbuffers/Config.in"
source "package/flatcc/Config.in"
+ source "package/fp16/Config.in"
source "package/fxdiv/Config.in"
source "package/gconf/Config.in"
source "package/gdal/Config.in"
diff --git a/package/fp16/0001-CMake-don-t-enable-CXX-unless-building-tests-benchma.patch b/package/fp16/0001-CMake-don-t-enable-CXX-unless-building-tests-benchma.patch
new file mode 100644
index 0000000000..b3c5219d59
--- /dev/null
+++ b/package/fp16/0001-CMake-don-t-enable-CXX-unless-building-tests-benchma.patch
@@ -0,0 +1,48 @@
+From eba14b5277ed8f155eb333f4bbe9f99366e3dece Mon Sep 17 00:00:00 2001
+From: James Hilliard <james.hilliard1@gmail.com>
+Date: Sun, 29 Jan 2023 21:43:50 -0700
+Subject: [PATCH] CMake: don't enable CXX unless building tests/benchmarks
+
+We only need CXX support when building tests/benchmarks.
+
+Fixes:
+CMake Error at CMakeLists.txt:6 (PROJECT):
+ No CMAKE_CXX_COMPILER could be found.
+
+ Tell CMake where to find the compiler by setting either the environment
+ variable "CXX" or the CMake cache entry CMAKE_CXX_COMPILER to the full path
+ to the compiler, or to the compiler name if it is in the PATH.
+
+Signed-off-by: James Hilliard <james.hilliard1@gmail.com>
+[Upstream status:
+https://github.com/Maratyszcza/FP16/pull/22]
+---
+ CMakeLists.txt | 6 +++++-
+ 1 file changed, 5 insertions(+), 1 deletion(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 5e7d127..8028c07 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -3,13 +3,17 @@ CMAKE_MINIMUM_REQUIRED(VERSION 2.8.12 FATAL_ERROR)
+ INCLUDE(GNUInstallDirs)
+
+ # ---[ Project
+-PROJECT(FP16 C CXX)
++PROJECT(FP16 C)
+
+ # ---[ Options.
+ OPTION(FP16_BUILD_TESTS "Build FP16 unit tests" ON)
+ OPTION(FP16_BUILD_BENCHMARKS "Build FP16 micro-benchmarks" ON)
+
+ # ---[ CMake options
++IF(FP16_BUILD_TESTS OR FP16_BUILD_BENCHMARKS)
++ ENABLE_LANGUAGE(CXX)
++ENDIF()
++
+ IF(FP16_BUILD_TESTS)
+ ENABLE_TESTING()
+ ENDIF()
+--
+2.34.1
+
diff --git a/package/fp16/Config.in b/package/fp16/Config.in
new file mode 100644
index 0000000000..e07c6ebb8a
--- /dev/null
+++ b/package/fp16/Config.in
@@ -0,0 +1,8 @@
+config BR2_PACKAGE_FP16
+ bool "fp16"
+ select BR2_PACKAGE_PSIMD
+ help
+ Header-only library for conversion to/from half-precision
+ floating point formats.
+
+ https://github.com/Maratyszcza/FP16
diff --git a/package/fp16/fp16.hash b/package/fp16/fp16.hash
new file mode 100644
index 0000000000..63634eb2cf
--- /dev/null
+++ b/package/fp16/fp16.hash
@@ -0,0 +1,4 @@
+# Locally calculated
+sha256 a91f4770ff9c39f4d72e339c379f566b3bbb359fa66122d85fc0bae3dde7abc7 fp16-0a92994d729ff76a58f692d3028ca1b64b145d91.tar.gz
+# License files, locally calculated
+sha256 17e4f539024be2749ee729d1e2f01d24cef12ece8c9bf18e91a4349be29c80bf LICENSE
diff --git a/package/fp16/fp16.mk b/package/fp16/fp16.mk
new file mode 100644
index 0000000000..80710523fb
--- /dev/null
+++ b/package/fp16/fp16.mk
@@ -0,0 +1,20 @@
+################################################################################
+#
+# fp16
+#
+################################################################################
+
+FP16_VERSION = 0a92994d729ff76a58f692d3028ca1b64b145d91
+FP16_SITE = $(call github,Maratyszcza,FP16,$(FP16_VERSION))
+FP16_LICENSE = MIT
+FP16_LICENSE_FILES = LICENSE
+FP16_INSTALL_STAGING = YES
+# Only installs a header
+FP16_INSTALL_TARGET = NO
+FP16_DEPENDENCIES = psimd
+FP16_CONF_OPTS = \
+ -DFP16_BUILD_TESTS=OFF \
+ -DFP16_BUILD_BENCHMARKS=OFF \
+ -DPSIMD_SOURCE_DIR="$(PSIMD_DIR)"
+
+$(eval $(cmake-package))
--
2.34.1
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [Buildroot] [PATCH v6 07/10] package/xnnpack: new package
2023-03-16 8:34 [Buildroot] [PATCH v6 01/10] package/cpuinfo: new package James Hilliard
` (4 preceding siblings ...)
2023-03-16 8:34 ` [Buildroot] [PATCH v6 06/10] package/fp16: " James Hilliard
@ 2023-03-16 8:34 ` James Hilliard
2023-03-16 8:34 ` [Buildroot] [PATCH v6 08/10] package/fft2d: " James Hilliard
` (2 subsequent siblings)
8 siblings, 0 replies; 12+ messages in thread
From: James Hilliard @ 2023-03-16 8:34 UTC (permalink / raw)
To: buildroot; +Cc: Stefan Hager, James Hilliard, Samuel Martin, Thomas Petazzoni
This package is required by tensorflow-lite.
Signed-off-by: James Hilliard <james.hilliard1@gmail.com>
---
Changes v5 -> v6:
- add architecture dependency
- update to latest version
---
DEVELOPERS | 1 +
package/Config.in | 1 +
package/xnnpack/Config.in | 27 +++++++++++++++++++++++++++
package/xnnpack/xnnpack.hash | 4 ++++
package/xnnpack/xnnpack.mk | 18 ++++++++++++++++++
5 files changed, 51 insertions(+)
create mode 100644 package/xnnpack/Config.in
create mode 100644 package/xnnpack/xnnpack.hash
create mode 100644 package/xnnpack/xnnpack.mk
diff --git a/DEVELOPERS b/DEVELOPERS
index 12b33c5fbc..90c0508105 100644
--- a/DEVELOPERS
+++ b/DEVELOPERS
@@ -2692,6 +2692,7 @@ F: package/gemmlowp/
F: package/psimd/
F: package/pthreadpool/
F: package/ruy/
+F: package/xnnpack/
N: Stefan Ott <stefan@ott.net>
F: package/unbound/
diff --git a/package/Config.in b/package/Config.in
index 4878e8ba2f..6f6c5beca8 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -2163,6 +2163,7 @@ endif
source "package/uvw/Config.in"
source "package/volk/Config.in"
source "package/xapian/Config.in"
+ source "package/xnnpack/Config.in"
endmenu
menu "Security"
diff --git a/package/xnnpack/Config.in b/package/xnnpack/Config.in
new file mode 100644
index 0000000000..1b186ac055
--- /dev/null
+++ b/package/xnnpack/Config.in
@@ -0,0 +1,27 @@
+config BR2_PACKAGE_XNNPACK_ARCH_SUPPORTS
+ bool
+ default y if BR2_aarch64
+ default y if BR2_arm
+ default y if BR2_i386
+ default y if BR2_x86_64
+ depends on BR2_PACKAGE_CPUINFO_ARCH_SUPPORTS
+
+config BR2_PACKAGE_XNNPACK
+ bool "xnnpack"
+ depends on BR2_PACKAGE_XNNPACK_ARCH_SUPPORTS
+ depends on BR2_INSTALL_LIBSTDCPP
+ depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # C++14
+ depends on BR2_TOOLCHAIN_HAS_THREADS # cpuinfo
+ select BR2_PACKAGE_CPUINFO
+ select BR2_PACKAGE_FP16
+ select BR2_PACKAGE_FXDIV
+ select BR2_PACKAGE_PTHREADPOOL
+ help
+ XNNPACK is a highly optimized solution for neural network
+ inference on ARM, x86, WebAssembly, and RISC-V platforms.
+
+ https://github.com/google/XNNPACK
+
+comment "xnnpack needs a toolchain w/ C++14, threads"
+ depends on !BR2_INSTALL_LIBSTDCPP || \
+ !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 || !BR2_TOOLCHAIN_HAS_THREADS
diff --git a/package/xnnpack/xnnpack.hash b/package/xnnpack/xnnpack.hash
new file mode 100644
index 0000000000..e31eb690e2
--- /dev/null
+++ b/package/xnnpack/xnnpack.hash
@@ -0,0 +1,4 @@
+# Locally calculated
+sha256 fb519d082e5fcaa11e849386ad00e38b9ebde2cc9363032394516cd0d00295c3 xnnpack-e4b2b942b4a6d84b680ed690fee42ae99865945c.tar.gz
+# License files, locally calculated
+sha256 63f519e15726f4c4f830bd958f694c84fecb4e0a4cacc527d2696bb71ef95ada LICENSE
diff --git a/package/xnnpack/xnnpack.mk b/package/xnnpack/xnnpack.mk
new file mode 100644
index 0000000000..f53f45dc74
--- /dev/null
+++ b/package/xnnpack/xnnpack.mk
@@ -0,0 +1,18 @@
+################################################################################
+#
+# xnnpack
+#
+################################################################################
+
+XNNPACK_VERSION = e4b2b942b4a6d84b680ed690fee42ae99865945c
+XNNPACK_SITE = $(call github,google,XNNPACK,$(XNNPACK_VERSION))
+XNNPACK_LICENSE = BSD-3-Clause
+XNNPACK_LICENSE_FILES = LICENSE
+XNNPACK_INSTALL_STAGING = YES
+XNNPACK_DEPENDENCIES = cpuinfo fp16 fxdiv pthreadpool
+XNNPACK_CONF_OPTS = \
+ -DXNNPACK_BUILD_TESTS=OFF \
+ -DXNNPACK_BUILD_BENCHMARKS=OFF \
+ -DXNNPACK_USE_SYSTEM_LIBS=ON
+
+$(eval $(cmake-package))
--
2.34.1
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [Buildroot] [PATCH v6 08/10] package/fft2d: new package
2023-03-16 8:34 [Buildroot] [PATCH v6 01/10] package/cpuinfo: new package James Hilliard
` (5 preceding siblings ...)
2023-03-16 8:34 ` [Buildroot] [PATCH v6 07/10] package/xnnpack: " James Hilliard
@ 2023-03-16 8:34 ` James Hilliard
2023-03-16 8:34 ` [Buildroot] [PATCH v6 09/10] package/farmhash: " James Hilliard
2023-03-16 8:34 ` [Buildroot] [PATCH v6 10/10] package/tensorflow-lite: " James Hilliard
8 siblings, 0 replies; 12+ messages in thread
From: James Hilliard @ 2023-03-16 8:34 UTC (permalink / raw)
To: buildroot; +Cc: Stefan Hager, James Hilliard, Samuel Martin, Thomas Petazzoni
From: Stefan Hager <stefan.hager@ginzinger.com>
This package is required by tensorflow-lite.
This package doesn't provide a conventional install mechanism so
we need to install it manually.
Tested-by: Stefan Hager <stefan.hager@ginzinger.com>
Signed-off-by: Stefan Hager <stefan.hager@ginzinger.com>
Signed-off-by: James Hilliard <james.hilliard1@gmail.com>
---
Changes v4 -> v5:
- add comment indicating library is header/source only
Changes v3 -> v4:
- fix license
---
DEVELOPERS | 1 +
package/Config.in | 1 +
package/fft2d/Config.in | 7 +++++++
package/fft2d/fft2d.hash | 4 ++++
package/fft2d/fft2d.mk | 23 +++++++++++++++++++++++
5 files changed, 36 insertions(+)
create mode 100644 package/fft2d/Config.in
create mode 100644 package/fft2d/fft2d.hash
create mode 100644 package/fft2d/fft2d.mk
diff --git a/DEVELOPERS b/DEVELOPERS
index 90c0508105..da79dd3022 100644
--- a/DEVELOPERS
+++ b/DEVELOPERS
@@ -2688,6 +2688,7 @@ F: package/ti-gfx/
N: Stefan Hager <stefan.hager@ginzinger.com>
F: package/cpuinfo/
F: package/fp16/
+F: package/fft2d/
F: package/gemmlowp/
F: package/psimd/
F: package/pthreadpool/
diff --git a/package/Config.in b/package/Config.in
index 6f6c5beca8..893d5facdc 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -2032,6 +2032,7 @@ menu "Other"
source "package/elfutils/Config.in"
source "package/ell/Config.in"
source "package/falcosecurity-libs/Config.in"
+ source "package/fft2d/Config.in"
source "package/fftw/Config.in"
source "package/flann/Config.in"
source "package/flatbuffers/Config.in"
diff --git a/package/fft2d/Config.in b/package/fft2d/Config.in
new file mode 100644
index 0000000000..38394f6170
--- /dev/null
+++ b/package/fft2d/Config.in
@@ -0,0 +1,7 @@
+config BR2_PACKAGE_FFT2D
+ bool "fft2d"
+ help
+ This is a package to calculate Discrete Fourier/Cosine/Sine
+ Transforms of 2,3-dimensional sequences of length 2^N.
+
+ http://www.kurims.kyoto-u.ac.jp/~ooura/fft.html
diff --git a/package/fft2d/fft2d.hash b/package/fft2d/fft2d.hash
new file mode 100644
index 0000000000..a1b1a326ae
--- /dev/null
+++ b/package/fft2d/fft2d.hash
@@ -0,0 +1,4 @@
+# Locally calculated
+sha256 ada7e99087c4ed477bfdf11413f2ba8db8a840ba9bbf8ac94f4f3972e2a7cec9 fft2d.tgz
+# License files, locally calculated
+sha256 0b2a2082537735a2a576dbec2e8f9c1a09812eac6df6a389502a6ba860072906 readme2d.txt
diff --git a/package/fft2d/fft2d.mk b/package/fft2d/fft2d.mk
new file mode 100644
index 0000000000..781b545e2e
--- /dev/null
+++ b/package/fft2d/fft2d.mk
@@ -0,0 +1,23 @@
+################################################################################
+#
+# fft2d
+#
+################################################################################
+
+FFT2D_VERSION = 2006.12.28
+FFT2D_SITE = https://www.kurims.kyoto-u.ac.jp/~ooura
+FFT2D_SOURCE = fft2d.tgz
+FFT2D_LICENSE = MIT-like
+FFT2D_LICENSE_FILES = readme2d.txt
+FFT2D_INSTALL_STAGING = YES
+# Only installs headers/sources
+FFT2D_INSTALL_TARGET = NO
+
+define FFT2D_INSTALL_STAGING_CMDS
+ mkdir -p $(STAGING_DIR)/usr/include/fft2d
+ $(INSTALL) -m 0644 $(@D)/*.c $(STAGING_DIR)/usr/include/fft2d
+ $(INSTALL) -m 0644 $(@D)/*.f $(STAGING_DIR)/usr/include/fft2d
+ $(INSTALL) -m 0644 $(@D)/*.h $(STAGING_DIR)/usr/include/fft2d
+endef
+
+$(eval $(generic-package))
--
2.34.1
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [Buildroot] [PATCH v6 09/10] package/farmhash: new package
2023-03-16 8:34 [Buildroot] [PATCH v6 01/10] package/cpuinfo: new package James Hilliard
` (6 preceding siblings ...)
2023-03-16 8:34 ` [Buildroot] [PATCH v6 08/10] package/fft2d: " James Hilliard
@ 2023-03-16 8:34 ` James Hilliard
2023-03-16 8:34 ` [Buildroot] [PATCH v6 10/10] package/tensorflow-lite: " James Hilliard
8 siblings, 0 replies; 12+ messages in thread
From: James Hilliard @ 2023-03-16 8:34 UTC (permalink / raw)
To: buildroot; +Cc: Stefan Hager, James Hilliard, Samuel Martin, Thomas Petazzoni
From: Stefan Hager <stefan.hager@ginzinger.com>
This package is required by tensorflow-lite.
Tested-by: Stefan Hager <stefan.hager@ginzinger.com>
Signed-off-by: Stefan Hager <stefan.hager@ginzinger.com>
Signed-off-by: James Hilliard <james.hilliard1@gmail.com>
---
Changes v2 -> v3:
- add C++11 dependency
---
DEVELOPERS | 1 +
package/Config.in | 1 +
package/farmhash/Config.in | 12 ++++++++++++
package/farmhash/farmhash.hash | 4 ++++
package/farmhash/farmhash.mk | 14 ++++++++++++++
5 files changed, 32 insertions(+)
create mode 100644 package/farmhash/Config.in
create mode 100644 package/farmhash/farmhash.hash
create mode 100644 package/farmhash/farmhash.mk
diff --git a/DEVELOPERS b/DEVELOPERS
index da79dd3022..678c027898 100644
--- a/DEVELOPERS
+++ b/DEVELOPERS
@@ -2687,6 +2687,7 @@ F: package/ti-gfx/
N: Stefan Hager <stefan.hager@ginzinger.com>
F: package/cpuinfo/
+F: package/farmhash/
F: package/fp16/
F: package/fft2d/
F: package/gemmlowp/
diff --git a/package/Config.in b/package/Config.in
index 893d5facdc..8969672e42 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -2032,6 +2032,7 @@ menu "Other"
source "package/elfutils/Config.in"
source "package/ell/Config.in"
source "package/falcosecurity-libs/Config.in"
+ source "package/farmhash/Config.in"
source "package/fft2d/Config.in"
source "package/fftw/Config.in"
source "package/flann/Config.in"
diff --git a/package/farmhash/Config.in b/package/farmhash/Config.in
new file mode 100644
index 0000000000..ef22898774
--- /dev/null
+++ b/package/farmhash/Config.in
@@ -0,0 +1,12 @@
+config BR2_PACKAGE_FARMHASH
+ bool "farmhash"
+ depends on BR2_INSTALL_LIBSTDCPP
+ depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 # C++11
+ help
+ FarmHash, a family of hash functions.
+
+ https://github.com/google/farmhash
+
+comment "farmhash needs a toolchain w/ C++11"
+ depends on !BR2_INSTALL_LIBSTDCPP || \
+ !BR2_TOOLCHAIN_GCC_AT_LEAST_4_8
diff --git a/package/farmhash/farmhash.hash b/package/farmhash/farmhash.hash
new file mode 100644
index 0000000000..afdfc0f994
--- /dev/null
+++ b/package/farmhash/farmhash.hash
@@ -0,0 +1,4 @@
+# Locally calculated
+sha256 18392cf0736e1d62ecbb8d695c31496b6507859e8c75541d7ad0ba092dc52115 farmhash-0d859a811870d10f53a594927d0d0b97573ad06d.tar.gz
+# License files, locally calculated
+sha256 4162dd091caae234f72d3b57e138174f733e736b2430a4c51b098b17d866fcb6 COPYING
diff --git a/package/farmhash/farmhash.mk b/package/farmhash/farmhash.mk
new file mode 100644
index 0000000000..6ab7d1a88b
--- /dev/null
+++ b/package/farmhash/farmhash.mk
@@ -0,0 +1,14 @@
+################################################################################
+#
+# farmhash
+#
+################################################################################
+
+FARMHASH_VERSION = 0d859a811870d10f53a594927d0d0b97573ad06d
+FARMHASH_SITE = $(call github,google,farmhash,$(FARMHASH_VERSION))
+FARMHASH_LICENSE = MIT
+FARMHASH_LICENSE_FILES = COPYING
+FARMHASH_INSTALL_STAGING = YES
+FARMHASH_CONF_ENV += CXXFLAGS="$(TARGET_CXXFLAGS) -std=c++11"
+
+$(eval $(autotools-package))
--
2.34.1
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [Buildroot] [PATCH v6 10/10] package/tensorflow-lite: new package
2023-03-16 8:34 [Buildroot] [PATCH v6 01/10] package/cpuinfo: new package James Hilliard
` (7 preceding siblings ...)
2023-03-16 8:34 ` [Buildroot] [PATCH v6 09/10] package/farmhash: " James Hilliard
@ 2023-03-16 8:34 ` James Hilliard
2023-03-16 14:43 ` [Buildroot] [PATCH v6 10/10] package/tensorflow-lite: new package - enable example Hager Stefan
8 siblings, 1 reply; 12+ messages in thread
From: James Hilliard @ 2023-03-16 8:34 UTC (permalink / raw)
To: buildroot; +Cc: Stefan Hager, James Hilliard, Samuel Martin, Thomas Petazzoni
From: Stefan Hager <stefan.hager@ginzinger.com>
This package adds the tensorflow lite runtime to buildroot.
Tested-by: Stefan Hager <stefan.hager@ginzinger.com>
Signed-off-by: Stefan Hager <stefan.hager@ginzinger.com>
Signed-off-by: James Hilliard <james.hilliard1@gmail.com>
---
Changes v5 -> v6:
- update patches
- add architecture dependency
- backport system farmhash patch
Changes v3 -> v4:
- fix min gcc version
- enable xnnpack
Changes v2 -> v3:
- drop architecture restrictions which appear inaccurate after adding neon-2-sse
- disable android only nnapi
Changes v1 -> v2:
- fix label_image build
- more explicit cmake config
---
DEVELOPERS | 1 +
package/Config.in | 1 +
.../0001-lite-Update-CMakeLists.txt.patch | 49 ++++++++++++
...dd-SYSTEM_FARMHASH-cmake-config-flag.patch | 74 +++++++++++++++++++
.../0003-Fix-FindFlatBuffers-cmake-file.patch | 51 +++++++++++++
...ink-tensorflow-lite-against-gemmlowp.patch | 32 ++++++++
package/tensorflow-lite/Config.in | 36 +++++++++
package/tensorflow-lite/tensorflow-lite.hash | 4 +
package/tensorflow-lite/tensorflow-lite.mk | 59 +++++++++++++++
9 files changed, 307 insertions(+)
create mode 100644 package/tensorflow-lite/0001-lite-Update-CMakeLists.txt.patch
create mode 100644 package/tensorflow-lite/0002-Add-SYSTEM_FARMHASH-cmake-config-flag.patch
create mode 100644 package/tensorflow-lite/0003-Fix-FindFlatBuffers-cmake-file.patch
create mode 100644 package/tensorflow-lite/0004-Don-t-link-tensorflow-lite-against-gemmlowp.patch
create mode 100644 package/tensorflow-lite/Config.in
create mode 100644 package/tensorflow-lite/tensorflow-lite.hash
create mode 100644 package/tensorflow-lite/tensorflow-lite.mk
diff --git a/DEVELOPERS b/DEVELOPERS
index 678c027898..1307949f7a 100644
--- a/DEVELOPERS
+++ b/DEVELOPERS
@@ -2694,6 +2694,7 @@ F: package/gemmlowp/
F: package/psimd/
F: package/pthreadpool/
F: package/ruy/
+F: package/tensorflow-lite/
F: package/xnnpack/
N: Stefan Ott <stefan@ott.net>
diff --git a/package/Config.in b/package/Config.in
index 8969672e42..45fca4f15d 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -2158,6 +2158,7 @@ endif
source "package/sphinxbase/Config.in"
source "package/startup-notification/Config.in"
source "package/tbb/Config.in"
+ source "package/tensorflow-lite/Config.in"
source "package/tinycbor/Config.in"
source "package/tl-expected/Config.in"
source "package/tz/Config.in"
diff --git a/package/tensorflow-lite/0001-lite-Update-CMakeLists.txt.patch b/package/tensorflow-lite/0001-lite-Update-CMakeLists.txt.patch
new file mode 100644
index 0000000000..53b5170681
--- /dev/null
+++ b/package/tensorflow-lite/0001-lite-Update-CMakeLists.txt.patch
@@ -0,0 +1,49 @@
+From 081c2e4e3cf021efb2853a485a18b563e88f6117 Mon Sep 17 00:00:00 2001
+From: Terry Heo <terryheo@google.com>
+Date: Tue, 1 Nov 2022 15:55:30 -0700
+Subject: [PATCH] lite: Update CMakeLists.txt
+
+This changes are needed to build kernel tests.
+
+PiperOrigin-RevId: 485439972
+
+Signed-off-by: James Hilliard <james.hilliard1@gmail.com>
+[james.hilliard1@gmail.com: backport from upstream commit
+081c2e4e3cf021efb2853a485a18b563e88f6117]
+---
+ tensorflow/lite/CMakeLists.txt | 7 ++++++-
+ 1 file changed, 6 insertions(+), 1 deletion(-)
+
+diff --git a/tensorflow/lite/CMakeLists.txt b/tensorflow/lite/CMakeLists.txt
+index 9dfbb4b72f3..fd8b3faf1e2 100644
+--- a/tensorflow/lite/CMakeLists.txt
++++ b/tensorflow/lite/CMakeLists.txt
+@@ -209,6 +209,9 @@ list(FILTER TFLITE_SRCS EXCLUDE REGEX ".*tflite_with_xnnpack\\.cc$")
+ # Exclude Flex related files.
+ list(FILTER TFLITE_SRCS EXCLUDE REGEX ".*with_selected_ops\\.cc$")
+
++# Exclude tensorflow_profiler_logger files.
++list(FILTER TFLITE_SRCS EXCLUDE REGEX ".*tensorflow_profiler_logger\\.cc$")
++
+ if(_TFLITE_ENABLE_MMAP)
+ list(FILTER TFLITE_SRCS EXCLUDE REGEX ".*mmap_allocation_disabled\\.cc$")
+ else()
+@@ -222,6 +225,7 @@ if(NOT "${CMAKE_SYSTEM_NAME}" STREQUAL "iOS")
+ endif()
+ populate_tflite_source_vars("core" TFLITE_CORE_SRCS)
+ populate_tflite_source_vars("core/api" TFLITE_CORE_API_SRCS)
++populate_tflite_source_vars("core/c" TFLITE_CORE_C_SRCS)
+ populate_tflite_source_vars("c" TFLITE_C_SRCS)
+ populate_tflite_source_vars("delegates" TFLITE_DELEGATES_SRCS)
+ if(TFLITE_ENABLE_GPU)
+@@ -483,6 +487,7 @@ endif()
+ # TFLite library
+ set(_ALL_TFLITE_SRCS
+ ${TFLITE_CORE_API_SRCS}
++ ${TFLITE_CORE_C_SRCS}
+ ${TFLITE_CORE_SRCS}
+ ${TFLITE_C_SRCS}
+ ${TFLITE_DELEGATES_FLEX_SRCS}
+--
+2.34.1
+
diff --git a/package/tensorflow-lite/0002-Add-SYSTEM_FARMHASH-cmake-config-flag.patch b/package/tensorflow-lite/0002-Add-SYSTEM_FARMHASH-cmake-config-flag.patch
new file mode 100644
index 0000000000..99db29e354
--- /dev/null
+++ b/package/tensorflow-lite/0002-Add-SYSTEM_FARMHASH-cmake-config-flag.patch
@@ -0,0 +1,74 @@
+From d8451a9048d09692994c40a6f9bc928e70ed79b5 Mon Sep 17 00:00:00 2001
+From: James Hilliard <james.hilliard1@gmail.com>
+Date: Mon, 28 Nov 2022 21:36:34 -0700
+Subject: [PATCH] Add SYSTEM_FARMHASH cmake config flag
+
+Since farmhash does not install a cmake package we need to
+search for the library and headers to use the provided
+version.
+
+Signed-off-by: James Hilliard <james.hilliard1@gmail.com>
+[james.hilliard1@gmail.com: backport from upstream commit
+d8451a9048d09692994c40a6f9bc928e70ed79b5]
+---
+ tensorflow/lite/g3doc/guide/build_cmake.md | 1 +
+ .../tools/cmake/modules/Findfarmhash.cmake | 30 +++++++++++++++----
+ 2 files changed, 26 insertions(+), 5 deletions(-)
+
+diff --git a/tensorflow/lite/g3doc/guide/build_cmake.md b/tensorflow/lite/g3doc/guide/build_cmake.md
+index 6950a365bb8..6de955e70b0 100644
+--- a/tensorflow/lite/g3doc/guide/build_cmake.md
++++ b/tensorflow/lite/g3doc/guide/build_cmake.md
+@@ -81,6 +81,7 @@ variables to point to your library installations.
+ ```sh
+ cmake ../tensorflow_src/tensorflow/lite -DTFLITE_ENABLE_INSTALL=ON \
+ -DCMAKE_FIND_PACKAGE_PREFER_CONFIG=ON \
++ -DSYSTEM_FARMHASH=ON \
+ -Dabsl_DIR=<install path>/lib/cmake/absl \
+ -DEigen3_DIR=<install path>/share/eigen3/cmake \
+ -DFlatbuffers_DIR=<install path>/lib/cmake/flatbuffers \
+diff --git a/tensorflow/lite/tools/cmake/modules/Findfarmhash.cmake b/tensorflow/lite/tools/cmake/modules/Findfarmhash.cmake
+index 1b0dc28f624..97b43298f13 100644
+--- a/tensorflow/lite/tools/cmake/modules/Findfarmhash.cmake
++++ b/tensorflow/lite/tools/cmake/modules/Findfarmhash.cmake
+@@ -13,12 +13,32 @@
+ # See the License for the specific language governing permissions and
+ # limitations under the License.
+
+-# tensorflow-lite uses find_package for this package, so override the system
+-# installation and build from source instead.
+-include(farmhash)
+-if(farmhash_POPULATED)
++# tensorflow-lite uses find_package for this package, so build from
++# source if the system version is not enabled.
++
++if(SYSTEM_FARMHASH)
++ include(FindPackageHandleStandardArgs)
++ find_path(FARMHASH_ROOT_DIR NAMES include/farmhash.h)
++ find_library(FARMHASH_LIB NAMES farmhash PATHS ${FARMHASH_ROOT_DIR}/lib ${FARMHASH_LIB_PATH})
++ find_path(FARMHASH_INCLUDE_DIRS NAMES farmhash.h PATHS ${FARMHASH_ROOT_DIR}/include)
++ find_package_handle_standard_args(farmhash DEFAULT_MSG FARMHASH_LIB FARMHASH_INCLUDE_DIRS)
++endif()
++
++if(farmhash_FOUND)
++ add_library(farmhash SHARED IMPORTED GLOBAL)
++ set_target_properties(farmhash PROPERTIES
++ IMPORTED_LOCATION ${FARMHASH_LIB}
++ INTERFACE_INCLUDE_DIRECTORIES ${FARMHASH_INCLUDE_DIRS}
++ )
++else()
++ include(farmhash)
++ if(farmhash_POPULATED)
++ get_target_property(FARMHASH_INCLUDE_DIRS farmhash INTERFACE_DIRECTORIES)
++ endif()
++endif()
++
++if(farmhash_FOUND OR farmhash_POPULATED)
+ set(FARMHASH_FOUND TRUE)
+- get_target_property(FARMHASH_INCLUDE_DIRS farmhash INTERFACE_DIRECTORIES)
+ add_library(farmhash::farmhash ALIAS farmhash)
+ set(FARMHASH_LIBRARIES farmhash::farmhash)
+ endif()
+--
+2.34.1
+
diff --git a/package/tensorflow-lite/0003-Fix-FindFlatBuffers-cmake-file.patch b/package/tensorflow-lite/0003-Fix-FindFlatBuffers-cmake-file.patch
new file mode 100644
index 0000000000..1d511ca441
--- /dev/null
+++ b/package/tensorflow-lite/0003-Fix-FindFlatBuffers-cmake-file.patch
@@ -0,0 +1,51 @@
+From d8f98dd9f2b437cca5954b38cb48d9c21733f67d Mon Sep 17 00:00:00 2001
+From: James Hilliard <james.hilliard1@gmail.com>
+Date: Thu, 24 Nov 2022 14:29:06 -0700
+Subject: [PATCH] Fix FindFlatBuffers cmake file
+
+Capitalization needs to match for system cmake override to work:
+https://github.com/google/flatbuffers/blob/v22.11.23/CMake/FindFlatBuffers.cmake
+
+Signed-off-by: James Hilliard <james.hilliard1@gmail.com>
+[james.hilliard1@gmail.com: backport from upstream commit
+d8f98dd9f2b437cca5954b38cb48d9c21733f67d]
+---
+ tensorflow/lite/CMakeLists.txt | 2 +-
+ tensorflow/lite/g3doc/guide/build_cmake.md | 2 +-
+ .../modules/{FindFlatbuffers.cmake => FindFlatBuffers.cmake} | 0
+ 3 files changed, 2 insertions(+), 2 deletions(-)
+ rename tensorflow/lite/tools/cmake/modules/{FindFlatbuffers.cmake => FindFlatBuffers.cmake} (100%)
+
+diff --git a/tensorflow/lite/CMakeLists.txt b/tensorflow/lite/CMakeLists.txt
+index f9c30d6a046..c2ee9edfb61 100644
+--- a/tensorflow/lite/CMakeLists.txt
++++ b/tensorflow/lite/CMakeLists.txt
+@@ -143,7 +143,7 @@ find_package(absl REQUIRED)
+ find_package(Eigen3 REQUIRED)
+ find_package(farmhash REQUIRED)
+ find_package(fft2d REQUIRED)
+-find_package(Flatbuffers REQUIRED)
++find_package(FlatBuffers REQUIRED)
+ find_package(gemmlowp REQUIRED)
+ find_package(NEON_2_SSE REQUIRED)
+ find_package(cpuinfo REQUIRED) #CPUINFO is used by XNNPACK and RUY library
+diff --git a/tensorflow/lite/g3doc/guide/build_cmake.md b/tensorflow/lite/g3doc/guide/build_cmake.md
+index 6950a365bb8..9cb7ebac326 100644
+--- a/tensorflow/lite/g3doc/guide/build_cmake.md
++++ b/tensorflow/lite/g3doc/guide/build_cmake.md
+@@ -83,7 +83,7 @@ cmake ../tensorflow_src/tensorflow/lite -DTFLITE_ENABLE_INSTALL=ON \
+ -DCMAKE_FIND_PACKAGE_PREFER_CONFIG=ON \
+ -Dabsl_DIR=<install path>/lib/cmake/absl \
+ -DEigen3_DIR=<install path>/share/eigen3/cmake \
+- -DFlatbuffers_DIR=<install path>/lib/cmake/flatbuffers \
++ -DFlatBuffers_DIR=<install path>/lib/cmake/flatbuffers \
+ -DNEON_2_SSE_DIR=<install path>/lib/cmake/NEON_2_SSE \
+ -Dcpuinfo_DIR=<install path>/share/cpuinfo \
+ -Druy_DIR=<install path>/lib/cmake/ruy
+diff --git a/tensorflow/lite/tools/cmake/modules/FindFlatbuffers.cmake b/tensorflow/lite/tools/cmake/modules/FindFlatBuffers.cmake
+similarity index 100%
+rename from tensorflow/lite/tools/cmake/modules/FindFlatbuffers.cmake
+rename to tensorflow/lite/tools/cmake/modules/FindFlatBuffers.cmake
+--
+2.34.1
+
diff --git a/package/tensorflow-lite/0004-Don-t-link-tensorflow-lite-against-gemmlowp.patch b/package/tensorflow-lite/0004-Don-t-link-tensorflow-lite-against-gemmlowp.patch
new file mode 100644
index 0000000000..d9ad78ef9e
--- /dev/null
+++ b/package/tensorflow-lite/0004-Don-t-link-tensorflow-lite-against-gemmlowp.patch
@@ -0,0 +1,32 @@
+From fb584589f707853d85a081c99b1b82598c2631c1 Mon Sep 17 00:00:00 2001
+From: James Hilliard <james.hilliard1@gmail.com>
+Date: Thu, 24 Nov 2022 15:10:27 -0700
+Subject: [PATCH] Don't link tensorflow-lite against gemmlowp
+
+We can't link against gemmlowp as it is a header only library.
+
+Fixes:
+/bin/ld: cannot find -lgemmlowp: No such file or directory
+
+Signed-off-by: James Hilliard <james.hilliard1@gmail.com>
+[james.hilliard1@gmail.com: backport from upstream commit
+fb584589f707853d85a081c99b1b82598c2631c1]
+---
+ tensorflow/lite/CMakeLists.txt | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/tensorflow/lite/CMakeLists.txt b/tensorflow/lite/CMakeLists.txt
+index f9c30d6a046..3fe5ed15605 100644
+--- a/tensorflow/lite/CMakeLists.txt
++++ b/tensorflow/lite/CMakeLists.txt
+@@ -560,7 +560,6 @@ target_link_libraries(tensorflow-lite
+ farmhash
+ fft2d_fftsg2d
+ flatbuffers::flatbuffers
+- gemmlowp
+ ruy::ruy
+ pthreadpool
+ ${CMAKE_DL_LIBS}
+--
+2.34.1
+
diff --git a/package/tensorflow-lite/Config.in b/package/tensorflow-lite/Config.in
new file mode 100644
index 0000000000..8685ec0c71
--- /dev/null
+++ b/package/tensorflow-lite/Config.in
@@ -0,0 +1,36 @@
+config BR2_PACKAGE_TENSORFLOW_LITE_ARCH_SUPPORTS
+ bool
+ default y if BR2_aarch64
+ default y if BR2_arm
+ default y if BR2_i386
+ default y if BR2_x86_64
+ depends on BR2_PACKAGE_CPUINFO_ARCH_SUPPORTS
+
+config BR2_PACKAGE_TENSORFLOW_LITE
+ bool "tensorflow-lite"
+ depends on BR2_PACKAGE_TENSORFLOW_LITE_ARCH_SUPPORTS
+ depends on BR2_INSTALL_LIBSTDCPP
+ depends on BR2_TOOLCHAIN_GCC_AT_LEAST_7 # C++17
+ depends on BR2_TOOLCHAIN_HAS_THREADS # cpuinfo
+ depends on BR2_TOOLCHAIN_USES_GLIBC
+ depends on BR2_SHARED_LIBS
+ select BR2_PACKAGE_CPUINFO
+ select BR2_PACKAGE_EIGEN
+ select BR2_PACKAGE_FARMHASH
+ select BR2_PACKAGE_FFT2D
+ select BR2_PACKAGE_FLATBUFFERS
+ select BR2_PACKAGE_GEMMLOWP
+ select BR2_PACKAGE_LIBABSEIL_CPP
+ select BR2_PACKAGE_NEON_2_SSE
+ select BR2_PACKAGE_RUY if BR2_PACKAGE_RUY_ARCH_SUPPORTS
+ select BR2_PACKAGE_XNNPACK if BR2_PACKAGE_XNNPACK_ARCH_SUPPORTS
+ help
+ Tensorflow Lite dynamic library and headers: Inference engine
+ to run previously trained machine learning models.
+
+comment "tensorflow-lite needs a toolchain w/ glibc, C++17, threads"
+ depends on !BR2_TOOLCHAIN_USES_GLIBC || !BR2_INSTALL_LIBSTDCPP || \
+ !BR2_TOOLCHAIN_GCC_AT_LEAST_7 || !BR2_TOOLCHAIN_HAS_THREADS
+
+comment "tensorflow-lite needs a toolchain w/ shared libraries"
+ depends on !BR2_SHARED_LIBS
diff --git a/package/tensorflow-lite/tensorflow-lite.hash b/package/tensorflow-lite/tensorflow-lite.hash
new file mode 100644
index 0000000000..7d9035707b
--- /dev/null
+++ b/package/tensorflow-lite/tensorflow-lite.hash
@@ -0,0 +1,4 @@
+# Locally calculated
+sha256 99c732b92b1b37fc243a559e02f9aef5671771e272758aa4aec7f34dc92dac48 tensorflow-lite-2.11.0.tar.gz
+# License files, locally calculated
+sha256 71c6915d04265772a0339bed47276942c678b45cc01534210ebe6984fd1aec65 LICENSE
diff --git a/package/tensorflow-lite/tensorflow-lite.mk b/package/tensorflow-lite/tensorflow-lite.mk
new file mode 100644
index 0000000000..433eff3242
--- /dev/null
+++ b/package/tensorflow-lite/tensorflow-lite.mk
@@ -0,0 +1,59 @@
+################################################################################
+#
+# tensorflow-lite
+#
+################################################################################
+
+TENSORFLOW_LITE_VERSION = 2.11.0
+TENSORFLOW_LITE_SITE = $(call github,tensorflow,tensorflow,v$(TENSORFLOW_LITE_VERSION))
+TENSORFLOW_LITE_INSTALL_STAGING = YES
+TENSORFLOW_LITE_LICENSE = Apache-2.0
+TENSORFLOW_LITE_LICENSE_FILES = LICENSE
+TENSORFLOW_LITE_SUBDIR = tensorflow/lite
+TENSORFLOW_LITE_SUPPORTS_IN_SOURCE_BUILD = NO
+TENSORFLOW_LITE_DEPENDENCIES += \
+ host-pkgconf \
+ host-flatbuffers \
+ cpuinfo \
+ eigen \
+ farmhash \
+ fft2d \
+ flatbuffers \
+ gemmlowp \
+ libabseil-cpp \
+ neon-2-sse
+
+TENSORFLOW_LITE_CONF_OPTS = \
+ -Dabsl_DIR=$(STAGING_DIR)/usr/lib/cmake/absl \
+ -DBUILD_SHARED_LIBS=ON \
+ -DCMAKE_CXX_FLAGS="$(TARGET_CXXFLAGS) -I$(STAGING_DIR)/usr/include/gemmlowp" \
+ -DCMAKE_FIND_PACKAGE_PREFER_CONFIG=ON \
+ -DCMAKE_POSITION_INDEPENDENT_CODE=ON \
+ -DEigen3_DIR=$(STAGING_DIR)/usr/share/eigen3/cmake \
+ -DFETCHCONTENT_FULLY_DISCONNECTED=ON \
+ -DFETCHCONTENT_QUIET=OFF \
+ -DFFT2D_SOURCE_DIR=$(STAGING_DIR)/usr/include/fft2d \
+ -DFlatBuffers_DIR=$(STAGING_DIR)/usr/lib/cmake/flatbuffers \
+ -DNEON_2_SSE_DIR=$(STAGING_DIR)/usr/lib/cmake/NEON_2_SSE \
+ -DSYSTEM_FARMHASH=ON \
+ -DTFLITE_ENABLE_EXTERNAL_DELEGATE=ON \
+ -DTFLITE_ENABLE_GPU=OFF \
+ -DTFLITE_ENABLE_INSTALL=ON \
+ -DTFLITE_ENABLE_MMAP=ON \
+ -DTFLITE_ENABLE_NNAPI=OFF
+
+ifeq ($(BR2_PACKAGE_RUY),y)
+TENSORFLOW_LITE_DEPENDENCIES += ruy
+TENSORFLOW_LITE_CONF_OPTS += -DTFLITE_ENABLE_RUY=ON
+else
+TENSORFLOW_LITE_CONF_OPTS += -DTFLITE_ENABLE_RUY=OFF
+endif
+
+ifeq ($(BR2_PACKAGE_XNNPACK),y)
+TENSORFLOW_LITE_DEPENDENCIES += xnnpack
+TENSORFLOW_LITE_CONF_OPTS += -DTFLITE_ENABLE_XNNPACK=ON -Dxnnpack_POPULATED=ON
+else
+TENSORFLOW_LITE_CONF_OPTS += -DTFLITE_ENABLE_XNNPACK=OFF
+endif
+
+$(eval $(cmake-package))
--
2.34.1
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: [Buildroot] [PATCH v6 10/10] package/tensorflow-lite: new package - enable example
2023-03-16 8:34 ` [Buildroot] [PATCH v6 10/10] package/tensorflow-lite: " James Hilliard
@ 2023-03-16 14:43 ` Hager Stefan
2023-03-16 20:49 ` James Hilliard
0 siblings, 1 reply; 12+ messages in thread
From: Hager Stefan @ 2023-03-16 14:43 UTC (permalink / raw)
To: James Hilliard, buildroot; +Cc: Samuel Martin, Thomas Petazzoni
[-- Attachment #1.1: Type: text/plain, Size: 19753 bytes --]
Hi James, all!
Thanks for the update.
To optinally build and install the label_image example, i created the following patch:
(It builds, and the example run on target hardware (aarch64).)
diff --git a/package/tensorflow-lite/Config.in b/package/tensorflow-lite/Config.in
index 8685ec0c71..e518ba28c6 100644
--- a/package/tensorflow-lite/Config.in
+++ b/package/tensorflow-lite/Config.in
@@ -34,3 +34,8 @@ comment "tensorflow-lite needs a toolchain w/ glibc, C++17, threads"
comment "tensorflow-lite needs a toolchain w/ shared libraries"
depends on !BR2_SHARED_LIBS
+
+if BR2_PACKAGE_TENSORFLOW_LITE
+config BR2_PACKAGE_TENSORFLOW_LITE_BUILD_EXAMPLE
+ bool "Build tensorflow-lite's label_image example"
+endif
diff --git a/package/tensorflow-lite/tensorflow-lite.mk b/package/tensorflow-lite/tensorflow-lite.mk
index 433eff3242..5dd29f8df0 100644
--- a/package/tensorflow-lite/tensorflow-lite.mk
+++ b/package/tensorflow-lite/tensorflow-lite.mk
@@ -56,4 +56,17 @@ else
TENSORFLOW_LITE_CONF_OPTS += -DTFLITE_ENABLE_XNNPACK=OFF
endif
+
+ifeq ($(BR2_PACKAGE_TENSORFLOW_LITE_BUILD_EXAMPLE),y)
+define TENSORFLOW_LITE_EXAMPLE_BUILD_CMDS
+ $(TARGET_MAKE_ENV) $(BR2_CMAKE) --build $(TENSORFLOW_LITE_BUILDDIR) -t label_image
+endef
+TENSORFLOW_LITE_POST_BUILD_HOOKS += TENSORFLOW_LITE_EXAMPLE_BUILD_CMDS
+
+define TENSORFLOW_LITE_INSTALL_TARGET_EXAMPLE
+ $(INSTALL) -D -m0755 $(@D)/tensorflow/lite/buildroot-build/examples/label_image/label_image $(TARGET_DIR)/usr/bin/label_image
+endef
+TENSORFLOW_LITE_POST_INSTALL_TARGET_HOOKS += TENSORFLOW_LITE_INSTALL_TARGET_EXAMPLE
+endif
+
$(eval $(cmake-package))
Signed-off-by: Stefan Hager <stefan.hager@ginzinger.com>
Best regards
Stefan
>From: James Hilliard <james.hilliard1@gmail.com>
>Sent: Thursday, March 16, 2023 09:34
>To: buildroot@buildroot.org <buildroot@buildroot.org>
>Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com>; Samuel Martin <s.martin49@gmail.com>; Hager Stefan <Stefan.Hager@ginzinger.com>; James Hilliard <james.hilliard1@gmail.com>
>Subject: [PATCH v6 10/10] package/tensorflow-lite: new package
>
>From: Stefan Hager <stefan.hager@ginzinger.com>
>
>This package adds the tensorflow lite runtime to buildroot.
>
>Tested-by: Stefan Hager <stefan.hager@ginzinger.com>
>Signed-off-by: Stefan Hager <stefan.hager@ginzinger.com>
>Signed-off-by: James Hilliard <james.hilliard1@gmail.com>
>---
>Changes v5 -> v6:
> - update patches
> - add architecture dependency
> - backport system farmhash patch
>Changes v3 -> v4:
> - fix min gcc version
> - enable xnnpack
>Changes v2 -> v3:
> - drop architecture restrictions which appear inaccurate after adding neon-2-sse
> - disable android only nnapi
>Changes v1 -> v2:
> - fix label_image build
> - more explicit cmake config
>---
> DEVELOPERS | 1 +
> package/Config.in | 1 +
> .../0001-lite-Update-CMakeLists.txt.patch | 49 ++++++++++++
> ...dd-SYSTEM_FARMHASH-cmake-config-flag.patch | 74 +++++++++++++++++++
> .../0003-Fix-FindFlatBuffers-cmake-file.patch | 51 +++++++++++++
> ...ink-tensorflow-lite-against-gemmlowp.patch | 32 ++++++++
> package/tensorflow-lite/Config.in | 36 +++++++++
> package/tensorflow-lite/tensorflow-lite.hash | 4 +
> package/tensorflow-lite/tensorflow-lite.mk | 59 +++++++++++++++
> 9 files changed, 307 insertions(+)
> create mode 100644 package/tensorflow-lite/0001-lite-Update-CMakeLists.txt.patch
> create mode 100644 package/tensorflow-lite/0002-Add-SYSTEM_FARMHASH-cmake-config-flag.patch
> create mode 100644 package/tensorflow-lite/0003-Fix-FindFlatBuffers-cmake-file.patch
> create mode 100644 package/tensorflow-lite/0004-Don-t-link-tensorflow-lite-against-gemmlowp.patch
> create mode 100644 package/tensorflow-lite/Config.in
> create mode 100644 package/tensorflow-lite/tensorflow-lite.hash
> create mode 100644 package/tensorflow-lite/tensorflow-lite.mk
>
>diff --git a/DEVELOPERS b/DEVELOPERS
>index 678c027898..1307949f7a 100644
>--- a/DEVELOPERS
>+++ b/DEVELOPERS
>@@ -2694,6 +2694,7 @@ F: package/gemmlowp/
> F: package/psimd/
> F: package/pthreadpool/
> F: package/ruy/
>+F: package/tensorflow-lite/
> F: package/xnnpack/
>
> N: Stefan Ott <stefan@ott.net>
>diff --git a/package/Config.in b/package/Config.in
>index 8969672e42..45fca4f15d 100644
>--- a/package/Config.in
>+++ b/package/Config.in
>@@ -2158,6 +2158,7 @@ endif
> source "package/sphinxbase/Config.in"
> source "package/startup-notification/Config.in"
> source "package/tbb/Config.in"
>+ source "package/tensorflow-lite/Config.in"
> source "package/tinycbor/Config.in"
> source "package/tl-expected/Config.in"
> source "package/tz/Config.in"
>diff --git a/package/tensorflow-lite/0001-lite-Update-CMakeLists.txt.patch b/package/tensorflow-lite/0001-lite-Update-CMakeLists.txt.patch
>new file mode 100644
>index 0000000000..53b5170681
>--- /dev/null
>+++ b/package/tensorflow-lite/0001-lite-Update-CMakeLists.txt.patch
>@@ -0,0 +1,49 @@
>+From 081c2e4e3cf021efb2853a485a18b563e88f6117 Mon Sep 17 00:00:00 2001
>+From: Terry Heo <terryheo@google.com>
>+Date: Tue, 1 Nov 2022 15:55:30 -0700
>+Subject: [PATCH] lite: Update CMakeLists.txt
>+
>+This changes are needed to build kernel tests.
>+
>+PiperOrigin-RevId: 485439972
>+
>+Signed-off-by: James Hilliard <james.hilliard1@gmail.com>
>+[james.hilliard1@gmail.com: backport from upstream commit
>+081c2e4e3cf021efb2853a485a18b563e88f6117]
>+---
>+ tensorflow/lite/CMakeLists.txt | 7 ++++++-
>+ 1 file changed, 6 insertions(+), 1 deletion(-)
>+
>+diff --git a/tensorflow/lite/CMakeLists.txt b/tensorflow/lite/CMakeLists.txt
>+index 9dfbb4b72f3..fd8b3faf1e2 100644
>+--- a/tensorflow/lite/CMakeLists.txt
>++++ b/tensorflow/lite/CMakeLists.txt
>+@@ -209,6 +209,9 @@ list(FILTER TFLITE_SRCS EXCLUDE REGEX ".*tflite_with_xnnpack\\.cc$")
>+ # Exclude Flex related files.
>+ list(FILTER TFLITE_SRCS EXCLUDE REGEX ".*with_selected_ops\\.cc$")
>+
>++# Exclude tensorflow_profiler_logger files.
>++list(FILTER TFLITE_SRCS EXCLUDE REGEX ".*tensorflow_profiler_logger\\.cc$")
>++
>+ if(_TFLITE_ENABLE_MMAP)
>+ list(FILTER TFLITE_SRCS EXCLUDE REGEX ".*mmap_allocation_disabled\\.cc$")
>+ else()
>+@@ -222,6 +225,7 @@ if(NOT "${CMAKE_SYSTEM_NAME}" STREQUAL "iOS")
>+ endif()
>+ populate_tflite_source_vars("core" TFLITE_CORE_SRCS)
>+ populate_tflite_source_vars("core/api" TFLITE_CORE_API_SRCS)
>++populate_tflite_source_vars("core/c" TFLITE_CORE_C_SRCS)
>+ populate_tflite_source_vars("c" TFLITE_C_SRCS)
>+ populate_tflite_source_vars("delegates" TFLITE_DELEGATES_SRCS)
>+ if(TFLITE_ENABLE_GPU)
>+@@ -483,6 +487,7 @@ endif()
>+ # TFLite library
>+ set(_ALL_TFLITE_SRCS
>+ ${TFLITE_CORE_API_SRCS}
>++ ${TFLITE_CORE_C_SRCS}
>+ ${TFLITE_CORE_SRCS}
>+ ${TFLITE_C_SRCS}
>+ ${TFLITE_DELEGATES_FLEX_SRCS}
>+--
>+2.34.1
>+
>diff --git a/package/tensorflow-lite/0002-Add-SYSTEM_FARMHASH-cmake-config-flag.patch b/package/tensorflow-lite/0002-Add-SYSTEM_FARMHASH-cmake-config-flag.patch
>new file mode 100644
>index 0000000000..99db29e354
>--- /dev/null
>+++ b/package/tensorflow-lite/0002-Add-SYSTEM_FARMHASH-cmake-config-flag.patch
>@@ -0,0 +1,74 @@
>+From d8451a9048d09692994c40a6f9bc928e70ed79b5 Mon Sep 17 00:00:00 2001
>+From: James Hilliard <james.hilliard1@gmail.com>
>+Date: Mon, 28 Nov 2022 21:36:34 -0700
>+Subject: [PATCH] Add SYSTEM_FARMHASH cmake config flag
>+
>+Since farmhash does not install a cmake package we need to
>+search for the library and headers to use the provided
>+version.
>+
>+Signed-off-by: James Hilliard <james.hilliard1@gmail.com>
>+[james.hilliard1@gmail.com: backport from upstream commit
>+d8451a9048d09692994c40a6f9bc928e70ed79b5]
>+---
>+ tensorflow/lite/g3doc/guide/build_cmake.md | 1 +
>+ .../tools/cmake/modules/Findfarmhash.cmake | 30 +++++++++++++++----
>+ 2 files changed, 26 insertions(+), 5 deletions(-)
>+
>+diff --git a/tensorflow/lite/g3doc/guide/build_cmake.md b/tensorflow/lite/g3doc/guide/build_cmake.md
>+index 6950a365bb8..6de955e70b0 100644
>+--- a/tensorflow/lite/g3doc/guide/build_cmake.md
>++++ b/tensorflow/lite/g3doc/guide/build_cmake.md
>+@@ -81,6 +81,7 @@ variables to point to your library installations.
>+ ```sh
>+ cmake ../tensorflow_src/tensorflow/lite -DTFLITE_ENABLE_INSTALL=ON \
>+ -DCMAKE_FIND_PACKAGE_PREFER_CONFIG=ON \
>++ -DSYSTEM_FARMHASH=ON \
>+ -Dabsl_DIR=<install path>/lib/cmake/absl \
>+ -DEigen3_DIR=<install path>/share/eigen3/cmake \
>+ -DFlatbuffers_DIR=<install path>/lib/cmake/flatbuffers \
>+diff --git a/tensorflow/lite/tools/cmake/modules/Findfarmhash.cmake b/tensorflow/lite/tools/cmake/modules/Findfarmhash.cmake
>+index 1b0dc28f624..97b43298f13 100644
>+--- a/tensorflow/lite/tools/cmake/modules/Findfarmhash.cmake
>++++ b/tensorflow/lite/tools/cmake/modules/Findfarmhash.cmake
>+@@ -13,12 +13,32 @@
>+ # See the License for the specific language governing permissions and
>+ # limitations under the License.
>+
>+-# tensorflow-lite uses find_package for this package, so override the system
>+-# installation and build from source instead.
>+-include(farmhash)
>+-if(farmhash_POPULATED)
>++# tensorflow-lite uses find_package for this package, so build from
>++# source if the system version is not enabled.
>++
>++if(SYSTEM_FARMHASH)
>++ include(FindPackageHandleStandardArgs)
>++ find_path(FARMHASH_ROOT_DIR NAMES include/farmhash.h)
>++ find_library(FARMHASH_LIB NAMES farmhash PATHS ${FARMHASH_ROOT_DIR}/lib ${FARMHASH_LIB_PATH})
>++ find_path(FARMHASH_INCLUDE_DIRS NAMES farmhash.h PATHS ${FARMHASH_ROOT_DIR}/include)
>++ find_package_handle_standard_args(farmhash DEFAULT_MSG FARMHASH_LIB FARMHASH_INCLUDE_DIRS)
>++endif()
>++
>++if(farmhash_FOUND)
>++ add_library(farmhash SHARED IMPORTED GLOBAL)
>++ set_target_properties(farmhash PROPERTIES
>++ IMPORTED_LOCATION ${FARMHASH_LIB}
>++ INTERFACE_INCLUDE_DIRECTORIES ${FARMHASH_INCLUDE_DIRS}
>++ )
>++else()
>++ include(farmhash)
>++ if(farmhash_POPULATED)
>++ get_target_property(FARMHASH_INCLUDE_DIRS farmhash INTERFACE_DIRECTORIES)
>++ endif()
>++endif()
>++
>++if(farmhash_FOUND OR farmhash_POPULATED)
>+ set(FARMHASH_FOUND TRUE)
>+- get_target_property(FARMHASH_INCLUDE_DIRS farmhash INTERFACE_DIRECTORIES)
>+ add_library(farmhash::farmhash ALIAS farmhash)
>+ set(FARMHASH_LIBRARIES farmhash::farmhash)
>+ endif()
>+--
>+2.34.1
>+
>diff --git a/package/tensorflow-lite/0003-Fix-FindFlatBuffers-cmake-file.patch b/package/tensorflow-lite/0003-Fix-FindFlatBuffers-cmake-file.patch
>new file mode 100644
>index 0000000000..1d511ca441
>--- /dev/null
>+++ b/package/tensorflow-lite/0003-Fix-FindFlatBuffers-cmake-file.patch
>@@ -0,0 +1,51 @@
>+From d8f98dd9f2b437cca5954b38cb48d9c21733f67d Mon Sep 17 00:00:00 2001
>+From: James Hilliard <james.hilliard1@gmail.com>
>+Date: Thu, 24 Nov 2022 14:29:06 -0700
>+Subject: [PATCH] Fix FindFlatBuffers cmake file
>+
>+Capitalization needs to match for system cmake override to work:
>+https://github.com/google/flatbuffers/blob/v22.11.23/CMake/FindFlatBuffers.cmake
>+
>+Signed-off-by: James Hilliard <james.hilliard1@gmail.com>
>+[james.hilliard1@gmail.com: backport from upstream commit
>+d8f98dd9f2b437cca5954b38cb48d9c21733f67d]
>+---
>+ tensorflow/lite/CMakeLists.txt | 2 +-
>+ tensorflow/lite/g3doc/guide/build_cmake.md | 2 +-
>+ .../modules/{FindFlatbuffers.cmake => FindFlatBuffers.cmake} | 0
>+ 3 files changed, 2 insertions(+), 2 deletions(-)
>+ rename tensorflow/lite/tools/cmake/modules/{FindFlatbuffers.cmake => FindFlatBuffers.cmake} (100%)
>+
>+diff --git a/tensorflow/lite/CMakeLists.txt b/tensorflow/lite/CMakeLists.txt
>+index f9c30d6a046..c2ee9edfb61 100644
>+--- a/tensorflow/lite/CMakeLists.txt
>++++ b/tensorflow/lite/CMakeLists.txt
>+@@ -143,7 +143,7 @@ find_package(absl REQUIRED)
>+ find_package(Eigen3 REQUIRED)
>+ find_package(farmhash REQUIRED)
>+ find_package(fft2d REQUIRED)
>+-find_package(Flatbuffers REQUIRED)
>++find_package(FlatBuffers REQUIRED)
>+ find_package(gemmlowp REQUIRED)
>+ find_package(NEON_2_SSE REQUIRED)
>+ find_package(cpuinfo REQUIRED) #CPUINFO is used by XNNPACK and RUY library
>+diff --git a/tensorflow/lite/g3doc/guide/build_cmake.md b/tensorflow/lite/g3doc/guide/build_cmake.md
>+index 6950a365bb8..9cb7ebac326 100644
>+--- a/tensorflow/lite/g3doc/guide/build_cmake.md
>++++ b/tensorflow/lite/g3doc/guide/build_cmake.md
>+@@ -83,7 +83,7 @@ cmake ../tensorflow_src/tensorflow/lite -DTFLITE_ENABLE_INSTALL=ON \
>+ -DCMAKE_FIND_PACKAGE_PREFER_CONFIG=ON \
>+ -Dabsl_DIR=<install path>/lib/cmake/absl \
>+ -DEigen3_DIR=<install path>/share/eigen3/cmake \
>+- -DFlatbuffers_DIR=<install path>/lib/cmake/flatbuffers \
>++ -DFlatBuffers_DIR=<install path>/lib/cmake/flatbuffers \
>+ -DNEON_2_SSE_DIR=<install path>/lib/cmake/NEON_2_SSE \
>+ -Dcpuinfo_DIR=<install path>/share/cpuinfo \
>+ -Druy_DIR=<install path>/lib/cmake/ruy
>+diff --git a/tensorflow/lite/tools/cmake/modules/FindFlatbuffers.cmake b/tensorflow/lite/tools/cmake/modules/FindFlatBuffers.cmake
>+similarity index 100%
>+rename from tensorflow/lite/tools/cmake/modules/FindFlatbuffers.cmake
>+rename to tensorflow/lite/tools/cmake/modules/FindFlatBuffers.cmake
>+--
>+2.34.1
>+
>diff --git a/package/tensorflow-lite/0004-Don-t-link-tensorflow-lite-against-gemmlowp.patch b/package/tensorflow-lite/0004-Don-t-link-tensorflow-lite-against-gemmlowp.patch
>new file mode 100644
>index 0000000000..d9ad78ef9e
>--- /dev/null
>+++ b/package/tensorflow-lite/0004-Don-t-link-tensorflow-lite-against-gemmlowp.patch
>@@ -0,0 +1,32 @@
>+From fb584589f707853d85a081c99b1b82598c2631c1 Mon Sep 17 00:00:00 2001
>+From: James Hilliard <james.hilliard1@gmail.com>
>+Date: Thu, 24 Nov 2022 15:10:27 -0700
>+Subject: [PATCH] Don't link tensorflow-lite against gemmlowp
>+
>+We can't link against gemmlowp as it is a header only library.
>+
>+Fixes:
>+/bin/ld: cannot find -lgemmlowp: No such file or directory
>+
>+Signed-off-by: James Hilliard <james.hilliard1@gmail.com>
>+[james.hilliard1@gmail.com: backport from upstream commit
>+fb584589f707853d85a081c99b1b82598c2631c1]
>+---
>+ tensorflow/lite/CMakeLists.txt | 1 -
>+ 1 file changed, 1 deletion(-)
>+
>+diff --git a/tensorflow/lite/CMakeLists.txt b/tensorflow/lite/CMakeLists.txt
>+index f9c30d6a046..3fe5ed15605 100644
>+--- a/tensorflow/lite/CMakeLists.txt
>++++ b/tensorflow/lite/CMakeLists.txt
>+@@ -560,7 +560,6 @@ target_link_libraries(tensorflow-lite
>+ farmhash
>+ fft2d_fftsg2d
>+ flatbuffers::flatbuffers
>+- gemmlowp
>+ ruy::ruy
>+ pthreadpool
>+ ${CMAKE_DL_LIBS}
>+--
>+2.34.1
>+
>diff --git a/package/tensorflow-lite/Config.in b/package/tensorflow-lite/Config.in
>new file mode 100644
>index 0000000000..8685ec0c71
>--- /dev/null
>+++ b/package/tensorflow-lite/Config.in
>@@ -0,0 +1,36 @@
>+config BR2_PACKAGE_TENSORFLOW_LITE_ARCH_SUPPORTS
>+ bool
>+ default y if BR2_aarch64
>+ default y if BR2_arm
>+ default y if BR2_i386
>+ default y if BR2_x86_64
>+ depends on BR2_PACKAGE_CPUINFO_ARCH_SUPPORTS
>+
>+config BR2_PACKAGE_TENSORFLOW_LITE
>+ bool "tensorflow-lite"
>+ depends on BR2_PACKAGE_TENSORFLOW_LITE_ARCH_SUPPORTS
>+ depends on BR2_INSTALL_LIBSTDCPP
>+ depends on BR2_TOOLCHAIN_GCC_AT_LEAST_7 # C++17
>+ depends on BR2_TOOLCHAIN_HAS_THREADS # cpuinfo
>+ depends on BR2_TOOLCHAIN_USES_GLIBC
>+ depends on BR2_SHARED_LIBS
>+ select BR2_PACKAGE_CPUINFO
>+ select BR2_PACKAGE_EIGEN
>+ select BR2_PACKAGE_FARMHASH
>+ select BR2_PACKAGE_FFT2D
>+ select BR2_PACKAGE_FLATBUFFERS
>+ select BR2_PACKAGE_GEMMLOWP
>+ select BR2_PACKAGE_LIBABSEIL_CPP
>+ select BR2_PACKAGE_NEON_2_SSE
>+ select BR2_PACKAGE_RUY if BR2_PACKAGE_RUY_ARCH_SUPPORTS
>+ select BR2_PACKAGE_XNNPACK if BR2_PACKAGE_XNNPACK_ARCH_SUPPORTS
>+ help
>+ Tensorflow Lite dynamic library and headers: Inference engine
>+ to run previously trained machine learning models.
>+
>+comment "tensorflow-lite needs a toolchain w/ glibc, C++17, threads"
>+ depends on !BR2_TOOLCHAIN_USES_GLIBC || !BR2_INSTALL_LIBSTDCPP || \
>+ !BR2_TOOLCHAIN_GCC_AT_LEAST_7 || !BR2_TOOLCHAIN_HAS_THREADS
>+
>+comment "tensorflow-lite needs a toolchain w/ shared libraries"
>+ depends on !BR2_SHARED_LIBS
>diff --git a/package/tensorflow-lite/tensorflow-lite.hash b/package/tensorflow-lite/tensorflow-lite.hash
>new file mode 100644
>index 0000000000..7d9035707b
>--- /dev/null
>+++ b/package/tensorflow-lite/tensorflow-lite.hash
>@@ -0,0 +1,4 @@
>+# Locally calculated
>+sha256 99c732b92b1b37fc243a559e02f9aef5671771e272758aa4aec7f34dc92dac48 tensorflow-lite-2.11.0.tar.gz
>+# License files, locally calculated
>+sha256 71c6915d04265772a0339bed47276942c678b45cc01534210ebe6984fd1aec65 LICENSE
>diff --git a/package/tensorflow-lite/tensorflow-lite.mk b/package/tensorflow-lite/tensorflow-lite.mk
>new file mode 100644
>index 0000000000..433eff3242
>--- /dev/null
>+++ b/package/tensorflow-lite/tensorflow-lite.mk
>@@ -0,0 +1,59 @@
>+################################################################################
>+#
>+# tensorflow-lite
>+#
>+################################################################################
>+
>+TENSORFLOW_LITE_VERSION = 2.11.0
>+TENSORFLOW_LITE_SITE = $(call github,tensorflow,tensorflow,v$(TENSORFLOW_LITE_VERSION))
>+TENSORFLOW_LITE_INSTALL_STAGING = YES
>+TENSORFLOW_LITE_LICENSE = Apache-2.0
>+TENSORFLOW_LITE_LICENSE_FILES = LICENSE
>+TENSORFLOW_LITE_SUBDIR = tensorflow/lite
>+TENSORFLOW_LITE_SUPPORTS_IN_SOURCE_BUILD = NO
>+TENSORFLOW_LITE_DEPENDENCIES += \
>+ host-pkgconf \
>+ host-flatbuffers \
>+ cpuinfo \
>+ eigen \
>+ farmhash \
>+ fft2d \
>+ flatbuffers \
>+ gemmlowp \
>+ libabseil-cpp \
>+ neon-2-sse
>+
>+TENSORFLOW_LITE_CONF_OPTS = \
>+ -Dabsl_DIR=$(STAGING_DIR)/usr/lib/cmake/absl \
>+ -DBUILD_SHARED_LIBS=ON \
>+ -DCMAKE_CXX_FLAGS="$(TARGET_CXXFLAGS) -I$(STAGING_DIR)/usr/include/gemmlowp" \
>+ -DCMAKE_FIND_PACKAGE_PREFER_CONFIG=ON \
>+ -DCMAKE_POSITION_INDEPENDENT_CODE=ON \
>+ -DEigen3_DIR=$(STAGING_DIR)/usr/share/eigen3/cmake \
>+ -DFETCHCONTENT_FULLY_DISCONNECTED=ON \
>+ -DFETCHCONTENT_QUIET=OFF \
>+ -DFFT2D_SOURCE_DIR=$(STAGING_DIR)/usr/include/fft2d \
>+ -DFlatBuffers_DIR=$(STAGING_DIR)/usr/lib/cmake/flatbuffers \
>+ -DNEON_2_SSE_DIR=$(STAGING_DIR)/usr/lib/cmake/NEON_2_SSE \
>+ -DSYSTEM_FARMHASH=ON \
>+ -DTFLITE_ENABLE_EXTERNAL_DELEGATE=ON \
>+ -DTFLITE_ENABLE_GPU=OFF \
>+ -DTFLITE_ENABLE_INSTALL=ON \
>+ -DTFLITE_ENABLE_MMAP=ON \
>+ -DTFLITE_ENABLE_NNAPI=OFF
>+
>+ifeq ($(BR2_PACKAGE_RUY),y)
>+TENSORFLOW_LITE_DEPENDENCIES += ruy
>+TENSORFLOW_LITE_CONF_OPTS += -DTFLITE_ENABLE_RUY=ON
>+else
>+TENSORFLOW_LITE_CONF_OPTS += -DTFLITE_ENABLE_RUY=OFF
>+endif
>+
>+ifeq ($(BR2_PACKAGE_XNNPACK),y)
>+TENSORFLOW_LITE_DEPENDENCIES += xnnpack
>+TENSORFLOW_LITE_CONF_OPTS += -DTFLITE_ENABLE_XNNPACK=ON -Dxnnpack_POPULATED=ON
>+else
>+TENSORFLOW_LITE_CONF_OPTS += -DTFLITE_ENABLE_XNNPACK=OFF
>+endif
>+
>+$(eval $(cmake-package))
>--
>2.34.1
[-- Attachment #1.2: smime.p7s --]
[-- Type: application/x-pkcs7-signature, Size: 4625 bytes --]
[-- Attachment #2: Type: text/plain, Size: 150 bytes --]
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: [Buildroot] [PATCH v6 10/10] package/tensorflow-lite: new package - enable example
2023-03-16 14:43 ` [Buildroot] [PATCH v6 10/10] package/tensorflow-lite: new package - enable example Hager Stefan
@ 2023-03-16 20:49 ` James Hilliard
0 siblings, 0 replies; 12+ messages in thread
From: James Hilliard @ 2023-03-16 20:49 UTC (permalink / raw)
To: Hager Stefan; +Cc: Samuel Martin, Thomas Petazzoni, buildroot
On Thu, Mar 16, 2023 at 8:43 AM Hager Stefan <Stefan.Hager@ginzinger.com> wrote:
>
> Hi James, all!
>
> Thanks for the update.
>
> To optinally build and install the label_image example, i created the following patch:
> (It builds, and the example run on target hardware (aarch64).)
Probably better to add a config flag which controls the label_image build:
https://github.com/tensorflow/tensorflow/pull/60021
>
> diff --git a/package/tensorflow-lite/Config.in b/package/tensorflow-lite/Config.in
> index 8685ec0c71..e518ba28c6 100644
> --- a/package/tensorflow-lite/Config.in
> +++ b/package/tensorflow-lite/Config.in
> @@ -34,3 +34,8 @@ comment "tensorflow-lite needs a toolchain w/ glibc, C++17, threads"
>
> comment "tensorflow-lite needs a toolchain w/ shared libraries"
> depends on !BR2_SHARED_LIBS
> +
> +if BR2_PACKAGE_TENSORFLOW_LITE
> +config BR2_PACKAGE_TENSORFLOW_LITE_BUILD_EXAMPLE
> + bool "Build tensorflow-lite's label_image example"
> +endif
> diff --git a/package/tensorflow-lite/tensorflow-lite.mk b/package/tensorflow-lite/tensorflow-lite.mk
> index 433eff3242..5dd29f8df0 100644
> --- a/package/tensorflow-lite/tensorflow-lite.mk
> +++ b/package/tensorflow-lite/tensorflow-lite.mk
> @@ -56,4 +56,17 @@ else
> TENSORFLOW_LITE_CONF_OPTS += -DTFLITE_ENABLE_XNNPACK=OFF
> endif
>
> +
> +ifeq ($(BR2_PACKAGE_TENSORFLOW_LITE_BUILD_EXAMPLE),y)
> +define TENSORFLOW_LITE_EXAMPLE_BUILD_CMDS
> + $(TARGET_MAKE_ENV) $(BR2_CMAKE) --build $(TENSORFLOW_LITE_BUILDDIR) -t label_image
> +endef
> +TENSORFLOW_LITE_POST_BUILD_HOOKS += TENSORFLOW_LITE_EXAMPLE_BUILD_CMDS
> +
> +define TENSORFLOW_LITE_INSTALL_TARGET_EXAMPLE
> + $(INSTALL) -D -m0755 $(@D)/tensorflow/lite/buildroot-build/examples/label_image/label_image $(TARGET_DIR)/usr/bin/label_image
> +endef
> +TENSORFLOW_LITE_POST_INSTALL_TARGET_HOOKS += TENSORFLOW_LITE_INSTALL_TARGET_EXAMPLE
> +endif
> +
> $(eval $(cmake-package))
>
> Signed-off-by: Stefan Hager <stefan.hager@ginzinger.com>
>
> Best regards
> Stefan
>
> >From: James Hilliard <james.hilliard1@gmail.com>
> >Sent: Thursday, March 16, 2023 09:34
> >To: buildroot@buildroot.org <buildroot@buildroot.org>
> >Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com>; Samuel Martin <s.martin49@gmail.com>; Hager Stefan <Stefan.Hager@ginzinger.com>; James Hilliard <james.hilliard1@gmail.com>
> >Subject: [PATCH v6 10/10] package/tensorflow-lite: new package
> >
> >From: Stefan Hager <stefan.hager@ginzinger.com>
> >
> >This package adds the tensorflow lite runtime to buildroot.
> >
> >Tested-by: Stefan Hager <stefan.hager@ginzinger.com>
> >Signed-off-by: Stefan Hager <stefan.hager@ginzinger.com>
> >Signed-off-by: James Hilliard <james.hilliard1@gmail.com>
> >---
> >Changes v5 -> v6:
> > - update patches
> > - add architecture dependency
> > - backport system farmhash patch
> >Changes v3 -> v4:
> > - fix min gcc version
> > - enable xnnpack
> >Changes v2 -> v3:
> > - drop architecture restrictions which appear inaccurate after adding neon-2-sse
> > - disable android only nnapi
> >Changes v1 -> v2:
> > - fix label_image build
> > - more explicit cmake config
> >---
> > DEVELOPERS | 1 +
> > package/Config.in | 1 +
> > .../0001-lite-Update-CMakeLists.txt.patch | 49 ++++++++++++
> > ...dd-SYSTEM_FARMHASH-cmake-config-flag.patch | 74 +++++++++++++++++++
> > .../0003-Fix-FindFlatBuffers-cmake-file.patch | 51 +++++++++++++
> > ...ink-tensorflow-lite-against-gemmlowp.patch | 32 ++++++++
> > package/tensorflow-lite/Config.in | 36 +++++++++
> > package/tensorflow-lite/tensorflow-lite.hash | 4 +
> > package/tensorflow-lite/tensorflow-lite.mk | 59 +++++++++++++++
> > 9 files changed, 307 insertions(+)
> > create mode 100644 package/tensorflow-lite/0001-lite-Update-CMakeLists.txt.patch
> > create mode 100644 package/tensorflow-lite/0002-Add-SYSTEM_FARMHASH-cmake-config-flag.patch
> > create mode 100644 package/tensorflow-lite/0003-Fix-FindFlatBuffers-cmake-file.patch
> > create mode 100644 package/tensorflow-lite/0004-Don-t-link-tensorflow-lite-against-gemmlowp.patch
> > create mode 100644 package/tensorflow-lite/Config.in
> > create mode 100644 package/tensorflow-lite/tensorflow-lite.hash
> > create mode 100644 package/tensorflow-lite/tensorflow-lite.mk
> >
> >diff --git a/DEVELOPERS b/DEVELOPERS
> >index 678c027898..1307949f7a 100644
> >--- a/DEVELOPERS
> >+++ b/DEVELOPERS
> >@@ -2694,6 +2694,7 @@ F: package/gemmlowp/
> > F: package/psimd/
> > F: package/pthreadpool/
> > F: package/ruy/
> >+F: package/tensorflow-lite/
> > F: package/xnnpack/
> >
> > N: Stefan Ott <stefan@ott.net>
> >diff --git a/package/Config.in b/package/Config.in
> >index 8969672e42..45fca4f15d 100644
> >--- a/package/Config.in
> >+++ b/package/Config.in
> >@@ -2158,6 +2158,7 @@ endif
> > source "package/sphinxbase/Config.in"
> > source "package/startup-notification/Config.in"
> > source "package/tbb/Config.in"
> >+ source "package/tensorflow-lite/Config.in"
> > source "package/tinycbor/Config.in"
> > source "package/tl-expected/Config.in"
> > source "package/tz/Config.in"
> >diff --git a/package/tensorflow-lite/0001-lite-Update-CMakeLists.txt.patch b/package/tensorflow-lite/0001-lite-Update-CMakeLists.txt.patch
> >new file mode 100644
> >index 0000000000..53b5170681
> >--- /dev/null
> >+++ b/package/tensorflow-lite/0001-lite-Update-CMakeLists.txt.patch
> >@@ -0,0 +1,49 @@
> >+From 081c2e4e3cf021efb2853a485a18b563e88f6117 Mon Sep 17 00:00:00 2001
> >+From: Terry Heo <terryheo@google.com>
> >+Date: Tue, 1 Nov 2022 15:55:30 -0700
> >+Subject: [PATCH] lite: Update CMakeLists.txt
> >+
> >+This changes are needed to build kernel tests.
> >+
> >+PiperOrigin-RevId: 485439972
> >+
> >+Signed-off-by: James Hilliard <james.hilliard1@gmail.com>
> >+[james.hilliard1@gmail.com: backport from upstream commit
> >+081c2e4e3cf021efb2853a485a18b563e88f6117]
> >+---
> >+ tensorflow/lite/CMakeLists.txt | 7 ++++++-
> >+ 1 file changed, 6 insertions(+), 1 deletion(-)
> >+
> >+diff --git a/tensorflow/lite/CMakeLists.txt b/tensorflow/lite/CMakeLists.txt
> >+index 9dfbb4b72f3..fd8b3faf1e2 100644
> >+--- a/tensorflow/lite/CMakeLists.txt
> >++++ b/tensorflow/lite/CMakeLists.txt
> >+@@ -209,6 +209,9 @@ list(FILTER TFLITE_SRCS EXCLUDE REGEX ".*tflite_with_xnnpack\\.cc$")
> >+ # Exclude Flex related files.
> >+ list(FILTER TFLITE_SRCS EXCLUDE REGEX ".*with_selected_ops\\.cc$")
> >+
> >++# Exclude tensorflow_profiler_logger files.
> >++list(FILTER TFLITE_SRCS EXCLUDE REGEX ".*tensorflow_profiler_logger\\.cc$")
> >++
> >+ if(_TFLITE_ENABLE_MMAP)
> >+ list(FILTER TFLITE_SRCS EXCLUDE REGEX ".*mmap_allocation_disabled\\.cc$")
> >+ else()
> >+@@ -222,6 +225,7 @@ if(NOT "${CMAKE_SYSTEM_NAME}" STREQUAL "iOS")
> >+ endif()
> >+ populate_tflite_source_vars("core" TFLITE_CORE_SRCS)
> >+ populate_tflite_source_vars("core/api" TFLITE_CORE_API_SRCS)
> >++populate_tflite_source_vars("core/c" TFLITE_CORE_C_SRCS)
> >+ populate_tflite_source_vars("c" TFLITE_C_SRCS)
> >+ populate_tflite_source_vars("delegates" TFLITE_DELEGATES_SRCS)
> >+ if(TFLITE_ENABLE_GPU)
> >+@@ -483,6 +487,7 @@ endif()
> >+ # TFLite library
> >+ set(_ALL_TFLITE_SRCS
> >+ ${TFLITE_CORE_API_SRCS}
> >++ ${TFLITE_CORE_C_SRCS}
> >+ ${TFLITE_CORE_SRCS}
> >+ ${TFLITE_C_SRCS}
> >+ ${TFLITE_DELEGATES_FLEX_SRCS}
> >+--
> >+2.34.1
> >+
> >diff --git a/package/tensorflow-lite/0002-Add-SYSTEM_FARMHASH-cmake-config-flag.patch b/package/tensorflow-lite/0002-Add-SYSTEM_FARMHASH-cmake-config-flag.patch
> >new file mode 100644
> >index 0000000000..99db29e354
> >--- /dev/null
> >+++ b/package/tensorflow-lite/0002-Add-SYSTEM_FARMHASH-cmake-config-flag.patch
> >@@ -0,0 +1,74 @@
> >+From d8451a9048d09692994c40a6f9bc928e70ed79b5 Mon Sep 17 00:00:00 2001
> >+From: James Hilliard <james.hilliard1@gmail.com>
> >+Date: Mon, 28 Nov 2022 21:36:34 -0700
> >+Subject: [PATCH] Add SYSTEM_FARMHASH cmake config flag
> >+
> >+Since farmhash does not install a cmake package we need to
> >+search for the library and headers to use the provided
> >+version.
> >+
> >+Signed-off-by: James Hilliard <james.hilliard1@gmail.com>
> >+[james.hilliard1@gmail.com: backport from upstream commit
> >+d8451a9048d09692994c40a6f9bc928e70ed79b5]
> >+---
> >+ tensorflow/lite/g3doc/guide/build_cmake.md | 1 +
> >+ .../tools/cmake/modules/Findfarmhash.cmake | 30 +++++++++++++++----
> >+ 2 files changed, 26 insertions(+), 5 deletions(-)
> >+
> >+diff --git a/tensorflow/lite/g3doc/guide/build_cmake.md b/tensorflow/lite/g3doc/guide/build_cmake.md
> >+index 6950a365bb8..6de955e70b0 100644
> >+--- a/tensorflow/lite/g3doc/guide/build_cmake.md
> >++++ b/tensorflow/lite/g3doc/guide/build_cmake.md
> >+@@ -81,6 +81,7 @@ variables to point to your library installations.
> >+ ```sh
> >+ cmake ../tensorflow_src/tensorflow/lite -DTFLITE_ENABLE_INSTALL=ON \
> >+ -DCMAKE_FIND_PACKAGE_PREFER_CONFIG=ON \
> >++ -DSYSTEM_FARMHASH=ON \
> >+ -Dabsl_DIR=<install path>/lib/cmake/absl \
> >+ -DEigen3_DIR=<install path>/share/eigen3/cmake \
> >+ -DFlatbuffers_DIR=<install path>/lib/cmake/flatbuffers \
> >+diff --git a/tensorflow/lite/tools/cmake/modules/Findfarmhash.cmake b/tensorflow/lite/tools/cmake/modules/Findfarmhash.cmake
> >+index 1b0dc28f624..97b43298f13 100644
> >+--- a/tensorflow/lite/tools/cmake/modules/Findfarmhash.cmake
> >++++ b/tensorflow/lite/tools/cmake/modules/Findfarmhash.cmake
> >+@@ -13,12 +13,32 @@
> >+ # See the License for the specific language governing permissions and
> >+ # limitations under the License.
> >+
> >+-# tensorflow-lite uses find_package for this package, so override the system
> >+-# installation and build from source instead.
> >+-include(farmhash)
> >+-if(farmhash_POPULATED)
> >++# tensorflow-lite uses find_package for this package, so build from
> >++# source if the system version is not enabled.
> >++
> >++if(SYSTEM_FARMHASH)
> >++ include(FindPackageHandleStandardArgs)
> >++ find_path(FARMHASH_ROOT_DIR NAMES include/farmhash.h)
> >++ find_library(FARMHASH_LIB NAMES farmhash PATHS ${FARMHASH_ROOT_DIR}/lib ${FARMHASH_LIB_PATH})
> >++ find_path(FARMHASH_INCLUDE_DIRS NAMES farmhash.h PATHS ${FARMHASH_ROOT_DIR}/include)
> >++ find_package_handle_standard_args(farmhash DEFAULT_MSG FARMHASH_LIB FARMHASH_INCLUDE_DIRS)
> >++endif()
> >++
> >++if(farmhash_FOUND)
> >++ add_library(farmhash SHARED IMPORTED GLOBAL)
> >++ set_target_properties(farmhash PROPERTIES
> >++ IMPORTED_LOCATION ${FARMHASH_LIB}
> >++ INTERFACE_INCLUDE_DIRECTORIES ${FARMHASH_INCLUDE_DIRS}
> >++ )
> >++else()
> >++ include(farmhash)
> >++ if(farmhash_POPULATED)
> >++ get_target_property(FARMHASH_INCLUDE_DIRS farmhash INTERFACE_DIRECTORIES)
> >++ endif()
> >++endif()
> >++
> >++if(farmhash_FOUND OR farmhash_POPULATED)
> >+ set(FARMHASH_FOUND TRUE)
> >+- get_target_property(FARMHASH_INCLUDE_DIRS farmhash INTERFACE_DIRECTORIES)
> >+ add_library(farmhash::farmhash ALIAS farmhash)
> >+ set(FARMHASH_LIBRARIES farmhash::farmhash)
> >+ endif()
> >+--
> >+2.34.1
> >+
> >diff --git a/package/tensorflow-lite/0003-Fix-FindFlatBuffers-cmake-file.patch b/package/tensorflow-lite/0003-Fix-FindFlatBuffers-cmake-file.patch
> >new file mode 100644
> >index 0000000000..1d511ca441
> >--- /dev/null
> >+++ b/package/tensorflow-lite/0003-Fix-FindFlatBuffers-cmake-file.patch
> >@@ -0,0 +1,51 @@
> >+From d8f98dd9f2b437cca5954b38cb48d9c21733f67d Mon Sep 17 00:00:00 2001
> >+From: James Hilliard <james.hilliard1@gmail.com>
> >+Date: Thu, 24 Nov 2022 14:29:06 -0700
> >+Subject: [PATCH] Fix FindFlatBuffers cmake file
> >+
> >+Capitalization needs to match for system cmake override to work:
> >+https://github.com/google/flatbuffers/blob/v22.11.23/CMake/FindFlatBuffers.cmake
> >+
> >+Signed-off-by: James Hilliard <james.hilliard1@gmail.com>
> >+[james.hilliard1@gmail.com: backport from upstream commit
> >+d8f98dd9f2b437cca5954b38cb48d9c21733f67d]
> >+---
> >+ tensorflow/lite/CMakeLists.txt | 2 +-
> >+ tensorflow/lite/g3doc/guide/build_cmake.md | 2 +-
> >+ .../modules/{FindFlatbuffers.cmake => FindFlatBuffers.cmake} | 0
> >+ 3 files changed, 2 insertions(+), 2 deletions(-)
> >+ rename tensorflow/lite/tools/cmake/modules/{FindFlatbuffers.cmake => FindFlatBuffers.cmake} (100%)
> >+
> >+diff --git a/tensorflow/lite/CMakeLists.txt b/tensorflow/lite/CMakeLists.txt
> >+index f9c30d6a046..c2ee9edfb61 100644
> >+--- a/tensorflow/lite/CMakeLists.txt
> >++++ b/tensorflow/lite/CMakeLists.txt
> >+@@ -143,7 +143,7 @@ find_package(absl REQUIRED)
> >+ find_package(Eigen3 REQUIRED)
> >+ find_package(farmhash REQUIRED)
> >+ find_package(fft2d REQUIRED)
> >+-find_package(Flatbuffers REQUIRED)
> >++find_package(FlatBuffers REQUIRED)
> >+ find_package(gemmlowp REQUIRED)
> >+ find_package(NEON_2_SSE REQUIRED)
> >+ find_package(cpuinfo REQUIRED) #CPUINFO is used by XNNPACK and RUY library
> >+diff --git a/tensorflow/lite/g3doc/guide/build_cmake.md b/tensorflow/lite/g3doc/guide/build_cmake.md
> >+index 6950a365bb8..9cb7ebac326 100644
> >+--- a/tensorflow/lite/g3doc/guide/build_cmake.md
> >++++ b/tensorflow/lite/g3doc/guide/build_cmake.md
> >+@@ -83,7 +83,7 @@ cmake ../tensorflow_src/tensorflow/lite -DTFLITE_ENABLE_INSTALL=ON \
> >+ -DCMAKE_FIND_PACKAGE_PREFER_CONFIG=ON \
> >+ -Dabsl_DIR=<install path>/lib/cmake/absl \
> >+ -DEigen3_DIR=<install path>/share/eigen3/cmake \
> >+- -DFlatbuffers_DIR=<install path>/lib/cmake/flatbuffers \
> >++ -DFlatBuffers_DIR=<install path>/lib/cmake/flatbuffers \
> >+ -DNEON_2_SSE_DIR=<install path>/lib/cmake/NEON_2_SSE \
> >+ -Dcpuinfo_DIR=<install path>/share/cpuinfo \
> >+ -Druy_DIR=<install path>/lib/cmake/ruy
> >+diff --git a/tensorflow/lite/tools/cmake/modules/FindFlatbuffers.cmake b/tensorflow/lite/tools/cmake/modules/FindFlatBuffers.cmake
> >+similarity index 100%
> >+rename from tensorflow/lite/tools/cmake/modules/FindFlatbuffers.cmake
> >+rename to tensorflow/lite/tools/cmake/modules/FindFlatBuffers.cmake
> >+--
> >+2.34.1
> >+
> >diff --git a/package/tensorflow-lite/0004-Don-t-link-tensorflow-lite-against-gemmlowp.patch b/package/tensorflow-lite/0004-Don-t-link-tensorflow-lite-against-gemmlowp.patch
> >new file mode 100644
> >index 0000000000..d9ad78ef9e
> >--- /dev/null
> >+++ b/package/tensorflow-lite/0004-Don-t-link-tensorflow-lite-against-gemmlowp.patch
> >@@ -0,0 +1,32 @@
> >+From fb584589f707853d85a081c99b1b82598c2631c1 Mon Sep 17 00:00:00 2001
> >+From: James Hilliard <james.hilliard1@gmail.com>
> >+Date: Thu, 24 Nov 2022 15:10:27 -0700
> >+Subject: [PATCH] Don't link tensorflow-lite against gemmlowp
> >+
> >+We can't link against gemmlowp as it is a header only library.
> >+
> >+Fixes:
> >+/bin/ld: cannot find -lgemmlowp: No such file or directory
> >+
> >+Signed-off-by: James Hilliard <james.hilliard1@gmail.com>
> >+[james.hilliard1@gmail.com: backport from upstream commit
> >+fb584589f707853d85a081c99b1b82598c2631c1]
> >+---
> >+ tensorflow/lite/CMakeLists.txt | 1 -
> >+ 1 file changed, 1 deletion(-)
> >+
> >+diff --git a/tensorflow/lite/CMakeLists.txt b/tensorflow/lite/CMakeLists.txt
> >+index f9c30d6a046..3fe5ed15605 100644
> >+--- a/tensorflow/lite/CMakeLists.txt
> >++++ b/tensorflow/lite/CMakeLists.txt
> >+@@ -560,7 +560,6 @@ target_link_libraries(tensorflow-lite
> >+ farmhash
> >+ fft2d_fftsg2d
> >+ flatbuffers::flatbuffers
> >+- gemmlowp
> >+ ruy::ruy
> >+ pthreadpool
> >+ ${CMAKE_DL_LIBS}
> >+--
> >+2.34.1
> >+
> >diff --git a/package/tensorflow-lite/Config.in b/package/tensorflow-lite/Config.in
> >new file mode 100644
> >index 0000000000..8685ec0c71
> >--- /dev/null
> >+++ b/package/tensorflow-lite/Config.in
> >@@ -0,0 +1,36 @@
> >+config BR2_PACKAGE_TENSORFLOW_LITE_ARCH_SUPPORTS
> >+ bool
> >+ default y if BR2_aarch64
> >+ default y if BR2_arm
> >+ default y if BR2_i386
> >+ default y if BR2_x86_64
> >+ depends on BR2_PACKAGE_CPUINFO_ARCH_SUPPORTS
> >+
> >+config BR2_PACKAGE_TENSORFLOW_LITE
> >+ bool "tensorflow-lite"
> >+ depends on BR2_PACKAGE_TENSORFLOW_LITE_ARCH_SUPPORTS
> >+ depends on BR2_INSTALL_LIBSTDCPP
> >+ depends on BR2_TOOLCHAIN_GCC_AT_LEAST_7 # C++17
> >+ depends on BR2_TOOLCHAIN_HAS_THREADS # cpuinfo
> >+ depends on BR2_TOOLCHAIN_USES_GLIBC
> >+ depends on BR2_SHARED_LIBS
> >+ select BR2_PACKAGE_CPUINFO
> >+ select BR2_PACKAGE_EIGEN
> >+ select BR2_PACKAGE_FARMHASH
> >+ select BR2_PACKAGE_FFT2D
> >+ select BR2_PACKAGE_FLATBUFFERS
> >+ select BR2_PACKAGE_GEMMLOWP
> >+ select BR2_PACKAGE_LIBABSEIL_CPP
> >+ select BR2_PACKAGE_NEON_2_SSE
> >+ select BR2_PACKAGE_RUY if BR2_PACKAGE_RUY_ARCH_SUPPORTS
> >+ select BR2_PACKAGE_XNNPACK if BR2_PACKAGE_XNNPACK_ARCH_SUPPORTS
> >+ help
> >+ Tensorflow Lite dynamic library and headers: Inference engine
> >+ to run previously trained machine learning models.
> >+
> >+comment "tensorflow-lite needs a toolchain w/ glibc, C++17, threads"
> >+ depends on !BR2_TOOLCHAIN_USES_GLIBC || !BR2_INSTALL_LIBSTDCPP || \
> >+ !BR2_TOOLCHAIN_GCC_AT_LEAST_7 || !BR2_TOOLCHAIN_HAS_THREADS
> >+
> >+comment "tensorflow-lite needs a toolchain w/ shared libraries"
> >+ depends on !BR2_SHARED_LIBS
> >diff --git a/package/tensorflow-lite/tensorflow-lite.hash b/package/tensorflow-lite/tensorflow-lite.hash
> >new file mode 100644
> >index 0000000000..7d9035707b
> >--- /dev/null
> >+++ b/package/tensorflow-lite/tensorflow-lite.hash
> >@@ -0,0 +1,4 @@
> >+# Locally calculated
> >+sha256 99c732b92b1b37fc243a559e02f9aef5671771e272758aa4aec7f34dc92dac48 tensorflow-lite-2.11.0.tar.gz
> >+# License files, locally calculated
> >+sha256 71c6915d04265772a0339bed47276942c678b45cc01534210ebe6984fd1aec65 LICENSE
> >diff --git a/package/tensorflow-lite/tensorflow-lite.mk b/package/tensorflow-lite/tensorflow-lite.mk
> >new file mode 100644
> >index 0000000000..433eff3242
> >--- /dev/null
> >+++ b/package/tensorflow-lite/tensorflow-lite.mk
> >@@ -0,0 +1,59 @@
> >+################################################################################
> >+#
> >+# tensorflow-lite
> >+#
> >+################################################################################
> >+
> >+TENSORFLOW_LITE_VERSION = 2.11.0
> >+TENSORFLOW_LITE_SITE = $(call github,tensorflow,tensorflow,v$(TENSORFLOW_LITE_VERSION))
> >+TENSORFLOW_LITE_INSTALL_STAGING = YES
> >+TENSORFLOW_LITE_LICENSE = Apache-2.0
> >+TENSORFLOW_LITE_LICENSE_FILES = LICENSE
> >+TENSORFLOW_LITE_SUBDIR = tensorflow/lite
> >+TENSORFLOW_LITE_SUPPORTS_IN_SOURCE_BUILD = NO
> >+TENSORFLOW_LITE_DEPENDENCIES += \
> >+ host-pkgconf \
> >+ host-flatbuffers \
> >+ cpuinfo \
> >+ eigen \
> >+ farmhash \
> >+ fft2d \
> >+ flatbuffers \
> >+ gemmlowp \
> >+ libabseil-cpp \
> >+ neon-2-sse
> >+
> >+TENSORFLOW_LITE_CONF_OPTS = \
> >+ -Dabsl_DIR=$(STAGING_DIR)/usr/lib/cmake/absl \
> >+ -DBUILD_SHARED_LIBS=ON \
> >+ -DCMAKE_CXX_FLAGS="$(TARGET_CXXFLAGS) -I$(STAGING_DIR)/usr/include/gemmlowp" \
> >+ -DCMAKE_FIND_PACKAGE_PREFER_CONFIG=ON \
> >+ -DCMAKE_POSITION_INDEPENDENT_CODE=ON \
> >+ -DEigen3_DIR=$(STAGING_DIR)/usr/share/eigen3/cmake \
> >+ -DFETCHCONTENT_FULLY_DISCONNECTED=ON \
> >+ -DFETCHCONTENT_QUIET=OFF \
> >+ -DFFT2D_SOURCE_DIR=$(STAGING_DIR)/usr/include/fft2d \
> >+ -DFlatBuffers_DIR=$(STAGING_DIR)/usr/lib/cmake/flatbuffers \
> >+ -DNEON_2_SSE_DIR=$(STAGING_DIR)/usr/lib/cmake/NEON_2_SSE \
> >+ -DSYSTEM_FARMHASH=ON \
> >+ -DTFLITE_ENABLE_EXTERNAL_DELEGATE=ON \
> >+ -DTFLITE_ENABLE_GPU=OFF \
> >+ -DTFLITE_ENABLE_INSTALL=ON \
> >+ -DTFLITE_ENABLE_MMAP=ON \
> >+ -DTFLITE_ENABLE_NNAPI=OFF
> >+
> >+ifeq ($(BR2_PACKAGE_RUY),y)
> >+TENSORFLOW_LITE_DEPENDENCIES += ruy
> >+TENSORFLOW_LITE_CONF_OPTS += -DTFLITE_ENABLE_RUY=ON
> >+else
> >+TENSORFLOW_LITE_CONF_OPTS += -DTFLITE_ENABLE_RUY=OFF
> >+endif
> >+
> >+ifeq ($(BR2_PACKAGE_XNNPACK),y)
> >+TENSORFLOW_LITE_DEPENDENCIES += xnnpack
> >+TENSORFLOW_LITE_CONF_OPTS += -DTFLITE_ENABLE_XNNPACK=ON -Dxnnpack_POPULATED=ON
> >+else
> >+TENSORFLOW_LITE_CONF_OPTS += -DTFLITE_ENABLE_XNNPACK=OFF
> >+endif
> >+
> >+$(eval $(cmake-package))
> >--
> >2.34.1
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2023-03-16 20:49 UTC | newest]
Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-03-16 8:34 [Buildroot] [PATCH v6 01/10] package/cpuinfo: new package James Hilliard
2023-03-16 8:34 ` [Buildroot] [PATCH v6 02/10] package/ruy: " James Hilliard
2023-03-16 8:34 ` [Buildroot] [PATCH v6 03/10] package/gemmlowp: " James Hilliard
2023-03-16 8:34 ` [Buildroot] [PATCH v6 04/10] package/pthreadpool: " James Hilliard
2023-03-16 8:34 ` [Buildroot] [PATCH v6 05/10] package/psimd: " James Hilliard
2023-03-16 8:34 ` [Buildroot] [PATCH v6 06/10] package/fp16: " James Hilliard
2023-03-16 8:34 ` [Buildroot] [PATCH v6 07/10] package/xnnpack: " James Hilliard
2023-03-16 8:34 ` [Buildroot] [PATCH v6 08/10] package/fft2d: " James Hilliard
2023-03-16 8:34 ` [Buildroot] [PATCH v6 09/10] package/farmhash: " James Hilliard
2023-03-16 8:34 ` [Buildroot] [PATCH v6 10/10] package/tensorflow-lite: " James Hilliard
2023-03-16 14:43 ` [Buildroot] [PATCH v6 10/10] package/tensorflow-lite: new package - enable example Hager Stefan
2023-03-16 20:49 ` James Hilliard
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).