Commit Graph
40 Commits
Author SHA1 Message Date
nihuini 3631c1933d non-inlined addref and release slows down overall speed, move them to header 2021-04-07 18:59:19 +08:00
nihui d7cbc055f3 fix illegal instruction on pi4 when NCNN_ARM82 enabled
compiler may compile inline member functions as noinline blocks for different architectures, and linker may pick the newer arch, that results illegal instructions on old hardware
2021-04-07 11:08:55 +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
5f00ba89d2 feat(ncnnoptimize): replace denormals to zero on layers with weights (#2690)
* feat(ncnnoptimize): replace denormals to zero on layers with weights

Co-authored-by: youngsoo.lee <youngsoo15.lee@gmail.com>
Co-authored-by: Restyled.io <commits@restyled.io>
2021-03-22 10:26:57 +08:00
nihui 79efe33fdc cmake option for platform api uses (#2502)
* cmake option for platform api uses
* adroid gpu ci does not rely on glslangvalidator, add android termux ci
2020-12-25 11:24:56 +08:00
nihui e644164873 reshape arm bf16s fp16s, flatten api 2020-07-31 16:43:36 +08:00
nihui 7f5047d1dc Ci test end2end squeezenet (#1919) 2020-07-06 21:50:45 +08:00
nihui 3ef995ed1e format code style and setup restyled.io (#1840) 2020-06-13 22:17:51 +08:00
tpoisonooo 8e1c3ac4d1 Add crop para check (#1825)
* add copy_cut_border check; fix compile warnings
2020-06-08 21:42:17 +08:00
Naiyang Lin ceef2470a5 Add logger.h (#1753) 2020-05-12 19:33:21 +08:00
nihui 62da1228e1 adreno image shader + fp16 + fp16a (#1714)
* wip

* wip

* fix

* image and imageview can not be destroyed until command execution ends

* fast copy path for tightly packed data

* wip

* texture load works

* 1d 3d image

* record clone image, multiple commands share one image reference

* upload download image

* layer forward accept vkimagemat

* vkimagemat graph works

* staging vkimagemat for passing dynamic parameters, macro for fp32+image shader, padding image shader

* vkimagemat elemsize

* convolution test pass

* conv1x1s1 image shader

* fast staging image allocator from host memory, pooling image shader

* convolutiondepthwise image shader

* innerproduct image shader

* packing image shader

* crop deconvolution image shader

* resolve spirv binding types

* image fp16 and fp16a, cast image shader

* eltwise image shader

* wip

* absval image shader

* deconvolutiondepthwise image shader

* concat image shader, squeezenet works

* noop split image shader

* uniform precision hint

* layer support_image_storage

* wip

* vulkan device utility operator

* command is storage and packing option aware

* fallback to cpu on image allocation failed, mobilenetssd works

* flatten image shader, enable more test

* ci test

* check imgfp32 imgfp16 imgfp16a features

* fix ci test

* fix ci test

* upgrade swiftshader

* wip

* opt aggressive

* imgfp16p

* opt none

* convolution winograd image shader

* fix flush range, fast copy path for continous buffer

* minor fix

* fix innerproduct

* wip ...

* wip

* cast fix

* packing test

* wip

* image fp16p is fp16p

* wip

* silence

* more line info

* code clean

* softmax image shader
2020-04-30 17:08:30 +08:00
nihuini ee118e7d70 reconstruct import android hardwarebuffer api, wip 2020-04-01 15:54:02 +08:00
nihui 44eb28fadc fix cast arm packing test 2020-03-03 23:50:27 +08:00
nihui f214883203 cast between float32 and bfloat16 2020-03-03 22:11:07 +08:00
nihui 7ae585f217 shape hint is elemsize aware 2020-02-20 15:07:05 +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
nihui 6f2ef1932d int8 code refactoring wip, add int8 test 2020-01-05 00:08:11 +08:00
nihuini a86c2f44c3 vkimagemat, vkimageallocator, convenient construct from android hardware buffer 2019-12-25 14:34:34 +08:00
nihuini a170ef1acf remove the default option usage in layer interface, fix write out of range in cast arm pack4, handle fp16p conversion on cpu/gpu transfer 2019-11-08 19:09:29 +08:00
nihui b4c388a72a Mat misc function accept option parameter, deconvolution pack4 arm neon 2019-08-01 14:49:24 +08:00
nihuini c4f23ae8ad rename Mat packing to elempack 2019-07-22 21:19:01 +08:00
nihuini 838c5df839 option api changes 2019-06-04 14:20:18 +08:00
nihuini dfffb29bb5 resize bicubic 2019-03-29 11:29:15 +08:00
nihuini a4b74d27b0 move copy cut border function to operator 2019-03-27 18:28:36 +08:00
nihuini 5a905c7cb9 implement substract_mean_normalize with bias and scale op 2019-03-27 17:32:24 +08:00
nihuini c25c190703 move resize bilinear function to operator 2019-03-27 17:19:05 +08:00
nihuini 43737b378f wrapper function for converting between fp32 and fp16 2019-03-22 10:56:37 +08:00
nihui 8e5674363b element packing (#770)
* mat packing

* packing layer

* packing works

* convert_packing function
2019-01-26 22:55:15 +08:00
nihuini bf1c58be46 padding is elemsize aware, copy_make_border is now a padding wrapper 2018-08-20 18:40:52 +08:00
nihui 9706cd1447 implement ncnn blob/workspace allocator, fine-grained per-layer openmp threads control, fix #469 2018-07-15 20:38:36 +08:00
nihuini ee98817446 proper first row/col handling in resize family, fix #429 2018-06-25 16:09:13 +08:00
dong 6ea09ebf2c Use aarch64 assembly to replace arm intrinsics 2018-03-19 13:01:33 +08:00
nihuini d2ee4e7d27 ld1 and st1 handle data endian mode per element 2018-01-19 16:15:13 +08:00
nihuini a84ba8fc0f element type storage support in Mat, move data member the first so that a pointer to Mat is a pointer to data, convenient index access for float vector 2018-01-05 15:49:45 +08:00
peng 39445b5233 no memcpy for small size copy_cut_border/copy_make_boder 2017-11-02 12:43:04 +08:00
彭 a86cc8f620 memcpy optimize copy_cut_border/copy_make_boder (#179)
* memcpy optimize copy_cut_border/copy_make_boder

* copy small border memcpy may slow

* remove unuse line

* code style
2017-11-02 10:20:23 +08:00
nihui 908a8f48d2 assign same size 2017-10-16 11:16:20 +08:00
nihuini 0edd2b78c5 arm neon optimize for bilinear_resize, about 40% faster 2017-08-23 15:32:20 +08:00
nihuini 613028aa17 implement Mat resize_bilinear 2017-08-23 14:58:15 +08:00
nihuini b7db8be4f6 add ncnn source qwq 2017-06-30 20:01:38 +08:00