mirror of
https://github.com/fumiama/blake2b-simd.git
synced 2026-06-05 10:10:28 +08:00
3a46db1cb49c80802eef5da2f8eb4ca1d5a62f4c
With this change, following happens.
```
if sse {
compressSSE()
return
}
compressGeneric()
```
compressGeneric is used as a fallback when SSE is not detected.
BLAKE2b-SIMD
Pure Go implementation of BLAKE2b using SIMD optimizations.
Introduction
This package is based on the pure go BLAKE2b implementation of Dmitry Chestnykh and merges it with the (cgo dependent) SSE optimized BLAKE2 implementation (which in turn is based on official implementation. It does so by using Go's Assembler for amd64 architectures with a fallback for other architectures.
It gives roughly a 3x performance improvement over the non-optimized go version.
Benchmarks
| Dura | 1 GB |
|---|---|
| blake2b-SIMD | 1.59s |
| blake2b | 4.66s |
Description
Fast hashing using pure Go implementation of BLAKE2b with SIMD instructions
Languages
Go
51.4%
Assembly
48.6%