Skip to content

Commit

Permalink
xxhash: implement multi-buffer with aarch64 SVE
Browse files Browse the repository at this point in the history
Implement XXH32 and XXH64 algorithm with aarch64 SVE instructions.

Test data on SVE-512bit platform is in below.

The standard XXH32 could reach to 1.2GB/s. The MB version could reach
to 1.4-4.8GB/s at capacity if data buffer length is equal or larger
than 1KB.

The standard XXH64 could reach to 2.3GB/s. The MB version could reach
to 2.3-7.1GB/s at capacity if data buffer length is equal or larger
than 1KB.

Signed-off-by: Haojian Zhuang <haojian.zhuang@linaro.org>
  • Loading branch information
hzhuang1 committed Mar 27, 2024
1 parent 73204b7 commit 07144fb
Show file tree
Hide file tree
Showing 7 changed files with 2,062 additions and 1 deletion.
10 changes: 9 additions & 1 deletion xxhash_mb/Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,15 @@
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
########################################################################

lsrc_aarch64 += xxhash_mb/xxhash_ctx_base.c
lsrc_aarch64 += xxhash_mb/xxhash_ctx_base.c \
xxhash_mb/aarch64/xxhash_ctx_aarch64_sve.c \
xxhash_mb/aarch64/xxhash_mb_aarch64_dispatcher.c \
xxhash_mb/aarch64/xxhash_mb_mgr_aarch64_sve.c \
xxhash_mb/aarch64/xxhash_mb_sve.S \
xxhash_mb/aarch64/xxhash_mb_multibinary.S

lsrc_base_aliases += xxhash_mb/xxhash_ctx_base.c \
xxhash_mb/xxhash_ctx_base_aliases.c

src_include += -I$(srcdir)/xxhash_mb -I/usr/local/include
extern_hdrs += include/xxhash_mb.h \
Expand Down
Loading

0 comments on commit 07144fb

Please sign in to comment.