From ff2d11c3ce8dc1fb3715bffbc058fa4ab22226b1 Mon Sep 17 00:00:00 2001 From: Pierre Neidhardt Date: Wed, 24 Oct 2018 11:37:14 +0200 Subject: [PATCH] gnu: Add go-github-com-minio-sha256-simd. * gnu/packages/golang.scm (go-github-com-minio-sha256-simd): New variable. --- gnu/packages/golang.scm | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 1cc10d5ff0..1631c0bc72 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -2696,3 +2696,39 @@ Although this package was primarily written for btcd, it has intentionally been designed so it can be used as a standalone package for any projects needing to use secp256k1 elliptic curve cryptography.") (license license:isc)))) + +(define-public go-github-com-minio-sha256-simd + (let ((commit "51976451ce1942acbb55707a983ed232fa027110") + (revision "0")) + (package + (name "go-github-com-minio-sha256-simd") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/minio/sha256-simd.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0kaxvpidf6ygkkb06vi95pirll31jnmywhyalfjvf7djhim2wr8f")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/minio/sha256-simd")) + (home-page "https://github.com/minio/sha256-simd") + (synopsis "Accelerate SHA256 computations in pure Go") + (description "Accelerate SHA256 computations in pure Go using AVX512 and +AVX2 for Intel and ARM64 for ARM. On AVX512 it provides an up to 8x +improvement (over 3 GB/s per core) in comparison to AVX2. + +This package is designed as a replacement for @command{crypto/sha256}. For +Intel CPUs it has two flavors for AVX512 and AVX2 (AVX/SSE are also +supported). For ARM CPUs with the Cryptography Extensions, advantage is taken +of the SHA2 instructions resulting in a massive performance improvement. + +This package uses Golang assembly. The AVX512 version is based on the Intel's +\"multi-buffer crypto library for IPSec\" whereas the other Intel +implementations are described in \"Fast SHA-256 Implementations on Intel +Architecture Processors\" by J. Guilford et al.") + (license license:asl2.0))))