Skip to content
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

Standardize tracing crate + implement micro-benchmarking #36

Merged
merged 11 commits into from
Aug 31, 2023
Merged

Conversation

winston-h-zhang
Copy link
Member

This PR is the next-in-line from downstream PR from lurk-lab/lurk-rs#627, implementing an unified tracing ecosystem. Additionally, we add the tracing_texray crate, with allows us to easily visualize spans and benchmarks of lurk. Texray can be enabled wherever and tracing offers a lot of flexibility; please see the documentation for more info (tracing-texray).

With this, we can get nice mirco-benchmarks like this:

    RecursiveSNARK::prove_step                   219ms               ├────────────┤
      <MultiFrame as StepCircuit>::synthesize     38ms                ├─┤
      <_ as Group>::vartime_multiscalar_mul       50ms                  ├─┤
      NIFS::prove                                106ms                     ├─────┤
          AZ_1, BZ_1, CZ_1                        31ms                     ├┤
          AZ_2, BZ_2, CZ_2                        29ms                       ├┤
          cross terms                              5ms                         ┆
          T                                      716μs                          ┆
          <_ as Group>::vartime_multiscalar_mul   37ms                          ├┤
      <_ as Group>::vartime_multiscalar_mul        4ms                             ┆

Looking here suggests that we are spending a surprising amount of time computing [A-C] Z_{1, 2}... 🤔

self.multiply_vec(&Z2)
})?;

// forgive the horror here, but it's for grouping into one span
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The beginning of the comment ("forgive the horror") is not super informative especially when things aren't that horrific

@huitseeker huitseeker added this pull request to the merge queue Aug 31, 2023
Merged via the queue into dev with commit c360828 Aug 31, 2023
2 checks passed
@huitseeker huitseeker deleted the tracing branch August 31, 2023 23:40
winston-h-zhang added a commit that referenced this pull request Sep 5, 2023
* add tracing spans

* more instrumenting

* more tracing

* use spans ig

* more spans

* more spans

* commit_T spans 🤔

* nice spans

* remove commit_T

* Add trace for ppsnark and snark

* fix cargo.toml and fmt

---------

Co-authored-by: Samuel Burnham <45365069+samuelburnham@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants