zstd icon indicating copy to clipboard operation
zstd copied to clipboard

Add RISC-V Vector (RVV) Support for XXH3

Open BoBoDai opened this issue 4 months ago • 2 comments

Description

Background

Zstandard (Zstd) is a widely used high-performance compression algorithm that relies on the xxhash hash function for fast data hashing during compression and decompression. While XXH3 in Zstd already supports modern CPUs with SIMD instructions for acceleration, it does not yet take advantage of the RISC-V Vector Extension (RVV), which provides more flexible vectorization capabilities compared to traditional SIMD.

RVV enables efficient large-scale data parallel computation on RISC-V hardware, allowing significant performance improvements for algorithms like XXH3 that process large datasets. By leveraging RVV, we can accelerate key step in Zstd, improving overall compression and decompression speed on RISC-V platforms.

Objective

Integrate RVV instructions into the XXH3 hash function, vectorizing core computations to significantly enhance performance on RISC-V platforms, particularly for large-scale datasets.

Expected Outcomes

  • Performance Gains: Significantly increase hashing speed in XXH3 on RISC-V hardware supporting RVV, with more pronounced improvements on large datasets.

  • Scalability: Enable further RVV-based optimizations for other Zstd components if successful.

  • Community Feedback: Solicit feedback from Zstd developers and testers to refine RVV optimization and ensure robust integration.

Conclusion

We have initiated RVV optimization for XXH3 within Zstd and achieved initial results. Further tuning and testing are required, but we expect notable performance improvements for Zstd compression and decompression when leveraging RISC-V vector extensions. Community input is welcome to guide and refine this optimization.

Labels:

  • enhancement
  • performance
  • riscv
  • optimization
  • xxh3

BoBoDai avatar Aug 27 '25 12:08 BoBoDai