55 Commits

Author SHA1 Message Date
nihui 41f031e045 reduce redundant tests that do not contribute to coverage (#7042)
* adjust tests
* opt shader coverage op
* update gpu_coverage.cpp atomicor coalesce
2026-10-05 08:57:20 +08:00
nihui 9f9d4ec815 reduce gpu test cases (#7017) 2026-10-01 23:33:05 +08:00
nihui 5ea98309e3 layer param hardening (#7003)
* harden layer parameter validation

Original patches and author identities:
https://github.com/Tencent/ncnn/pull/6912 (beilzx)
https://github.com/Tencent/ncnn/pull/6919 (FluxMind-O)
https://github.com/Tencent/ncnn/pull/6928 (lxcxjxhx)
https://github.com/Tencent/ncnn/pull/6948 (ktz03)
https://github.com/Tencent/ncnn/pull/6950 (ktz03)
https://github.com/Tencent/ncnn/pull/6971 (LI)
https://github.com/Tencent/ncnn/pull/6974 (LI)
https://github.com/Tencent/ncnn/pull/6977 (LI)

Co-authored-by: beilzx <2069360659@qq.com>
Co-authored-by: FluxMind-O <3283918317@qq.com>
Co-authored-by: lxcxjxhx <lxcxjxhx@users.noreply.github.com>
Co-authored-by: ktz03 <2484593937@qq.com>
Co-authored-by: LI <2484593937@qq.com>
2026-09-15 19:18:46 +08:00
nihui 6499fc0348 vulkan bf16 infrastructure (#6469)
* skip gpu bf16 winograd
* update doc
2026-01-04 19:34:50 +08:00
nihui b5bc05e2e8 drop vulkan shader pack8 (#6270) 2025-08-22 11:05:59 +08:00
nihui 171b9d1bba use spdx license header, copyright Tencent (#6152) 2025-07-08 11:01:29 +08:00
nihui 24a3b99f1f drop layer support_image_storage and option use_image_storage (#6126)
* fix pyncnn build
2025-06-16 11:23:41 +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 55709708e9 x86 optimization for convolution int8 packed unified elempack (#4861) 2023-07-22 22:01:37 +08:00
nihui 85991e2e0e test custom option, update ci (#4609)
* early return for cpu test

* make nvidia driver happy

* fix gemm x86 threading
2023-04-10 15:03:57 +08:00
nihui dfbcd3e69b improve vulkan winograd f43 fp16 numerical stability (#4492) 2023-01-30 23:11:57 +08:00
nihui 057b5bb515 split tests (#4354) 2022-11-17 15:28:34 +08:00
nihui 76849cede4 armv8.4 i8mm optimization for convolution gemm int8 (#4034) 2022-07-17 21:29:13 +08:00
nihui 20a14bf5ae arm convolution winograd dot function, adjust arm convolution winograd strategy (#3915) 2022-06-16 16:37:04 +08:00
nihui ca0ba4b25f fine grained winograd options, adjust x86 convolution winograd strategy (#3908)
* fine grained winograd options

* x86 optimization for convolution winograd f23 pack4/pack8/pack16

* fix avx512 and t4 ci

* fix fast direct conv path

* winograd63 is actually slower than winograd43 on very large channel
2022-06-14 19:28:38 +08:00
nihui 131f3d1323 x86 avx512 optimization for convolution winograd pack16to1 and deconvolution family, increase simpleomp argv count (#3694)
* convolution winograd pack16to1

* x86 deconvolution and deconvolutiondepthwise

* simpleomp allow 32 arguments

* drop shadow variable workaround

* less winograd test error
2022-04-12 15:11: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 002c07d4ec mix vulkan winograd f23 and f43 (#3639)
* mix vulkan winograd f23 and f43

* larget epsilon for winograd optimization test
2022-03-19 23:31:46 +08:00
nihui 6941ec8fc9 arm neon optimization for general packed convolution (#3426) 2021-12-22 12:18:17 +08:00
nihui 999e640d43 dynamic convolution weight (#3408) 2021-12-10 22:38:22 +08:00
nihui f10cc6dd93 initial data structure changes for 3dcnn, conv3d, pooling3d (#3378)
Co-authored-by: ElvisYu <elvisyuovo@gmail.com>
Co-authored-by: 余浩文 <m18107220188@163.com>
Co-authored-by: Zr2223 <67497651+Zr2223@users.noreply.github.com>
2021-12-02 16:50:55 +08:00
zhiliu6 814f89ef1a Fuse HardSwish activation into Convolution and InnerProduct (#3233)
* add general fused activation
* add NCNN_FORCE_INLINE option
2021-10-11 15:55:43 +08:00
nihuini d6b2ea5aac arm neon optimization for convolution 3x3 on small channels 2021-04-21 16:33:16 +08:00
nihui 7e1aaa5828 cmake option NCNN_INT8 (#2839) 2021-04-14 12:49:35 +08:00
nihuini 41a4bea954 unroll size 8 for conv3x3s1 pack8to1 int8 arm64 2021-04-07 19:30:03 +08:00
nihui e9cc637573 arm neon optimization for int8 packing kernels (#2809) 2021-04-07 14:06:29 +08:00
nihui 1ea8bfbd2e x86 avx2 conv3x3s1 pack8 direct optimization, fix #2789 2021-03-28 11:30:51 +08:00
nihui a48bf43ef7 test conv/fc int8 with activation 2021-03-27 20:06:18 +08:00
nihui 5fe75f19ef architecture changes for int8 packing (#2771)
* quantize and dequantize tests

* unify activation and usability function

* drop NCNN_REQUANT cmake option, test dequantize requantize pack8, fix webassembly build

* benchmark use requantize int8 model
2021-03-27 18:49:13 +08:00
nihui 3c92a1184b arm neon optimization for general convolution im2col sgemm (#2668)
* arm neon optimization for conv3x3s1 winograd42

* better condition

* Update test_convolution.cpp

* Update test_convolution.cpp

* more proper conditions

* arm neon optimization for general im2col sgemm pack4

* add sgemm

* wip

* wip

* fix armv7 build

* more conditions blah blah

* code format

* fix convolution

* move packed convolution to seperated header source

* unify weight data bf16

* proper conditions

* conv3x3s2 sgemm pack4 test
2021-02-21 22:19:18 +08:00
nihui ab56083ca5 arm neon optimization for conv3x3s1 winograd42 (#2664) 2021-02-06 22:12:23 +08:00
nihuini f437bcdd4c enable fp16s and int8s on newer adreno/mali, actually enable int8 tests 2021-01-28 16:31:29 +08:00
tpoisonooo baf49574c4 innerproduct aarch64 use gemm (#2521)
* perf(innerproduct-arm): add aarch64 gemm

* fix(innerproduct): fix compilation errror

* fix(armv7-innerproduct): fix armv7 compilation error

* fix(innerproduct): fix gemm param

* fix(int8): update mock scales and fix runtime error

* fix(compilation): fix compilation error
2021-01-05 23:29:14 +08:00
nihuini 440db2c8fc conv1x1 pack4 arm fp16sa 2020-08-20 11:33:53 +08:00
nihuini d17c26e925 conv1x1s1 pack4to8 pack8to4 arm fp16sa 2020-08-19 17:25:32 +08:00
nihui db5f05c6f0 conv1x1s1 conv3x3s1 winograd pack8to1 arm fp16sa 2020-08-13 19:03:27 +08:00
nihui 11cffce114 armv8.2 infrastructure (#1856)
* runtime cpu dispatch

* force thread one

* disable openmp for coverage

* simplify test layer

* print NCNN_TARGET_ARCH

* less ci build variants

* weight fp16 storage option

* test convdw int8

* apple a12 a13

* ncnn_add_layer ncnn_add_shader cmake macro
2020-07-19 19:29:52 +08:00
nihui 3ff40b0679 Ci rv32imc (#1940) 2020-07-15 20:25:44 +08:00
nihuini 0d6cc01d55 innerproduct handle mish activation, fix naive C testing, fix #1930 2020-07-10 15:48:22 +08:00
Tijmen Verhulsdonck 3325cf94f8 Added AVX swish/lrn/batchnorm (#1897)
* added avx versions of commonly used layers

* Restyled by clang-format

* Restyled by astyle

* Restyled by clang-format

* Restyled by astyle

* Unroll loops and increase test coverage

* Restyled/pull 1897 (#13)

* Restyle

Co-authored-by: Restyled.io <commits@restyled.io>

* cleanup variable declaration

* fix ctest

* Restyled/pull 1897 (#14)

Restyle
Co-authored-by: Restyled.io <commits@restyled.io>

* Fix ctest for convolutions without AVX.

Co-authored-by: Restyled.io <commits@restyled.io>
2020-07-01 21:41:22 +08:00
Tijmen Verhulsdonck 26999fab19 Fix AVX wino 3x3 and improve convolution test converage (#1891)
* Fix winograd 3x3 avx and extend test converage

* fix ctest on non-avx path

* Restyled by clang-format

* Restyled by astyle

* Restyled by clang-format

* Restyled by astyle

* remove unused broadcasts

* Comment with #if 0

Co-authored-by: Restyled.io <commits@restyled.io>
2020-06-30 12:28:30 +08:00
nihui 3ef995ed1e format code style and setup restyled.io (#1840) 2020-06-13 22:17:51 +08:00
nihui 15a4b2c878 test pad same mode 2020-05-25 21:38:56 +08:00
zhiliu6 3bfabf1d6a Add fused convolution and mish layer support. (#1761) 2020-05-17 13:14:09 +08:00
nihuini b2d9325c0d test activation fusion 2020-04-23 14:52:22 +08:00
nihuini 956ab49d02 fix conv1x1s1 pack4to1 bf16s 2020-04-13 12:39:15 +08:00
nihuini 36f6942fa0 testing time is too long ... 2020-04-13 11:24:31 +08:00
nihui 979dd5fd11 test does not need to provide data type options 2020-04-12 19:28:04 +08:00
nihui 839c4c4e34 smaller test size 2020-03-01 20:19:11 +08:00
nihui 0f7e7bca02 shader shape specialization constant and basic local group size partition (#1523)
* use Mat class for Shape description

* shape specialization constant in compute shader

* wip

* wip

* test forward_inplace, add binaryop unaryop sigmoid test

* fix arm unaryop test

* fix arm binaryop test

* make shape hint optional, cast int8 to fp32, add cast test

* wip

* follow the good and old local size setting for conv1x1

* the optimal local size rewrite

* fix build on msvc

* add permute shader for all packing layout, add permute test

* concat and slice patial shape constant, slice test

* fix slice test

* interp test

* add lrn test, test packing layout implicitly

* add eltwise test

* add normalize test

* add instancenorm test

* reorg shape constant

* simple local group size partition

* add shape constant param
2020-02-17 15:45:29 +08:00