nihui
39c055d7f2
crop axes starts ends expression ( #5976 )
* skip dynamic tensor index
* handle clone oom
1 year ago
nihui
07267f2618
softmax 4d test and vulkan, softmax unified elempack optimization for x86 arm riscv ( #5931 )
1 year ago
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
1 year ago
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
1 year ago
zhangyang2057
081a9c39c8
Fix tanh typo for rvv. ( #5584 )
* Fix tanh typo for rvv.
* Fix tanh for rvv fp16.
2 years ago
nihui
08b7d99a75
rnn/lstm/gru dynamic quantization ( #5435 )
2 years ago
nihui
db035d602d
update ncnnoptimize layers, lightmode=false keeps original weight ( #5414 )
2 years ago
nihui
2f65729873
fix riscv v build with old cpp standard, fix #5366 ( #5391 )
2 years ago
Xinyu Yang
7ac42680cf
RVV: Refine riscv gemm fp32 ( #5303 )
* replace storexxx to vsseg2e32_v_f32m1
* refine transpose
---------
Co-authored-by: Xinyu302 <Xinyu302@users.noreply.github.com>
2 years ago
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
2 years ago
nihui
4494aadd74
deconvolution dynamic weight ( #5119 )
2 years ago
邓实诚
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>
2 years ago
Xinyu302
b82d395753
Add riscv float32 gemm ( #4903 )
Co-authored-by: Xinyu302 <Xinyu302@users.noreply.github.com>
2 years ago
nihui
26a70c9b05
fix build with vanilla c906 toolchain ( #5048 )
2 years ago
nihui
cb674ac5ed
fix build with toolchain defined _L _U constants ( #4957 )
2 years ago
nihui
4abadd2ffb
binaryop implicit broadcast B with 1 dimension rank for outer axis ( #4930 )
2 years ago
nihui
1283a19305
pnnx convert torch round trunc ( #4813 )
* update riscv qemu
* c906 test on qemu
* fix qemu aarch64
3 years ago
nihui
9022b7162a
implement all explicit binaryop broadcast types ( #4809 )
* simplify binaryop
* less gpu test
* update binaryop broadcast doc
* do not test atan2 zero
3 years ago
nihui
f893d2440d
innerproduct allow 1 height gemm ( #4730 )
3 years ago
zhiliu6
125b9f2baf
reduce double usage ( #4671 )
3 years ago
nihui
d0c2738043
update riscv winograd f43 coeffs and fix some warnings ( #4537 )
* update winograd f43 coeffs
* rvv tanh rework
* fix warnings
* rebuild qemu
3 years ago
nihui
1832da8292
concat 4d ( #4528 )
3 years ago
nihui
242e775d21
pnnx convert torch log10, pow 2 as square ( #4518 )
3 years ago
nihui
246e71c526
implement atan2 ( #4516 )
3 years ago
nihui
ab4cfbf5b0
enrich ncnn binary broadcast rules ( #4513 )
3 years ago
Xavier Hsinyuan
d1ac1de7ab
RVV: InstanceNorm with fp16s(a) support ( #4078 )
3 years ago
Xavier Hsinyuan
31602bd2dc
RVV: BatchNorm with fp16s(a) support ( #4075 )
3 years ago
Xavier Hsinyuan
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>
3 years ago
nihui
b4ba207c18
more strict compiler rvv checks, drop rvv-071 support ( #4094 )
4 years ago
nihui
8c06103132
riscv convolution winograd dot function and strategy ( #3921 )
* riscv convolution dot function
* move rvv ci to centos
* apply code-format changes
* fix gcov path
* move newlib riscv ci to centos
4 years ago
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
4 years ago
nihui
40a69a2dd3
discard riscv weight memory ( #3874 )
* discard riscv innerproduct weight
* drop riscv conv convdw weight
* drop riscv deconv deconvdw weight
4 years ago
nihui
667be10fb0
riscv general optimization for convolution sgemm and winograd and innerproduct ( #3857 )
* riscv general optimization for convolution sgemm and winograd pack1
* riscv general optimization for innerproduct
* riscv general optimization for convdw3x3
4 years ago
nihui
e49f0226e1
multi-threading rnn/lstm/gru with openmp ( #3834 )
4 years ago
nihui
f48d45209b
binaryop type specialization ( #3830 )
4 years ago
nihui
bf64d8f1ec
fix winograd function name ( #3820 )
4 years ago
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_*
4 years ago
Xavier Hsinyuan
cea2aff3bb
RVV Optimized erfc and GELU ( #3726 )
* RVV optimized GELU(fp32) and erfc(fp32)
4 years ago
nihui
eadb2381dd
force fp32 accumulator for global pooling ( #3708 )
4 years ago
nihui
9298d05e86
split convolution winograd transform input output ( #3688 )
4 years ago
nihui
920aa79f04
drop x86 avx2 fp16 ( #3568 )
4 years ago
nihui
76e32e9ee6
fix interp nearest by scale factor, fix issue #3555 ( #3565 )
* lets accept the float div vs recp error
4 years ago
tpoisonooo
cfacba273f
improvement(binaryop): use MAKE_FUNCTION macro ( #3559 )
Co-authored-by: MegEngine <megengine@megvii.com>
Co-authored-by: tpoisonooo <tpoisonooo@users.noreply.github.com>
4 years ago
nihui
e1a8c87bc8
wrap namespace for function objects ( #3558 )
4 years ago
nihui
3f2799d706
always build tightly packed weight, fix #3545 ( #3547 )
4 years ago
nihui
3a83704c38
binary4d, unary4d ( #3443 )
4 years ago
nihui
6941ec8fc9
arm neon optimization for general packed convolution ( #3426 )
4 years ago
nihui
999e640d43
dynamic convolution weight ( #3408 )
4 years ago
nihui
426e564b6e
general simd optimization for convolution1d ( #3404 )
4 years ago
nihui
f98c396e6b
crop4d ( #3402 )
4 years ago