XNNPACK icon indicating copy to clipboard operation
XNNPACK copied to clipboard

When linking my own project to XNNPACK's library, I get an error: undefined reference to 'xnn_f32_vadd_ukernel__neon_u8'

Open wrnwwrnw opened this issue 10 months ago • 3 comments

XNNPACK was compiled under ARMv8 without problems, but my own project linking to libxnnpack.a encountered the following error, /usr/bin/ld: XNNPACK/build/libXNNPACK.a(binary-elementwise-config.c.o): in function `init_f32_vadd_config':

binary-elementwise-config.c:(.text+0xc): undefined reference to `xnn_f32_vadd_ukernel__neon_u8'

/usr/bin/ld: binary-elementwise-config.c:(.text+0x10): undefined reference to `xnn_f32_vaddc_ukernel__neon_u8'

/usr/bin/ld: binary-elementwise-config.c:(.text+0x14): undefined reference to `xnn_f32_vadd_ukernel__neon_u8'

/usr/bin/ld: binary-elementwise-config.c:(.text+0x18): undefined reference to `xnn_f32_vaddc_ukernel__neon_u8'

Writing a test test link phase is fine, but when it comes to project code referencing the XNNPACK function get an error like above, check that neon is turned on correctly.

wrnwwrnw avatar Feb 18 '25 07:02 wrnwwrnw

a build produces a collection of libraries libaarch64_prod_microkernels_private.a libaarch64_prod_microkernels_private.pic.a libfp16arith_prod_microkernels_private.a libfp16arith_prod_microkernels_private.pic.a libneon_aarch64_prod_microkernels_private.a libneon_aarch64_prod_microkernels_private.pic.a libneonbf16_prod_microkernels_private.a libneonbf16_prod_microkernels_private.pic.a libneondot_aarch64_prod_microkernels_private.a libneondot_aarch64_prod_microkernels_private.pic.a libneondotfp16arith_prod_microkernels_private.a libneondotfp16arith_prod_microkernels_private.pic.a libneondot_prod_microkernels_private.a libneondot_prod_microkernels_private.pic.a libneonfma_aarch64_prod_microkernels_private.a libneonfma_aarch64_prod_microkernels_private.pic.a libneonfma_prod_microkernels_private.a libneonfma_prod_microkernels_private.pic.a libneonfp16arith_aarch64_prod_microkernels_private.a libneonfp16arith_aarch64_prod_microkernels_private.pic.a libneonfp16arith_prod_microkernels_private.a libneonfp16arith_prod_microkernels_private.pic.a libneonfp16_prod_microkernels_private.a libneonfp16_prod_microkernels_private.pic.a libneoni8mm_prod_microkernels_private.a libneoni8mm_prod_microkernels_private.pic.a libneon_prod_microkernels_private.a libneon_prod_microkernels_private.pic.a libneonv8_prod_microkernels_private.a libneonv8_prod_microkernels_private.pic.a libscalar_prod_microkernels_private.a libscalar_prod_microkernels_private.pic.a

fbarchard avatar Feb 20 '25 09:02 fbarchard

Did you solved your issue?

I'm having

libxnnpack_backend.a(XNNCompiler.cpp.o): in function executorch::backends::xnnpack::delegate::defineExpNode(xnn_subgraph*, std::unordered_map<unsigned int, unsigned int, std::hash<unsigned int>, std::equal_to<unsigned int>, std::allocator<std::pair<unsigned int const, unsigned int> > > const&, fb_xnnpack::XNode const*, fb_xnnpack::XNNGraph const*)': XNNCompiler.cpp:(.text._ZN10executorch8backends7xnnpack8delegate13defineExpNodeEP12xnn_subgraphRKSt13unordered_mapIjjSt4hashIjESt8equal_toIjESaISt4pairIKjjEEEPKN10fb_xnnpack5XNodeEPKNSH_8XNNGraphE+0xdc): undefined reference to xnn_define_exp'

AvilaGTZ avatar Sep 28 '25 00:09 AvilaGTZ

Hi @AvilaGTZ ,

The function xnn_define_exp is defined in `src/subgraph/deprecated.c``.

Are you sure this is being linked in whith your build target?

Cheers, Pedro

gonnet avatar Sep 29 '25 09:09 gonnet