Summary
A build configured --no-aocldlp fails to link: aocl_kernel_stub.cpp provides
no-op stubs for the AOCL-DLP entry points, but three W4A8 entry points were added
without corresponding stubs.
Missing symbols:
zendnnl::lowoha::matmul::cvt_s4_to_s8
zendnnl::lowoha::matmul::w4a8_populate_plain_s8_cache
zendnnl::lowoha::matmul::broadcast_w4a8_src_scale
Reproduce
Configure with --no-aocldlp and build. Verified on main at 70f4dbf: the link
fails with exactly those three undefined references.
undefined reference to `zendnnl::lowoha::matmul::broadcast_w4a8_src_scale(...)'
undefined reference to `zendnnl::lowoha::matmul::cvt_s4_to_s8(signed char const*, ...)'
undefined reference to `zendnnl::lowoha::matmul::w4a8_populate_plain_s8_cache(...)'
Why it matters beyond this one build flag
--no-aocldlp is the only way to build for hardware AOCL-DLP does not support,
and it is also the configuration that exposes a number of other defects. Because
the library cannot link at all, none of those are reachable or testable until
this is fixed — so this is worth treating as a prerequisite rather than a
standalone nuisance.
Suggested fix
Add the three stubs alongside the existing ones: two log and throw via
EXCEPTION_WITH_LOC, the third returns status_t::unimplemented.
Reference branch (applies to main, builds and links clean):
https://github.com/lwandrebeck/BullDNN/tree/upstream/no-aocldlp-link-w4a8-stubs
Environment
main @ 70f4dbf, configured --no-aocldlp
- Reproduced on AMD PRO A10-8770E (Excavator) and Intel Xeon 6767P, GCC 13/15
Summary
A build configured
--no-aocldlpfails to link:aocl_kernel_stub.cppprovidesno-op stubs for the AOCL-DLP entry points, but three W4A8 entry points were added
without corresponding stubs.
Missing symbols:
zendnnl::lowoha::matmul::cvt_s4_to_s8zendnnl::lowoha::matmul::w4a8_populate_plain_s8_cachezendnnl::lowoha::matmul::broadcast_w4a8_src_scaleReproduce
Configure with
--no-aocldlpand build. Verified onmainat70f4dbf: the linkfails with exactly those three undefined references.
Why it matters beyond this one build flag
--no-aocldlpis the only way to build for hardware AOCL-DLP does not support,and it is also the configuration that exposes a number of other defects. Because
the library cannot link at all, none of those are reachable or testable until
this is fixed — so this is worth treating as a prerequisite rather than a
standalone nuisance.
Suggested fix
Add the three stubs alongside the existing ones: two log and throw via
EXCEPTION_WITH_LOC, the third returnsstatus_t::unimplemented.Reference branch (applies to
main, builds and links clean):https://github.com/lwandrebeck/BullDNN/tree/upstream/no-aocldlp-link-w4a8-stubs
Environment
main@70f4dbf, configured--no-aocldlp