]>
Cypherpunks repositories - gostls13.git/commit
crypto/sha256: use const table for key loading on loong64
Load constant keys from a static memory table rather than loading immediates into registers on loong64.
Benchmark for Loongson-3A5000:
goos: linux
goarch: loong64
pkg: crypto/sha256
cpu: Loongson-3A5000-HV @ 2500.00MHz
│ sha256o │ sha256n │
│ sec/op │ sec/op vs base │
Hash8Bytes/New-4 356.1n ± 0% 347.0n ± 0% -2.54% (p=0.000 n=8)
Hash8Bytes/Sum224-4 368.7n ± 0% 359.5n ± 0% -2.50% (p=0.000 n=8)
Hash8Bytes/Sum256-4 367.7n ± 0% 358.9n ± 0% -2.41% (p=0.000 n=8)
Hash1K/New-4 4.741µ ± 0% 4.578µ ± 0% -3.44% (p=0.000 n=8)
Hash1K/Sum224-4 4.755µ ± 0% 4.591µ ± 0% -3.44% (p=0.000 n=8)
Hash1K/Sum256-4 4.753µ ± 0% 4.589µ ± 0% -3.46% (p=0.000 n=8)
Hash8K/New-4 35.42µ ± 0% 34.19µ ± 0% -3.45% (p=0.000 n=8)
Hash8K/Sum224-4 35.43µ ± 0% 34.21µ ± 0% -3.44% (p=0.000 n=8)
Hash8K/Sum256-4 35.46µ ± 0% 34.22µ ± 0% -3.48% (p=0.000 n=8)
Hash256K/New-4 1.138m ± 0% 1.098m ± 0% -3.54% (p=0.000 n=8)
Hash256K/Sum224-4 1.138m ± 0% 1.098m ± 0% -3.53% (p=0.000 n=8)
Hash256K/Sum256-4 1.139m ± 0% 1.099m ± 0% -3.48% (p=0.000 n=8)
Hash1M/New-4 4.488m ± 0% 4.388m ± 0% -2.22% (p=0.000 n=8)
Hash1M/Sum224-4 4.488m ± 0% 4.387m ± 0% -2.24% (p=0.000 n=8)
Hash1M/Sum256-4 4.489m ± 0% 4.388m ± 0% -2.25% (p=0.000 n=8)
geomean 50.02µ 48.50µ -3.03%
│ sha256o │ sha256n │
│ B/s │ B/s vs base │
Hash8Bytes/New-4 21.42Mi ± 0% 21.99Mi ± 0% +2.63% (p=0.000 n=8)
Hash8Bytes/Sum224-4 20.69Mi ± 0% 21.22Mi ± 0% +2.56% (p=0.000 n=8)
Hash8Bytes/Sum256-4 20.74Mi ± 0% 21.26Mi ± 0% +2.48% (p=0.000 n=8)
Hash1K/New-4 206.0Mi ± 0% 213.3Mi ± 0% +3.57% (p=0.000 n=8)
Hash1K/Sum224-4 205.4Mi ± 0% 212.7Mi ± 0% +3.57% (p=0.000 n=8)
Hash1K/Sum256-4 205.5Mi ± 0% 212.8Mi ± 0% +3.58% (p=0.000 n=8)
Hash8K/New-4 220.6Mi ± 0% 228.5Mi ± 0% +3.58% (p=0.000 n=8)
Hash8K/Sum224-4 220.5Mi ± 0% 228.4Mi ± 0% +3.56% (p=0.000 n=8)
Hash8K/Sum256-4 220.3Mi ± 0% 228.3Mi ± 0% +3.61% (p=0.000 n=8)
Hash256K/New-4 219.7Mi ± 0% 227.7Mi ± 0% +3.67% (p=0.000 n=8)
Hash256K/Sum224-4 219.6Mi ± 0% 227.6Mi ± 0% +3.66% (p=0.000 n=8)
Hash256K/Sum256-4 219.6Mi ± 0% 227.5Mi ± 0% +3.60% (p=0.000 n=8)
Hash1M/New-4 222.8Mi ± 0% 227.9Mi ± 0% +2.27% (p=0.000 n=8)
Hash1M/Sum224-4 222.8Mi ± 0% 227.9Mi ± 0% +2.29% (p=0.000 n=8)
Hash1M/Sum256-4 222.8Mi ± 0% 227.9Mi ± 0% +2.30% (p=0.000 n=8)
geomean 136.0Mi 140.2Mi +3.13%
Benchmark for Loongson-3A6000:
goos: linux
goarch: loong64
pkg: crypto/sha256
cpu: Loongson-3A6000 @ 2500.00MHz
│ sha256.old │ sha256.new │
│ sec/op │ sec/op vs base │
Hash8Bytes/New-8 294.5n ± 0% 288.6n ± 0% -2.00% (p=0.000 n=10)
Hash8Bytes/Sum224-8 305.0n ± 0% 299.7n ± 0% -1.74% (p=0.000 n=10)
Hash8Bytes/Sum256-8 302.0n ± 0% 296.8n ± 0% -1.74% (p=0.000 n=10)
Hash1K/New-8 4.186µ ± 0% 4.096µ ± 0% -2.15% (p=0.000 n=10)
Hash1K/Sum224-8 4.193µ ± 0% 4.104µ ± 0% -2.12% (p=0.000 n=10)
Hash1K/Sum256-8 4.194µ ± 0% 4.108µ ± 0% -2.04% (p=0.000 n=10)
Hash8K/New-8 31.44µ ± 0% 30.76µ ± 0% -2.17% (p=0.000 n=10)
Hash8K/Sum224-8 31.45µ ± 0% 30.79µ ± 0% -2.10% (p=0.000 n=10)
Hash8K/Sum256-8 31.45µ ± 0% 30.78µ ± 0% -2.12% (p=0.000 n=10)
Hash256K/New-8 996.7µ ± 0% 975.6µ ± 0% -2.12% (p=0.000 n=10)
Hash256K/Sum224-8 996.8µ ± 0% 975.8µ ± 0% -2.11% (p=0.000 n=10)
Hash256K/Sum256-8 996.8µ ± 0% 975.6µ ± 0% -2.12% (p=0.000 n=10)
Hash1M/New-8 3.987m ± 0% 3.904m ± 0% -2.08% (p=0.000 n=10)
Hash1M/Sum224-8 3.990m ± 0% 3.902m ± 0% -2.20% (p=0.000 n=10)
Hash1M/Sum256-8 3.987m ± 0% 3.903m ± 0% -2.10% (p=0.000 n=10)
geomean 43.59µ 42.69µ -2.06%
│ sha256.old │ sha256.new │
│ B/s │ B/s vs base │
Hash8Bytes/New-8 25.90Mi ± 0% 26.44Mi ± 0% +2.06% (p=0.000 n=10)
Hash8Bytes/Sum224-8 25.01Mi ± 0% 25.46Mi ± 0% +1.77% (p=0.000 n=10)
Hash8Bytes/Sum256-8 25.26Mi ± 0% 25.72Mi ± 0% +1.79% (p=0.000 n=10)
Hash1K/New-8 233.3Mi ± 0% 238.5Mi ± 0% +2.19% (p=0.000 n=10)
Hash1K/Sum224-8 232.9Mi ± 0% 238.0Mi ± 0% +2.17% (p=0.000 n=10)
Hash1K/Sum256-8 232.9Mi ± 0% 237.7Mi ± 0% +2.07% (p=0.000 n=10)
Hash8K/New-8 248.5Mi ± 0% 254.0Mi ± 0% +2.22% (p=0.000 n=10)
Hash8K/Sum224-8 248.4Mi ± 0% 253.7Mi ± 0% +2.14% (p=0.000 n=10)
Hash8K/Sum256-8 248.4Mi ± 0% 253.8Mi ± 0% +2.17% (p=0.000 n=10)
Hash256K/New-8 250.8Mi ± 0% 256.3Mi ± 0% +2.17% (p=0.000 n=10)
Hash256K/Sum224-8 250.8Mi ± 0% 256.2Mi ± 0% +2.16% (p=0.000 n=10)
Hash256K/Sum256-8 250.8Mi ± 0% 256.2Mi ± 0% +2.17% (p=0.000 n=10)
Hash1M/New-8 250.8Mi ± 0% 256.2Mi ± 0% +2.12% (p=0.000 n=10)
Hash1M/Sum224-8 250.6Mi ± 0% 256.3Mi ± 0% +2.25% (p=0.000 n=10)
Hash1M/Sum256-8 250.8Mi ± 0% 256.2Mi ± 0% +2.14% (p=0.000 n=10)
geomean 156.0Mi 159.3Mi +2.11%
Change-Id: Ib72cf3c746d4ad73e52e5d31f6b4a834fd36d934
Reviewed-on: https://go-review.googlesource.com/c/go/+/678435
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
Reviewed-by: sophie zhao <zhaoxiaolin@loongson.cn>
Reviewed-by: Mark Freeman <markfreeman@google.com>
Reviewed-by: abner chenc <chenguoqi@loongson.cn>