Commit Graph

15 Commits

Author SHA1 Message Date
SixtyWang b5b5845787 Refactor Kleidiai code to fix MNN unit test issues
- Refactor getInstance function
- Add 1x1 convolution check in canAccelerate
- Use NHWC as input/output format for Kleidiai and convert format in onExecute
- Remove KAI_CONV_NCHW_IN_OUT macro
- Fix SME build issue on M4
2025-07-08 16:22:23 +08:00
Jules b9a22516bf fix typo of operator 2025-06-17 02:10:14 +00:00
linlin.xu a8f2d34b15 Bump MNN KleidiAI ukernel to fp16_sme2 fp32_sme2 ukernel
Add fp16 and fp32 sme2 kernel
1. Add rhs pack nxk kernel lhs pack kernel
2. Add fp16 GEMM kernel and GEMV kernel
3. Add fp32 GEMM kernel and GEMV kernel
2025-05-27 10:21:24 +08:00
xhzheng1895 444816b145
Merge branch 'alibaba:master' into mnn_kai_interface_refactor 2025-02-11 10:21:56 +08:00
xiaying 766815282f MNN:Sync: Sync Internal 3.0.4 2025-01-22 16:28:36 +08:00
xinhao.zheng 9b39b3c06c Little refine for KAI_CONV_NCHW_IN_OUT implementation 2025-01-21 12:18:07 +08:00
xinhao.zheng 82efb15c3f Refactor MNN KleidiAI interface
Refactor MNN_KleidiAI interface to support more model types,
and facilitate subsequent KleidiAI ukernels' integration.

Re-abstract information stored in class KleidiAI:
1) static info: not related to loaded model, initialized when
interface is constructed and never changed.
2) status: will change while pipeline is running.

Let interface and loaded model decouple for more complex mix
of multiple types of models. Add mAccelType in MNN data structure,
kleidiAI interface will rely on this type to decide which branch
to go.

Move some pack functions to mnn_kleidiai_util.cpp.

Add CPU feature detection in source/backend/cpu/CPURuntime.hpp.
Subsequent ukernels need SME information.
2025-01-07 10:18:20 +08:00
xinhao.zheng 644f22f028 Update mnn_kleidiai interface. 2024-10-22 14:30:07 +08:00
xinhao.zheng f075372c14 Integrate kleidiAI release v0.1.0 into MNN 2.9.3
Put KleidiAI files in folder source/backend/cpu/arm/kleidiAI/kai,
download from arm gitlab and remain unchanged. Maybe will remove
these files and download them when build.

MNNKleidiAI.cpp is interface between MNN and KleidiAI.

Rewrite function in class DenseConvInt8TiledExecutor
, in ConvInt8TiledExecutor.cpp, to call KleidiAI functions.
Maybe implement a new execution later.

Changes to GeometryConvUtils.cpp and ShapeTensorConvert.cpp are for
the input and output of DenseConvInt8TiledExecutor is NCHW,
rather than NC4HW4, to avoid redundant pack/unpack and get better
performance.
2024-10-22 14:29:13 +08:00
xiaying 5895243607 [MNN:Sync] Sync Internal 2.8.4 2024-04-19 11:58:21 +08:00
zhaode.wzd 387775be2a [MNN:Sync] Sync Internal 2.8.0 2023-12-04 11:19:10 +08:00
xiaying 69dba73dc7 [MNN:Sync] Sync internal gitlab
Main Feature:
1. Add OpenCV API and Numpy API Support
2. Protobuf move into MNN
3. Add more op for torchscript convert
4. Add recompute to speed up geometry compute
5. Add ModuleBasic Test
2021-11-30 10:10:53 +08:00
xiaying 5e127496fc Sync Internal Github 2021-02-07 10:47:03 +08:00
Hui Shu ab711d484c Synchronize internal master to Github 2020-12-15 14:12:35 +08:00
Hui Shu d6795ad031 Github release 1.1.0 2020-11-05 16:49:17 +08:00