]> git.ipfire.org Git - thirdparty/vectorscan.git/commit
Speed up truffle with 256b TBL instructions 290/head
authorYoan Picchi <yoan.picchi@arm.com>
Tue, 23 Apr 2024 12:04:40 +0000 (12:04 +0000)
committerYoan Picchi <yoan.picchi@arm.com>
Wed, 22 May 2024 16:13:53 +0000 (16:13 +0000)
commit938c026256e344521a6dea4e4a6c509ebc907a16
tree3e57d41f80ca2261cf9e4ea40a570fcb6cd69b73
parentb312112e872d5c9c2a70762847c3bd76789dfdcb
Speed up truffle with 256b TBL instructions

256b wide SVE vectors allow some simplification of truffle.
Up to 40% speedup on graviton3. Going from 12500 MB/s to 17000 MB/s
onhe microbenchmark.
SVE2 also offer this capability for 128b vector with a speedup around
25% compared to normal SVE

Add unit tests and benchmark for this wide variant

Signed-off-by: Yoan Picchi <yoan.picchi@arm.com>
23 files changed:
benchmarks/benchmarks.cpp
benchmarks/benchmarks.hpp
src/hwlm/hwlm.c
src/nfa/accel.c
src/nfa/accel.h
src/nfa/accel_dfa_build_strat.cpp
src/nfa/accel_dump.cpp
src/nfa/accelcompile.cpp
src/nfa/arm/truffle.hpp
src/nfa/mcclellandump.cpp
src/nfa/mcsheng_dump.cpp
src/nfa/truffle.cpp
src/nfa/truffle.h
src/nfa/truffle_simd.hpp
src/nfa/trufflecompile.cpp
src/nfa/trufflecompile.h
src/rose/rose_build_lit_accel.cpp
src/util/arch/arm/arm.h
src/util/arch/arm/simd_types.h
src/util/supervector/arch/arm/types.hpp
unit/CMakeLists.txt
unit/internal/sheng.cpp
unit/internal/truffleWide.cpp [new file with mode: 0644]