Polygon zkEVM Goldilocks域各项运算性能

1. 引言

开源代码见:

  • https://github.com/0xPolygonHermez/goldilocks(C++)
goldilocks# ./bench
2023-12-18T02:06:43+00:00
Running ./bench
Run on (128 X 2650 MHz CPU s)
CPU Caches:
  L1 Data 32 KiB (x64)
  L1 Instruction 32 KiB (x64)
  L2 Unified 512 KiB (x64)
  L3 Unified 32768 KiB (x8)
Load Average: 0.08, 1.92, 4.67
---------------------------------------------------------------------------------------------------
Benchmark                                         Time             CPU   Iterations UserCounters...
---------------------------------------------------------------------------------------------------
POSEIDON_BENCH_FULL/64/real_time             215672 us       215665 us            3 BytesProcessed=890.241M/s Rate=6.58178us
POSEIDON_BENCH_FULL/128/real_time            117095 us       117093 us            6 BytesProcessed=1.60126G/s Rate=3.57346us
POSEIDON_BENCH_FULL_AVX/64/real_time          77219 us        77216 us            9 BytesProcessed=2.42815G/s Rate=2.35655us
POSEIDON_BENCH_FULL_AVX/128/real_time         42010 us        42007 us           17 BytesProcessed=4.46323G/s Rate=1.28204us
POSEIDON_BENCH/64/real_time                  212826 us       212819 us            3 BytesProcessed=902.145M/s Rate=6.49494us
POSEIDON_BENCH/128/real_time                 109300 us       109296 us            6 BytesProcessed=1.71546G/s Rate=3.33557us
POSEIDON_BENCH_AVX/64/real_time               77543 us        77540 us            9 BytesProcessed=2.418G/s Rate=2.36644us
POSEIDON_BENCH_AVX/128/real_time              69186 us        69132 us           11 BytesProcessed=2.71009G/s Rate=2.11139us
LINEAR_HASH_BENCH/64/real_time             10262542 us     10261880 us            1 BytesProcessed=798.243M/s Rate=4.89356us
LINEAR_HASH_BENCH/128/real_time             7548851 us      7235086 us            1 BytesProcessed=1085.2M/s Rate=3.59957us
LINEAR_HASH_BENCH_AVX/64/real_time          4279616 us      3876050 us            1 BytesProcessed=1.86933G/s Rate=2.04068us
LINEAR_HASH_BENCH_AVX/128/real_time         3023446 us      2963734 us            1 BytesProcessed=2.64599G/s Rate=1.44169us
MERKLETREE_BENCH/64/real_time               9595622 us      7825490 us            1 BytesProcessed=853.723M/s Rate=4.57555us
MERKLETREE_BENCH/128/real_time              8261920 us      7953147 us            1 BytesProcessed=991.537M/s Rate=3.93959us
MERKLETREE_BENCH_AVX/64/real_time           4609280 us      3884992 us            1 BytesProcessed=1.73563G/s Rate=2.19788us
MERKLETREE_BENCH_AVX/128/real_time          3614813 us      3299295 us            1 BytesProcessed=2.21312G/s Rate=1.72368us
MERKLETREE_BATCH_BENCH/64/real_time         9701176 us      9111133 us            1 BytesProcessed=844.434M/s Rate=4.62588us
MERKLETREE_BATCH_BENCH/128/real_time        8798086 us      8709507 us            1 BytesProcessed=931.112M/s Rate=4.19525us
MERKLETREE_BATCH_BENCH_AVX/64/real_time     4650252 us      4424796 us            1 BytesProcessed=1.72034G/s Rate=2.21741us
MERKLETREE_BATCH_BENCH_AVX/128/real_time    3623811 us      3496373 us            1 BytesProcessed=2.20762G/s Rate=1.72797us
NTT_BENCH/64/real_time                         3.82 s          3.27 s             1
NTT_BENCH/128/real_time                        3.54 s          3.09 s             1
NTT_BLOCK_BENCH/64/real_time                   2.18 s          2.18 s             1
NTT_BLOCK_BENCH/128/real_time                  2.87 s          2.85 s             1
LDE_BENCH/64/real_time                         11.5 s          10.5 s             1
LDE_BENCH/128/real_time                        11.6 s          10.5 s             1
LDE_BLOCK_BENCH/64/real_time                   17.6 s          13.7 s             1
LDE_BLOCK_BENCH/128/real_time                  14.2 s          13.5 s             1
EXTENDEDPOL_BENCH/64/real_time                 5.21 s          5.21 s             1
EXTENDEDPOL_BENCH/128/real_time                5.40 s          5.07 s             1

附录:Polygon Hermez 2.0 zkEVM系列博客

  • ZK-Rollups工作原理
  • Polygon zkEVM——Hermez 2.0简介
  • Polygon zkEVM网络节点
  • Polygon zkEVM 基本概念
  • Polygon zkEVM Prover
  • Polygon zkEVM工具——PIL和CIRCOM
  • Polygon zkEVM节点代码解析
  • Polygon zkEVM的pil-stark Fibonacci状态机初体验
  • Polygon zkEVM的pil-stark Fibonacci状态机代码解析
  • Polygon zkEVM PIL编译器——pilcom 代码解析
  • Polygon zkEVM Arithmetic状态机
  • Polygon zkEVM中的常量多项式
  • Polygon zkEVM Binary状态机
  • Polygon zkEVM Memory状态机
  • Polygon zkEVM Memory Align状态机
  • Polygon zkEVM zkASM编译器——zkasmcom
  • Polygon zkEVM哈希状态机——Keccak-256和Poseidon
  • Polygon zkEVM zkASM语法
  • Polygon zkEVM可验证计算简单状态机示例
  • Polygon zkEVM zkASM 与 以太坊虚拟机opcode 对应集合
  • Polygon zkEVM zkROM代码解析(1)
  • Polygon zkEVM zkASM中的函数集合
  • Polygon zkEVM zkROM代码解析(2)
  • Polygon zkEVM zkROM代码解析(3)
  • Polygon zkEVM公式梳理
  • Polygon zkEVM中的Merkle tree
  • Polygon zkEVM中Goldilocks域元素circom约束
  • Polygon zkEVM Merkle tree的circom约束
  • Polygon zkEVM FFT和多项式evaluate计算的circom约束
  • Polygon zkEVM R1CS与Plonk电路转换
  • Polygon zkEVM中的子约束系统
  • Polygon zkEVM交易解析
  • Polygon zkEVM 审计及递归证明
  • Polygon zkEVM发布公开测试网2.0
  • Polygon zkEVM测试集——创建合约交易
  • Polygon zkEVM中的Recursive STARKs
  • Polygon zkEVM的gas定价
  • Polygon zkEVM zkProver基本设计原则 以及 Storage状态机
  • Polygon zkEVM bridge技术文档
  • Polygon zkEVM Trustless L2 State Management 技术文档
  • Polygon zkEVM中的自定义errors
  • Polygon zkEVM RPC服务
  • Polygon zkEVM Prover的 RPC功能
  • Polygon zkEVM PIL技术文档
  • Polygon zkEVM递归证明技术文档(1)【主要描述了相关工具 和 证明的组合、递归以及聚合】
  • Polygon zkEVM递归证明技术文档(2)—— Polygon zkEVM架构设计
  • Polygon zkEVM递归证明技术文档(3)——代码编译及运行
  • Polygon zkEVM递归证明技术文档(4)—— C12 PIL Description
  • Polygon zkEVM递归证明技术文档(5)——附录:借助SNARKjs和PIL-STARK实现proof composition
  • eSTARK:Polygon zkEVM的扩展STARK协议——支持lookup、permutation、copy等arguments(1)
  • eSTARK:Polygon zkEVM的扩展STARK协议——支持lookup、permutation、copy等arguments(2)
  • eSTARK:Polygon zkEVM的扩展STARK协议——支持lookup、permutation、copy等arguments(3)
  • Polygon zkEVM的Dragon Fruit和Inca Berry升级
  • Polygon zkEVM协议治理、升级及其流程
  • Polygon zkEVM 节点软件release日志
  • Polygon zkEVM bridge服务 release日志
  • Polygon zkEVM DataStreamer

你可能感兴趣的:(zkVM,zkVM)