commit:     9473d6b2fdcb2626586197976464e83f63b28454
Author:     Alfredo Tupone <tupone <AT> gentoo <DOT> org>
AuthorDate: Wed Feb 19 21:56:35 2025 +0000
Commit:     Alfredo Tupone <tupone <AT> gentoo <DOT> org>
CommitDate: Wed Feb 19 21:56:54 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=9473d6b2

sci-libs/XNNPACK: add 2024.11.08

Signed-off-by: Alfredo Tupone <tupone <AT> gentoo.org>

 sci-libs/XNNPACK/Manifest                          |  1 +
 sci-libs/XNNPACK/XNNPACK-2024.11.08.ebuild         | 86 ++++++++++++++++++++++
 .../XNNPACK/files/XNNPACK-2024.11.08-gentoo.patch  | 30 ++++++++
 3 files changed, 117 insertions(+)

diff --git a/sci-libs/XNNPACK/Manifest b/sci-libs/XNNPACK/Manifest
index 2d60bf4881cf..50746dd3c40b 100644
--- a/sci-libs/XNNPACK/Manifest
+++ b/sci-libs/XNNPACK/Manifest
@@ -1,3 +1,4 @@
 DIST XNNPACK-2022.02.17.tar.gz 6761154 BLAKE2B 
59be5d9efe6f46d22bc41d3152e6cd3103f6dfafd94cdf3229b86ecf44a46175c613760f3de35c98a24ccdec1783f205c1eceaf21133706fedd5f384529748eb
 SHA512 
aacbe907bb2b7429143f4ec612881fb709fe37e7b3a7f4fd68193dee6bbe82e17d20b2c6f5a8025845a09f8269c1dfeaebfc5bd64ef196fa376d82ac9a44cb8f
 DIST XNNPACK-2022.12.22.tar.gz 8342018 BLAKE2B 
50426a47121418ef00a29b390ab4bb28211c17faaa7f4eacbf3a363fc3511b8655687e7f7f93f13b06a72ff9bcbde033305372687b6f2df1e1d5abaa910fe8be
 SHA512 
1742ad4de3aa1a67cd5a3cbf15d82afc2cc8569a2abac92542f748a440ef37fef4e9d9c302b7b2813e3176934b637c761c1c0956d20ab1ba28b280d9b121d91b
 DIST XNNPACK-2024.02.29.tar.gz 11561561 BLAKE2B 
bb3666edbf2ad87f4b6ba9dcaf28b3ed056b655bfa02e6f9bc350ce84db247ef3e0a6f9f908a0e05244e4b145b6993d465cd19ca763067ae619a7f94b97dc7bd
 SHA512 
8063e27686f7b71cfba05b0c004c46db4506638689ffb112f013b3886de58653b60ca5487978c3f96275c17bb1136883ca4c93ddb2241a2c31925a950cb51759
+DIST XNNPACK-2024.11.08.tar.gz 8923022 BLAKE2B 
1e73ffc1e5d1e1248272910860e59a471b52f207945f0049188d64b944e442fd2bc814105b2fef59e9ec295e9871cae0a805de485a047f9eacedcee2695d6e99
 SHA512 
b9e711e1c69a24e347f64ee21c60a609bff25e36153216382acd3d431e466b127eea81b1d80f00f84699a426c44f8a3566d9b95d0e87079c34f527e05c2db787

diff --git a/sci-libs/XNNPACK/XNNPACK-2024.11.08.ebuild 
b/sci-libs/XNNPACK/XNNPACK-2024.11.08.ebuild
new file mode 100644
index 000000000000..ea77e1c773da
--- /dev/null
+++ b/sci-libs/XNNPACK/XNNPACK-2024.11.08.ebuild
@@ -0,0 +1,86 @@
+# Copyright 2022-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+inherit cmake flag-o-matic
+
+CommitId=4ea82e595b36106653175dcb04b2aa532660d0d8
+
+DESCRIPTION="library of floating-point neural network inference operators"
+HOMEPAGE="https://github.com/google/XNNPACK/";
+SRC_URI="https://github.com/google/${PN}/archive/${CommitId}.tar.gz
+       -> ${P}.tar.gz"
+
+S="${WORKDIR}"/${PN}-${CommitId}
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="+assembly jit +memopt +sparse static-libs test"
+
+RDEPEND="
+       >=dev-libs/cpuinfo-2023.11.04
+       dev-libs/pthreadpool
+"
+DEPEND="${RDEPEND}
+       dev-libs/FP16
+       dev-libs/FXdiv
+"
+
+BDEPEND="test? ( dev-cpp/gtest )"
+RESTRICT="!test? ( test )"
+REQUIRED_USE="test? ( static-libs )"
+
+PATCHES=( "${FILESDIR}"/${P}-gentoo.patch )
+
+src_prepare() {
+       dropTest=(
+               fully-connected-test
+               fully-connected-nc-test
+               subgraph-fp16-test
+               static-reshape-test
+               qd8-f16-qc8w-gemm-minmax-test
+               qd8-f32-qc8w-gemm-minmax-test
+               qd8-f16-qc4w-gemm-minmax-test
+               qd8-f32-qc4w-gemm-minmax-test
+               unary-elementwise-nc-test
+       )
+       for id in ${dropTest[@]}
+       do
+               sed -i \
+                       -e "/ADD_TEST(NAME ${id}/d" \
+                       CMakeLists.txt \
+                       || die
+       done
+       sed -i \
+               -e "/f32-vrsubc/d" \
+               -e "/f16-vsqr/d" \
+               -e "/f16-vlrelu/d" \
+               -e "/f32-f16-vcvt/d" \
+               CMakeLists.txt \
+               || die
+
+       cmake_src_prepare
+}
+
+src_configure() {
+       # -Werror=lto-type-mismatch
+       # https://bugs.gentoo.org/933414
+       # https://github.com/google/XNNPACK/issues/6806
+       filter-lto
+
+       local mycmakeargs=(
+               -DXNNPACK_BUILD_BENCHMARKS=OFF
+               -DXNNPACK_USE_SYSTEM_LIBS=ON
+               -DXNNPACK_BUILD_TESTS=$(usex test ON OFF)
+               -DXNNPACK_LIBRARY_TYPE=$(usex static-libs static shared)
+               -DXNNPACK_ENABLE_ASSEMBLY=$(usex assembly ON OFF)
+               -DXNNPACK_ENABLE_MEMOPT=$(usex memopt ON OFF)
+               -DXNNPACK_ENABLE_SPARSE=$(usex sparse ON OFF)
+               -DCMAKE_POSITION_INDEPENDENT_CODE=ON
+               -DPTHREADPOOL_SOURCE_DIR=/usr
+               -DCPUINFO_SOURCE_DIR=/usr
+       )
+
+       cmake_src_configure
+}

diff --git a/sci-libs/XNNPACK/files/XNNPACK-2024.11.08-gentoo.patch 
b/sci-libs/XNNPACK/files/XNNPACK-2024.11.08-gentoo.patch
new file mode 100644
index 000000000000..a44708a2a88e
--- /dev/null
+++ b/sci-libs/XNNPACK/files/XNNPACK-2024.11.08-gentoo.patch
@@ -0,0 +1,30 @@
+--- a/src/reference/unary-elementwise.cc       2025-02-19 21:58:14.973845984 
+0100
++++ b/src/reference/unary-elementwise.cc       2025-02-19 22:06:55.224576694 
+0100
+@@ -127,6 +127,16 @@
+   }
+ };
+ 
++#ifdef XNN_HAVE_FLOAT16
++template <>
++struct ConvertOp<xnn_bfloat16, _Float16> {
++  explicit ConvertOp(const xnn_unary_uparams*) {}
++  _Float16 operator()(xnn_bfloat16 x) const {
++    return static_cast<_Float16>(static_cast<float>(x));
++  }
++};
++#endif
++
+ template <typename TIn, typename TOut>
+ const xnn_unary_elementwise_config* get_convert_config(
+     std::true_type /*input_quantized*/, std::true_type /*output_quantized*/) {
+--- a/src/xnnpack/requantization.h     2025-02-19 22:36:23.417900964 +0100
++++ b/src/xnnpack/requantization.h     2025-02-19 22:37:06.910367395 +0100
+@@ -121,7 +121,7 @@
+                                                  uint8_t zero_point,
+                                                  uint8_t min, uint8_t max) {
+   assert(scale < 256.0f);
+-  assert(scale >= 0x1.0p-32f);
++  assert(scale >= 1.0f / 4294967296.0f /* 0x1.0p-32f */);
+ 
+   struct ExpMul f32 = parse_f32(scale);
+ 

Reply via email to