Closed
Description
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)
Metadata
Metadata
Assignees
Type
Projects
Milestone
Relationships
Development
No branches or pull requests
Activity
[-]crypto/chacha20poly1305: linux/arm64 Go 1.9 performance is 3X slower than OpenSSL[/-][+]x/crypto/chacha20poly1305: linux/arm64 Go 1.9 performance is 3X slower than OpenSSL[/+]gopherbot commentedon Apr 9, 2018
Change https://golang.org/cl/105895 mentions this issue:
crypto/poly1305: arm64 implementation using multiword arithmetic
gopherbot commentedon Apr 9, 2018
Change https://golang.org/cl/105896 mentions this issue:
crypto/poly1305: arm64 implementation using multiword arithmetic
gopherbot commentedon Apr 19, 2018
Change https://golang.org/cl/107628 mentions this issue:
internal/chacha20: add arm64 SIMD implementation
vielmetti commentedon Jun 26, 2018
Substantial perf improvements on Cavium ThunderX going from go 1.10.2 to go1.11beta1, but not 3x faster.
mengzhuo commentedon Jun 29, 2018
@vielmetti internal/chacha20 won't be merged into go1.11 since it's frozen.
vielmetti commentedon Jun 29, 2018
Thanks @mengzhuo . Can we get this onto the go1.12 roster then? It's currently marked as "Unplanned".
10 remaining items
internal/chacha20: add SIMD implementation on arm64
internal/chacha20: add SIMD implementation on arm64
rfjakob commentedon Apr 11, 2020
Looks this has been done via https://github.com/golang/crypto/blob/master/chacha20/chacha_arm64.s .
mengzhuo commentedon Dec 16, 2020
Could someone close this issue? Apparently it's done.