go: x/crypto/chacha20poly1305: linux/arm64 Go 1.9 performance is 3X slower than OpenSSL
Please answer these questions before submitting your issue. Thanks!
What version of Go are you using (go version)?
go version go1.9.2 linux/arm64
Does this issue reproduce with the latest release?
yes
What operating system and processor architecture are you using (go env)?
GOARCH=“arm64” GOBIN=“” GOEXE=“” GOHOSTARCH=“arm64” GOHOSTOS=“linux” GOOS=“linux” GOPATH=“” GORACE=“” GOROOT=“/usr/lib/go-1.6” GOTOOLDIR=“/usr/lib/go-1.6/pkg/tool/linux_arm64” GO15VENDOREXPERIMENT=“1” CC=“gcc” GOGCCFLAGS=“-fPIC -pthread -fmessage-length=0” CXX=“g++” CGO_ENABLED=“1”
What did you do?
go test vendor/golang_org/x/crypto/chacha20poly1305 -bench .
What did you expect to see?
Performance can be on par with OpenSSL (https://blog.cloudflare.com/content/images/2017/11/sym_key_1_core.png)
What did you see instead?
3X slower than OpenSSL( https://blog.cloudflare.com/content/images/2017/11/go_sym_key_1_core.png)
About this issue
- Original URL
- State: closed
- Created 7 years ago
- Comments: 17 (8 by maintainers)
Commits related to this issue
- internal/chacha20: add SIMD implementation on arm64 Inspired by Vectorization of ChaCha Stream Cipher https://eprint.iacr.org/2013/759.pdf name old time/op new time/op delta ChaCha2... — committed to golang/crypto by mengzhuo 5 years ago
- internal/chacha20: add SIMD implementation on arm64 Inspired by Vectorization of ChaCha Stream Cipher https://eprint.iacr.org/2013/759.pdf name old time/op new time/op delta ChaCha2... — committed to bored-engineer/ssh by mengzhuo 5 years ago
@FiloSottile This was marked for 1.12. Things still on target for that?
At present arm64 assembly is typically reviewed by the tireless @cherrymui . I’m sure @benshi001 would also have good input.
I changed the milestone, but note that that doesn’t cause the work to be done. This is an open source project so the best way to get something done is to volunteer to do it. Thanks.