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

Pipelined Implementation of ZSTD_fast (~+5% Speed) #2749

Merged
merged 16 commits into from
Sep 9, 2021

Commits on Sep 1, 2021

  1. Configuration menu
    Copy the full SHA
    ab8aa49 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    80bc12b View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    bc768bc View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    387840a View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    b092dd7 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    35932ab View commit details
    Browse the repository at this point in the history
  7. Give Up on Searching End of Block

    Amusingly, it seems to be a non-trivial performance hit to add in final
    searches or even hash table insertions during cleanup. So let's not. It seems
    to not make any meaningful difference in compression ratio.
    felixhandte committed Sep 1, 2021
    Configuration menu
    Copy the full SHA
    7c24c3e View commit details
    Browse the repository at this point in the history
  8. Nit: Dedup idx0 and idx1

    felixhandte committed Sep 1, 2021
    Configuration menu
    Copy the full SHA
    8706bc1 View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    991d660 View commit details
    Browse the repository at this point in the history
  10. Configuration menu
    Copy the full SHA
    57a100f View commit details
    Browse the repository at this point in the history
  11. Unroll Loop Core; Reduce Frequency of Repcode Check & Step Calc (+>1%…

    … Speed)
    
    Unrolling the loop to handle 2 positions in each iteration allows us to reduce
    the frequency of some operations that don't need to happen at every position.
    One such operation is the step calculation, which is a very rough heuristic
    anyways. It's fine if we do this a position later. The other operation is the
    repcode check. But since the repcode check already tries expanding back one
    position, we're really not missing much of importance by only trying it every
    other position.
    
    This commit also slightly reorders some operations.
    felixhandte committed Sep 1, 2021
    Configuration menu
    Copy the full SHA
    24fcccd View commit details
    Browse the repository at this point in the history
  12. Tweak Step

    felixhandte committed Sep 1, 2021
    Configuration menu
    Copy the full SHA
    64054de View commit details
    Browse the repository at this point in the history
  13. Deduplicate Implementations

    This removes the old `ZSTD_compressBlock_fast_generic()` and renames the new
    `ZSTD_compressBlock_fast_generic_pipelined()` to replace it. This is
    functionally a no-op.
    felixhandte committed Sep 1, 2021
    Configuration menu
    Copy the full SHA
    15e67bf View commit details
    Browse the repository at this point in the history
  14. Change Target Size in Fuzzer

    It's a bit strange, because this is hitting the dictionary special case where
    the dictionary is contiguous with the input and still runs in the single-
    segment path.
    
    We should probably change that to hit the `extDict` path instead?
    felixhandte committed Sep 1, 2021
    Configuration menu
    Copy the full SHA
    98d3df3 View commit details
    Browse the repository at this point in the history
  15. Configuration menu
    Copy the full SHA
    d6fd776 View commit details
    Browse the repository at this point in the history
  16. Update results.csv

    felixhandte committed Sep 1, 2021
    Configuration menu
    Copy the full SHA
    b0977e4 View commit details
    Browse the repository at this point in the history