...
https://caslab.csl.yale.edu/workshops/hasp2016/HASP16-10_slides.pdf
论文AVX512相关代码
https://github.com/rbCabral/SHA-3
用了2个优化方式
1)基于avx2指令的seq sha3优化,每个msg计算hash使用avx2来加速
2) 基于par计算msg hash,多条消息放入msg数组,基于avx2并行运算hash数组
目前cloudflare circlhttps://github.com/cloudflare/circl/blob/master/simd/keccakf1600/f1600x4_amd64.go
使用的是2)par计算
2.使用库对比
目前我们的accumulator使用sha3计算hash使用的tiny-keccak库,
...
代码块 |
---|
running 4 tests test rust_crypto_sha3_256_input_32_bytes ... bench: 441 ns/iter (+/- 47) = 72 MB/s test rust_crypto_sha3_256_input_4096_bytes ... bench: 12,875 ns/iter (+/- 775) = 318 MB/s test tiny_keccak_sha3_256_input_32_bytes ... bench: 452 ns/iter (+/- 23) = 70 MB/s test tiny_keccak_sha3_256_input_4096_bytes ... bench: 13,073 ns/iter (+/- 880) = 313 MB/s |
目前看起来crypto hash效率慢慢赶上来了,可能会超过tiny-kecccak,前者一直在开发维护,后者两年都没有更新了
目前有一份从XKCP的C实现 ffi 给rust调用的实现
https://github.com/starcoinorg/starcoin-crypto/tree/main/crates/diem-crypto/ext