Skip to content

Benching range check mechanisms #521

@Dustin-Ray

Description

@Dustin-Ray

Experiment Description

These benchmarks compare two different mechanisms for verifying that a set of random scalar values lies within a certain range:

  • SignExpr through inequality (treating scalars as full width, 2^248)
  • Range check construction (on both u16 and u8)

Both experiments were run using the dynamic Dory proof system with a nu value of 16 on an NVIDIA A100 multi-GPU setup. The table below summarizes the timings for sequential and fully-random inputs, as well as varying input sizes.


Single-Value Results (size = 1_000_000)

Experiment Time
trace fully random SignExpr through inequality 52.3s
trace fully random rangecheck on u16s 8.97s
trace sequential 0 to 1 million SignExpr through inequality 7.35s
trace sequential 0 to 1 million rangecheck on u16s 8.7s

Fully Random Inputs

SignExpr (2^248) Through Inequality

Input Size Time
1000 532.22ms
1,000,000 52.3s
10,000,000 3m 40s

Rangecheck on u16s

Input Size Time
1000 2.78s
1,000,000 8.97s
10,000,000 36.4s

Rangecheck on u8s

Input Size Time
1000 352.8ms
1,000,000 14.3s
10,000,000 1m

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions