-
Notifications
You must be signed in to change notification settings - Fork 67
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
sm2: arm64架构性能问题 #175
Comments
椭圆曲线类算法最耗计算资源的就是曲线点标量乘法,同时为了算法安全性,实现需要尽量做到Constant-Time运行。目前的实现在arm64下(也包括amd64),应该没有多少优化空间。你也可以测试golang SDK的NIST P-256曲线,性能应该差不多。 |
我没有arm64开发测试环境,所有arm64开发测试都是通过QEMU模拟进行的,如果方便的话,帮忙跑一下所有Package的Benchmark测试。 |
@zhangyongding 你可以比较一下v0.22.0。 |
好的,迟点我看看 |
我在mac上跑了一下,sm2和4与其他的比较了一下,性能好很多👍
|
谢谢 @mango19970707 ,可以share一下CPU信息吗?譬如通过 |
|
还需要其他测试嘛,举手之劳,不用客气。能为这么好用的库做贡献,十分荣幸 |
多谢!感觉和X86下SM4和AES的差距大得多。不知道 比如,可并行的解密与不可并行的加密差距不到:
|
Apple M2芯片基于ARM架构,并且支持ARM64指令集。根据ARM64架构的特性,Apple M2芯片应该支持AES和PMULL指令集 |
|
明天写个测试程序,确认一下是否是x/cpu的问题。golang/go#43046 package main
import (
"fmt"
"golang.org/x/sys/cpu"
)
func main() {
fmt.Printf("HasAES=%v, HasPMULL=%v\n", cpu.ARM64.HasAES, cpu.ARM64.HasPMULL)
} |
确实是这个问题
|
@mango19970707 ,方便的话,帮忙用最新的代码跑一下性能测试(arm64/darwin),谢谢! |
|
谢谢! #172 我在考虑是否要用安全性换性能。 |
可以都支持,根据实际情况来选 |
Thx all! close it first. |
近期测试sm2的性能,发现在arm64下,有两个地方耗时比较多,不知道是否有优化的空间?
The text was updated successfully, but these errors were encountered: