Skip to content

Conversation

@josiahcarlson
Copy link
Contributor

  • Pulled from most recent Valkey, removed Valkey-specific parts
  • 53-73% faster for crc64_jones vs crc64_jones1 on Xeon 2670 v0 @ 2.6ghz
  • 2-2.5x faster for crc64_jones vs crc64_jones1 on Core i3 8130U @ 2.2 ghz
  • 1.6-2.46 bytes/cycle on i3 8130U
  • likely >2x faster than crcspeed on newer CPUs with more resources than a 2012-era Xeon 2670
  • crc64 combine function runs in <50 nanoseconds typical with vector + cache optimizations (~8 microseconds without vector optimizations, ~80 *microseconds without cache, the combination is extra effective)
  • still single-threaded
  • Variations of crccombine.c available (for non-intel arch starting points): josiahcarlson/redis@55642fe#diff-046412072aa4e87484754f261116ea6501d2350747ac1379530da9584834efdd

Tried to make as few changes as possible to both the upstream code, as well as smhasher. This seemed to be a good balance.

* Pulled from most recent Valkey, removed Valkey-specific parts
* 53-73% faster for crc64_jones vs crc64_jones1 on Xeon 2670 v0 @ 2.6ghz
* 2-2.5x faster for crc64_jones vs crc64_jones1 on Core i3 8130U @ 2.2 ghz
* 1.6-2.46 bytes/cycle on i3 8130U
* likely >2x faster than crcspeed on newer CPUs with more resources than a 2012-era Xeon 2670
* crc64 combine function runs in <50 nanoseconds typical with vector + cache optimizations
  (~8 *microseconds* without vector optimizations, ~80 *microseconds without cache,
  the combination is extra effective)
* still single-threaded
* Variations of crccombine.c available (for non-intel arch starting points):
josiahcarlson/redis@55642fe#diff-046412072aa4e87484754f261116ea6501d2350747ac1379530da9584834efdd
@rurban
Copy link
Owner

rurban commented May 5, 2024

The PMP_Multilinear MacOS errors are unrelated. Thanks!

@rurban rurban merged commit a75e2a9 into rurban:master May 5, 2024
@josiahcarlson josiahcarlson deleted the add-crc64-and-combine branch May 5, 2024 21:31
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.

2 participants