1. 引言
对应代码:
- https://github.com/risc0/risc0(C++和Rust)
运行如下指令,进行性能评估:
cargo run -r --example loop //CPU
cargo run -r -F metal --example loop //Metal GPU
cargo run -r -F cuda --example loop //CUDA GPU
cargo bench --bench fib //默认为CPU,可配置相应GPU参数
以2023年4月commit cd1a37e
版本为例。
RISC Zero zkVM Prover的性能取决于zkVM guest中所执行的execution cycles数。
由于密码学原因,这些cycle数都向上取整为next highest power of 2,即,如某程序需要33000个cycles,其与需要63000个cycle的另一程序性能相同,因为二者均round up为65536(64K)cycles。
对一个zkVM guest初始化需要16K cycles,结合power of two rounding,即意味着没有程序执行至少需要32K cycles。
现有example程序cycle数信息如下:
其中,部分程序的cycle数取决于输入数据,以上展示的是默认输入数据的cycle数。
在不同机器上的性能信息为:【注意,所测试commit cd1a37e
版本未集成continuations机制。】
-
CPU性能:
-
CUDA GPU性能:
-
Metal GPU性能:
参考资料
[1] RISC Zero zkVM Performance Benchmarks
[2] RISC Zero Datasheet