Skip to content

rkrn/TurboHist

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

63 Commits
 
 
 
 
 
 

Repository files navigation

TurboHist: Fastest Histogram Construction

  • ~1.2 clocks per byte
  • 100% C (& C++ compatible) without inline assembly
  • Both 32 and 64 bits supported
  • Portable scalar functions faster thand SIMD functions
  • Up to 3 times faster than naive solution

Benchmark:

i7-2600k at 4.5GHz, gcc 5.1, ubuntu 15.04.

  • Single thread
  • Realistic and practical benchmark with large files.
  • No PURE cache benchmark

- Uniform/Skewed distribution:

  • Uniform: enwik9
  • Skewed: enwik9 bwt generated w. libdivsufsort
FunctionUniform: Time MB/sSkewed: Time MB/s
hist_8_322758.612746.19
hist_4_322745.882594.32
hist_8_1282714.062709.78
hist_4_1282715.282650.48
hist_8_642697.892670.17
hist_4_642639.832553.63
hist_8_82349.732333.46
hist_4_82213.052082.84
hist_1_81882.86926.88
count2x642838.602836.31

Compile:

    cc -O3 -march=native turbohist.c -o turbohist

OS/Compiler

  • Linux: gcc (>=4.6)
  • clang (>=3.2)
  • Windows: mingw-w64 (>=4.6)

Usage:

    turbohist file

Reference:

Countbench: https://github.com/nkurz/countbench (including "count2x64" with inline assembly)

About

Fastest Histogram Construction

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 100.0%