Commit Graph
90 Commits
Author SHA1 Message Date
nihui 127b414614 reshape support batch to/from dim (#6784) 2026-07-02 19:29:34 +08:00
0f5c6ef2ce massive mips and loongarch optimization (#6662)
Co-authored-by: nihui <171016+nihui@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-05-19 08:19:35 +08:00
6b4f6f95e5 [feat](benchmark): replace load_param with load_param_mem (#6286)
* [feat](benchmark): replace load_param with load_param_mem

* [docs](benchmark): update benchmark docs

* refactor(benchmark): remove model registry and optimize param loading

* fix(benchmark): correct README param description

* refactor(benchmark): rename header file

* update doc

---------

Co-authored-by: nihui <nihuini@tencent.com>
Co-authored-by: nihui <shuizhuyuanluo@126.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-01-08 14:23:00 +08:00
nihui dce28a009a remove shader comments and extra spaces (#6493) 2026-01-07 08:52:16 +08:00
柚木 鉉 1679a50c2d add support for riscv32+rvv1.0 (rv32 and rv64ilp32) with c907 support (#6280)
* add support for riscv32+rvv1.0 (rv32 and rv64ilp32) with c907 support

* add new action linux rv32 and some fix
1. add new action linux rv32
2. add new toolchains c907-v310 for lp64d
3. fix action paths check
2025-08-25 14:12:30 +08:00
Willaaaaaaa 04341120d4 feat: add cmake print ver support (#6165) 2025-07-11 10:44:29 +08:00
Naiyang Lin 501d235370 optimize scanning of vulkan shader files in ncnn_add_layer() (#6019) 2025-04-25 12:00:14 +08:00
nihui f5269b65f2 update modern glslang (#5910)
* update modern glslang

* fix build with cpp14
2025-02-19 17:48:24 +08:00
nihui 5285895710 Revert "define empty assertion termination function for fixing linking with old android ndk (#5847)" (#5854)
This reverts commit e431218618.
2024-12-26 10:56:43 +08:00
nihui e431218618 define empty assertion termination function for fixing linking with old android ndk (#5847) 2024-12-25 11:06:23 +08:00
nihui 9f67ff1e9e use optional compile flags only when runtime cpu is on (#5827) 2024-12-18 12:59:30 +08:00
nihui 19caca3140 port rvv intrinsic 1.0+ (#5642)
* zfh zvfh xtheadvector infra
* dispatch for rvv and xtheadvector
* dispatch for non-vector zfh
* port xtheadvector recp rsqrt trunc
* general rvv gemm
* c906 and c910 ci
* old tuple code clean
* update riscv64 ci
* update build doc
* drop old th1520 toolchain
2024-12-04 16:16:17 +08:00
nihui 8d2ac57824 fix missing asimdfhm target macro in ndk-r21 (#5804) 2024-11-28 13:50:05 +08:00
nihui 9cefe9a624 avx vnni int8, avx vnni int16, avx ne convert infrastructure (#5749) 2024-11-14 15:00:07 +08:00
nihui 1c7af00499 gemm int8 quantization (#5706)
* quantize gemm

* write gemm quantize scales

* update doc

* less openmp args

* x86 riscv fallback

* skip gemm vulkan int8

* fix noint8 test, fix arm bf16 test

* enable vfpv4 on neon build only

* fix gemm vulkan without C

* fp16 pack8 output

* enable elempack=8 only for asimdhp+

* tiled gemm int8 test

* opt arm64 tiles, fix asimdhp dispatch
2024-10-12 19:02:55 +08:00
nihui c4a007406d windows clang ci (#5469)
* windows clang ci

* clang msvc use x86intrin.h for xop

* test arm64 compiler features
2024-05-23 18:45:26 +08:00
nihui 08b7d99a75 rnn/lstm/gru dynamic quantization (#5435) 2024-05-08 19:25:51 +08:00
nihui fafb897ff7 update ios toolchain, add visionos ci, update watchos, ncnn target ilp32 (#5399) 2024-04-03 11:05:32 +08:00
nihui 556b79ce4d create layer decoupled (#5258)
* create layer decoupled
* no more virtual public
* allow build test with shared library
* decouple cpu vulkan
* drop old scripts
2024-01-05 14:08:15 +08:00
nihui 058aa0ad37 enable arm neon intrinsics for msvc build (#5151) 2023-11-21 15:48:04 +08:00
nihui b4f26237cb in-house vulkan loader (#5130)
* vulkan-driver-loader.md
* static vulkan on apple
2023-11-09 16:58:23 +08:00
nihui 9ecf6a61be x86 optimization for convolution int8 gemm unified elempack (#4881) 2023-08-29 17:17:38 +08:00
nihui 6c21b08727 check loongarch lasx and enable (#4820) 2023-06-27 12:16:21 +08:00
nihui 7fb16be32a fix aarch64 build without fp16 conversion intrinsics (#4713)
* fix aarch64 build without fp16 conversion intrinsics

* vfpv4 always implies neon
2023-05-09 15:35:42 +08:00
nihui d2d012dce5 x86 bfloat16 cast functions (#4491)
* simplify cast fp16 avx512 dispatch

* define sse4.1 macro on msvc avx+
2023-01-30 18:24:06 +08:00
nihui 15761fc1a6 arm vfpv4 asimdhp asimdfhm optimization for gemm (#4432) 2022-12-28 21:29:21 +08:00
nihui 7b3261dace gemm arm optimization (#4426)
* cmake determine target 32bit and 64bit
* include opt source with non-runtime cpu
* check compiler support gnu style inline assembly
2022-12-19 13:12:07 +08:00
nihui c934c6e94a fix openmp affinity abort when cpu goes offline (#4370) 2022-11-26 16:53:49 +08:00
nihui f527fe88ee update glslang (#4361) 2022-11-21 18:30:44 +08:00
junchao-loongson 279222c2c9 add vector optimization for loongarch64 (#4242) 2022-11-11 18:42:39 +08:00
e7eadca6c1 RVV: use new interface for segment load/store & change word_type to size_t&add clang ci (part #4100) (#4118)
* RVV: use size_t for vl

* RVV: replace vsseg.v tuple type by using regex

-----

search:
vsseg([1-9])e(8|16|32)_v_(f|i|u)\2m(1|2|4|8)x\1\(([ -~]+), vcreate_\3\2m\4x\1\(([ -~]+)\), vl\);

substitute by:
vsseg$1e$2_v_$3$2m$4($5, $6, vl);

* RVV: replace vssseg.v tuple types by using regex

---

search:
vssseg([1-9])e(8|16|32)_v_f\2m1x\1\(([ -~]+), vcreate_f\2m1x\1\(([ -~]+)\), vl\);

substitute by:
vssseg$1e$2_v_f$2m1($3, $4, vl);

* RVV: replace vlseg.v tuple types in load/store

* RVV: replace vloxseg2ei32.v tuple types

* RVV: add a wrapper for old compilers

* RVV: add segment load/store wrapper in pakcing

* RVV: fix cmake test

* RVV: make clang happy by dropping VLAs in sgemm

* RVV: add clang cmake toolchain configure

* RVV: add clang ci, riscv64-unknown-linux-gnu

Co-authored-by: thelastlin <thelastlin@users.noreply.github.com>
Co-authored-by: nihui <shuizhuyuanluo@126.com>
2022-10-01 21:24:37 +08:00
nihui b4ba207c18 more strict compiler rvv checks, drop rvv-071 support (#4094) 2022-07-28 17:47:27 +08:00
nihui 76849cede4 armv8.4 i8mm optimization for convolution gemm int8 (#4034) 2022-07-17 21:29:13 +08:00
nihui dd86cebab8 armv8.6 ci and coverage (#4025)
* asimdfhm in fc
* move neon bf16 conversion function to arm_usability header
* fix cmake option
* fix build with newer gcc
* arm84 coverage
* arm asimdfhm optimization for innerproduct gemm fp16s
2022-07-14 14:27:47 +08:00
nihui b85bfb6085 armv8.2 asimdfhm and armv8.4 bf16 i8mm and armv8.6 sve sve2 compiler flags and runtime detection functions (#3964) 2022-06-28 18:15:55 +08:00
nihui 440bfdd2cc x86 f16c optimization for innerproduct (#3944) 2022-06-23 19:00:33 +08:00
nihui 1fd7138d2f armv7 vfpv4 infrastructure (#3929)
* armv7 vfpv4 infrastructure
* optional fp16 format ieee
* arm neon assembly optimization for cast fp16/bf16
2022-06-20 16:25:26 +08:00
nihui 1377acf945 avx512 bf16 fp16 infrastructure (#3926) 2022-06-19 14:33:59 +08:00
nihui 7886e90c65 split arm82 source for smaller binary and memory footprint (#3877)
* split arm82 source, wip

* check compiler arm82 only for arm 64bit target

* drop arm82 registery

* strict check compiler support arm82
2022-06-04 22:27:24 +08:00
nihui 241524ffce discard weight memory for x86 arm vulkan (#3865)
* discard weight memory for x86 and vulkan
* drop arm innerproduct weight
* drop arm convolution weight
* drop arm convolutiondepthwise weight
* drop x86 vulkan deconvolution deconvolutiondepthwise weight
* drop arm deconvolution deconvolutiondepthwise weight
* arm neon assembly optimization for innerproduct pack4
2022-06-01 10:16:35 +08:00
Xavier Hsinyuan 29b6a32ac0 RVV: follow intrinsic doc, replace vfredsum_* with vfredusum_* (#3790)
* RVV: follow intrinsic doc, vfredusum -> vfredsum

* C906: change toolchains for vfredusum

* RVV: test compiler for vfredusum_vs_*
2022-05-15 21:51:49 +08:00
nihui 9826f3dbf8 shader include vulkan activation, workaround for moltenvk tanh half4 issue (#3711) 2022-04-16 20:34:56 +08:00
nihui dadc640c66 x86 avx512 optimization (#3581)
* unified relu avx512

* unifed clip avx512

* unaryop avx512

* sigmoid avx512

* binaryop avx512

* padding convolution avx512

* convolutiondepthwise avx512

* innerproduct avx512

* reshape avx512

* slice avx512

* hardsigmoid hardswish avx512

* swish avx512

* pooling avx512

* crop avx512

* convolution sgemm pack16

* convolution 3x3 winograd pack16

* interp avx512

* convolution sgemm pack1to16

* convolution sgemm pack16to8

* convolution sgemm pack8to16

* convolution sgemm pack16to4

* fix vulkan permute pack8

* fix vulkan convolution gemm pack8to1
2022-04-09 17:23:27 +08:00
nihui a9c59bb93c add -mavx512bw flag for avx512 build (#3671) 2022-04-06 12:16:43 +08:00
nihui 4eb279ce26 add loongson mmi compiler header, less msa prefetch distance (#3678) 2022-04-05 17:21:37 +08:00
nihui 1fcad0e765 loongson mmi optional layer 2022-04-03 09:57:44 +08:00
nihui 457e066eb5 x86 f16c infrastructure (#3577) 2022-02-24 18:29:18 +08:00
nihui 4654030541 decouple x86 fma avx2 (#3560) 2022-02-12 18:28:59 +08:00
nihuini 51ecc33d9d check avx512vl extension for discarding old-slow avx512 chips, enable avx512 option by default 2022-02-09 14:28:33 +08:00
nihui 672daa7e04 xop infrastructure and optimization (#3541) 2022-02-03 16:31:37 +08:00