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

Implement an AVX2 accelerated Engine #170

Open
wants to merge 5 commits into
base: master
Choose a base branch
from

Commits on Jan 19, 2022

  1. Implement an AVX2 alg based on Wojciech Muła & Daniel Lemire 2017

    The paper this algorithm is taken from can be found via
    DOI 10.1145/3132709
    arXiv:1704.00605
    or via arXiv.org: https://arxiv.org/abs/1704.00605
    dequbed committed Jan 19, 2022
    Configuration menu
    Copy the full SHA
    3caf7a8 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    1371051 View commit details
    Browse the repository at this point in the history
  3. Adds tests, bechmarks and fuzzing code for the avx2 engine

    This adds the AVX2Encoder engine to the existing benchmarks and tests and introduces three new fuzzing targets:
    - roundtrip_avx
    - decode_random_avx
    which behave very similar to the non-avx versions, and
    - roundtrip_avx_equivalent
    Which checks that the avx2 engine and the DEFAULT_ENGINE produce the same data both ways.
    dequbed committed Jan 19, 2022
    Configuration menu
    Copy the full SHA
    22163c0 View commit details
    Browse the repository at this point in the history
  4. cargo fmt the everythings

    dequbed committed Jan 19, 2022
    Configuration menu
    Copy the full SHA
    80b422f View commit details
    Browse the repository at this point in the history
  5. Make the fuzzing targets not error on CircleCI

    If the CircleCI runner allows us to use AVX2 extensions this will use them readily, if it doesn't the fuzz_target! will compile but do absolutely nothing.
    dequbed committed Jan 19, 2022
    Configuration menu
    Copy the full SHA
    b88920f View commit details
    Browse the repository at this point in the history