Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

lib/x86/adler32: refactor and improve implementations #348

Merged
merged 3 commits into from
Mar 6, 2024
Merged

Conversation

ebiggers
Copy link
Owner

@ebiggers ebiggers commented Mar 4, 2024

No description provided.

@ebiggers ebiggers force-pushed the dev branch 2 times, most recently from c57ef9e to 4fa0398 Compare March 4, 2024 06:40
ebiggers added 2 commits March 3, 2024 22:42
- Increase size of test file to 250 MB for more accurate results
- Disable x86-32 test by default
- Support specifying extra cmake flags
- Code cleanups
@ebiggers ebiggers force-pushed the dev branch 2 times, most recently from ad667b2 to 2a07d53 Compare March 4, 2024 06:45
- Refactor the x86 implementations of Adler-32 to be organized like the
  x86 implementations of CRC-32, where there's an x86-specific template
  that expands into the different implementations.

- Add an AVX512VNNI implementation using 256-bit vectors.

- Increase the number of vectors processed per iteration of the inner
  loop of the AVX512VNNI implementations from 2 to 4.

- Handle small amounts of data more efficiently.  If the length is
  small, don't bother aligning the pointer at the beginning.  Also
  optimize the handling of any bytes left over after the inner loop.
  Also avoid doing redundant reductions mod 65521.

- Make the AVX-VNNI implementation dot with 1's so that all VNNI
  implementations use the same strategy.

- Put "_x86" in the name of the functions, like what is done for CRC-32.
@ebiggers ebiggers merged commit 51dd9ca into master Mar 6, 2024
52 checks passed
@ebiggers ebiggers deleted the dev branch March 6, 2024 07:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant