igneous-systems / md5vec

AVX-accelerated 8-way parallel md5

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

md5vec

AVX-accelerated 8-way parallel md5

This package contains the Intel AVX-specific code for a parallel md5 kernel.

The function which this package exports has the signature:

func WriteN(h []hash.Hash, p [][]byte) (n int, err error)

which provides an up-to-8-way parallel invocation of md5 rounds on the given byte slices. (by analogy to hash.Write)

Note: all byte slices must be of the same length, and len(p) must be the same as len(h). Furthermore, h must represent a collection of crypto/md5 hash digests, as created by md5.New(). Therefore, after calling WriteN() any trailers may be written directly via hash.Write() and hash.Sum() may be used to compute the final md5 checksum for each digest.

An associated "server" will be published to provide transparent parallelism via a drop-in replacement for the hash.Hash interface.

About

AVX-accelerated 8-way parallel md5

License:MIT License


Languages

Language:Go 68.3%Language:Assembly 31.7%