Skip to content
master
Switch branches/tags
Go to file
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

README.md

BLAKE2 AVX2 implementations

This is experimental code implementing BLAKE2 using the AVX2 instruction set present in the Intel Haswell and later microarchitectures.

It currently implements BLAKE2b, BLAKE2bp, and BLAKE2sp using 3 similar but slightly different approaches: one lets the compiler choose how to permute the message, another one does it manually, and the final one uses the gather instructions introduced with AVX2. Current recorded speeds for long messages are:

  • 3.19 cycles per byte on Haswell for BLAKE2b;

  • 1.37 cycles per byte on Haswell for BLAKE2bp;

  • 1.39 cycles per byte on Haswell for BLAKE2sp.

  • 3.08 cycles per byte on Skylake for BLAKE2b;

  • 1.29 cycles per byte on Skylake for BLAKE2bp;

  • 1.30 cycles per byte on Skylake for BLAKE2sp.

About

BLAKE2 AVX2 implementations

Resources

License

Releases

No releases published

Packages

No packages published

Languages