ncnn icon indicating copy to clipboard operation
ncnn copied to clipboard

RVV: use new interface for segment load/store & change word_type to size_t&add clang ci (part #4100)

Open thelastlin opened this issue 3 years ago • 5 comments

Tuple types in segment load/store operation have been removed from latest compilers.

This PR uses new interface for segment load/store, and add some wrapper for old compilers which only support tuple types.

This PR also change word_type to size_t, then add clang ci (riscv64-unknown-linux-gnu).

(Issue #4100)

thelastlin avatar Aug 05 '22 16:08 thelastlin

Codecov Report

Merging #4118 (6612a44) into master (00c08d7) will increase coverage by 0.01%. The diff coverage is 100.00%.

@@            Coverage Diff             @@
##           master    #4118      +/-   ##
==========================================
+ Coverage   94.43%   94.44%   +0.01%     
==========================================
  Files         748      750       +2     
  Lines      179005   179375     +370     
==========================================
+ Hits       169047   169417     +370     
  Misses       9958     9958              
Impacted Files Coverage Δ
src/layer/riscv/padding_packn.h 100.00% <ø> (ø)
src/layer/riscv/riscv_activation.h 100.00% <ø> (ø)
src/layer/riscv/rvv_mathfun.h 100.00% <ø> (ø)
src/layer/riscv/rvv_mathfun_fp16s.h 100.00% <ø> (ø)
src/layer/riscv/absval_riscv.cpp 100.00% <100.00%> (ø)
src/layer/riscv/binaryop_riscv.cpp 100.00% <100.00%> (ø)
src/layer/riscv/cast_riscv.cpp 95.58% <100.00%> (ø)
src/layer/riscv/clip_riscv.cpp 100.00% <100.00%> (ø)
src/layer/riscv/concat_riscv.cpp 95.58% <100.00%> (ø)
src/layer/riscv/convolution1d_riscv.cpp 99.00% <100.00%> (ø)
... and 78 more

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

codecov-commenter avatar Aug 05 '22 16:08 codecov-commenter

Failed to pass tests when build with riscv-gcc/riscv-gcc-rvv-next(edffbea), binutils-2.39 :

test_convolution
test_convolution1d
test_convolutiondepthwise
test_deconvolution
test_deconvolutiondepthwise
test_squeezenet

thelastlin avatar Aug 06 '22 03:08 thelastlin

Failed to pass tests when build with riscv-gcc/riscv-gcc-rvv-next(edffbea), binutils-2.39 :

Succeed with clang-14 with following requirement to build:

  • Append some type definitions in riscv-vector.h;
  • clang++ complains VLAs; [83d7d50]
  • Need binutils-2.39 and other GNU toolchains (--gnu-toolchain=); [113052b]
  • --ld-path= to ld in RISC-V GNU toolchains may required. [113052b]

thelastlin avatar Aug 06 '22 08:08 thelastlin

Failed to pass tests when build with riscv-gcc/riscv-gcc-rvv-next(edffbea), binutils-2.39

Use riscv-gcc/riscv-gcc-rvv-next(32c7d7c), binutils-2.39 instead.

thelastlin avatar Aug 11 '22 11:08 thelastlin

Hi, would you mind telling me whether there is still some bugs when running your algorithm using the latest riscv-gcc-rvv-next.

If you encounter any bugs or performance issues, feel free to file a issue here: https://github.com/riscv-collab/riscv-gcc/issues

Recently, I am working on push RVV codes to GCC upstream. Your feedbacks are important.

zhongjuzhe avatar Aug 24 '22 01:08 zhongjuzhe

Thanks for your contribution !

nihui avatar Oct 01 '22 13:10 nihui