Commit Graph

81 Commits

Author SHA1 Message Date
nihui f6f734f44d vulkan int8 kernels (#6751)
* vulkan: add int8 kernels for core layers
Implement Vulkan int8 paths for convolution, convolutiondepthwise, innerproduct, and gemm with scalar fallback and integer dot product shader branches. Add goal.md and enable existing int8 unit tests for Vulkan coverage.
* enable int8 gpu benchmark
2026-06-17 17:39:49 +08:00
Apeiria 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
張小凡 b8a1c92cce fix format specifier for size_t to support 64-bit values (#6315)
---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-09-12 14:00:27 +08:00
nihui b5bc05e2e8 drop vulkan shader pack8 (#6270) 2025-08-22 11:05:59 +08:00
WANG KE 4d8220ce22 Skip int8 model on GPU and merge from upstream (#6174) 2025-07-12 17:06:46 +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 ded0b78bb2 fix nvidia vulkan crash on exit (#5234) 2023-12-20 11:32:53 +08:00
Justin Fung 465debe9bb Add print statements for 4 dimensions benchmark (#5148) 2023-11-15 11:43:59 +08:00
邓实诚 a1e3ebf8e5 implement simplemath (#4905)
* complete abs, fmod and sin function in simplemath.h

* remove some unused variables in simplemath.cpp

* modify test-coverage.yml and add some functions to simplemath.cpp

* modify erf.cpp which included math.h

* include platform.h for NCNN_SIMPLEMATH definition

* move utility constants and functions in simplemath.h to simplemath.cpp

* guard simplemath functions with extern "C"

* add NCNN_EXPORT macro in simplemath.h

* include plateform.h and guard all declarations with NCNN_SIMPLEMATH

* clean unused code in test_unaryop.cpp

* guard #include <vector> with NCNN_SIMPLEMATH in benchncnn.cpp

* add 'static' to guard functions that not declarated in header file

* modify sin and cos with better implementation

---------

Co-authored-by: HonestDeng <HonestDeng@users.noreply.github.com>
2023-10-23 10:51:51 +08:00
tpoisonooo a24787b32b feat(benchmark/benchncnn.cpp): support user defined case (#4782) 2023-08-11 11:17:24 +08:00
張小凡 0e09ae1290 Reimplement the sleep() and get_current_time() functions using modern C++. (#4677) 2023-05-16 14:22:29 +08:00
triple Mu 544adbb051 Fix destory in gpu (#4653) 2023-04-20 13:51:00 +08:00
triple Mu e36dbdfd93 Fix core dump in benchmark (#4648) 2023-04-19 22:49:37 +08:00
nihui 804ac3421d infrastructure and optimization for a53 and a55 (#4596)
* new api for detecting arm midr and a53 a55 arch info wrapper

* let a35 be a53 :P

* a53 bf16s

* detect running core
2023-04-07 12:47:05 +08:00
nihui b853b3d132 get_physical_cpu_count api family (#4302)
* get_physical_cpu_count api family

* set default to physical big cpu

* always treat smt core as big core

* is_smt_cpu

* get max freq mhz on windows

* windows thread affinity
2022-10-31 10:48:22 +08:00
LinHe 9426e21166 Memory Pool Improvement For Variadic Sized Inputs (#4190)
* Simple miss count for better space efficiency

* Simple double ended greedy;

* Add size drop threshold setter;

* set workspace allocator cr to zero as we had some sort of recylcing capability :P

Co-authored-by: LinHeLurking <LinHeLurking@users.noreply.github.com>
Co-authored-by: nihuini <nihuini@tencent.com>
2022-10-09 10:42:51 +08:00
nihui 1d0917c83b fix build with very old gcc (#4048)
* clear bom marker, avoid vector data function
2022-07-20 14:46:51 +08:00
xuehao.ma 962a49069a add the param file of fastestdet in benchmark (#4026) 2022-07-12 21:55:03 +08:00
tpoisonooo 6fd801b6d7 feat(src/layer): add vision_transformer benchmark (#3730)
* feat(src/layer): add vision_transformer benchmark and relative layer

* refactor(testutil.h): add para for RandomMat
2022-05-17 16:13:49 +08:00
dog-qiuqiu 009d607a15 add the param file of yolo-fastest in benchmark (#3470) 2022-01-01 22:39:57 +08:00
BUG1989 2112a4d7c3 add the param file of nanodet_m in benchmark (#3047)
* add the param file of nanodet_m in benchmark

* add Noop layer into nanodet_m param for benchmark

* update nanodet_m.param
2021-07-03 14:46:51 +08:00
nihuini 26dc9820e4 custom mlir ncnn optimize pass, add efficientnetv2_b0 benchmark 2021-05-19 16:34:18 +08:00
Cai Shanli 8cc8cd716a Add get input and output names (#2890) 2021-05-17 19:11:37 +08:00
nihui e4a4b51d27 openmp on webassembly (#2234)
* openmp on webasm works

* fix compile flags

* dynamic kmp runtime initialization

* clang simpleomp ci

* fix dispatch on unique cpu
2020-10-20 14:41:03 +08:00
Evgeny Proydakov 8b0c46c45d A single approach was used to suppress the msvc C4996 compiler warning [_CRT_SECURE_NO_WARNINGS] (#2208) 2020-10-13 21:20:05 +08:00
fawdlstty 1d1cb29869 Fixed compile warning due to default cast (#2201) 2020-10-13 16:23:12 +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 fe6bc1ed4d Ci rv64gcv and rv64gc (#1936) 2020-07-14 22:55:19 +08:00
zhiliu6 cdbff653b8 Add yolov4 example option. (#1913)
* Add yolov4 example option.
Add yolov4-tiny for benchmark.

* Restyled by astyle

* Restyled by clang-format

* Restyled by astyle

Co-authored-by: Restyled.io <commits@restyled.io>
2020-07-05 21:44:41 +08:00
nihui 164273de61 online pipeline cache (#1792)
* online pipeline cache wip

* device-wide pipeline cache

* enable model-wide pipeline cache

* drop pre-created shader modules

* always use pipeline cache

* use implicit model-wide pipeline cache, code format

* code clean
2020-07-04 12:30:50 +08:00
nihuini 9bb06e46cf implicit gpu instance creation, fix #1849 2020-06-18 19:02:01 +08:00
nihui 3ef995ed1e format code style and setup restyled.io (#1840) 2020-06-13 22:17:51 +08:00
Tijmen Verhulsdonck da09e5e7f1 Adding channel padding support for blazeface model. (#1826)
* Add channel padding and blazeface model support.

* remove python binding

* remove std::min usage

* fix reference blob usage

* Increased padding test  coverage

* implement requested changes
2020-06-09 19:25:40 +08:00
nihuini 03a5378651 efficientnet-b0 and regnety-400m benchmark 2020-06-03 14:00:14 +08:00
nihuini 054ec09195 adreno device blacklist 2020-06-01 16:16:53 +08:00
nihuini d232272db0 lower end gpu friendly 2020-05-19 16:07:34 +08:00
nihuini b71f22d074 report adreno info, benchncnn enable image storage on adreno 2020-05-19 12:35:52 +08:00
nihui 9a9a618229 image storage is mandatory, less options makes life easier 2020-05-08 00:09:35 +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
kalcohol 06e129d259 add skip cooling down option (#1566)
* add option for cooling down

* add option for cooling down
add the option usage
add benchmark of RTX2080

* add  benchmark of rtx2060
2020-02-29 19:27:06 +08:00
nihui 6f2ef1932d int8 code refactoring wip, add int8 test 2020-01-05 00:08:11 +08:00
Sungmann Cho 447b1369f5 Fix warnings on Visual Studio (#1422)
* Change DataReader::read()'s signature to fix warning C4267

This CL fixes lots of warning "C4267: 'initializing': conversion from
'size_t' to 'int'" in our codebase by matching DataReader::read()'s
signature to fread().

* Fix warnings C4244 and C4267 in tools/ncnnoptimize.cpp

C4244: 'initializing': conversion from 'double' to 'float',
    possible loss of data
C4267: 'initializing': conversion from 'size_t' to 'int',
    possible loss of data

* Fix warning C4244 in src\layer\selu.cpp

C4244: '=': conversion from 'double' to 'float', possible loss of data

* Fix warning C4244 in src\layer\cast.cpp

C4244: '=': conversion from 'double' to 'float', possible loss of data
C4244: 'return': conversion from 'float' to 'signed char', possible loss of data

* Fix warning C4244 in src\layer\psroipooling.cpp

C4244: 'initializing': conversion from 'double' to 'float',
    possible loss of data
C4244: 'initializing': conversion from 'double' to 'int',
    possible loss of data
2019-12-13 16:19:13 +08:00
nihuini 2e59da35a9 fill input and weight data with zero 2019-10-28 19:43:44 +08:00
nihuini 02b07b3e43 update qcom810 and iphone5s benchmark 2019-10-28 15:22:05 +08:00
nihuini 64333429bb data reader wrapper, fix #1325 2019-10-25 19:18:40 +08:00
nihuini 567e2bd501 a dirty hack for resolving int8 pack4 crash 2019-10-25 11:48:39 +08:00
nihuini f8caef7691 add shufflenet_v2 benchmark 2019-10-24 16:53:47 +08:00
nihuini 9d4255a4a4 add mobilenet_v3 benchmark 2019-08-19 19:55:31 +08:00
Eric Liu f5eee84185 Update mobilenetv2-yolov3 (#1165)
* Add mobilenetv2_yolov3 ,and remove old model

* Recovery yolov2

* Update link
2019-08-02 16:42:16 +08:00