zkmopro / mopro

Making client-side proving on mobile simple.
https://zkmopro.org
Apache License 2.0
131 stars 35 forks source link

Implement micro benchmarking tooling for doing MSMs/using GPU on Mobile #21

Closed oskarth closed 9 months ago

oskarth commented 1 year ago

Part of https://github.com/oskarth/mopro/issues/22

Problem

We currently lack basic tooling for doing micro benchmarking on mobile.

Steps

  1. Create gpu_explorations folder in mopro-core with run_msm_bench() function that runs N MSM, with timings
  2. Add and use vanilla arkworks msm
  3. Extend FFI in lib.rs and UDL file to support above function
  4. Write basic Swift test to check initial performance on laptop (not mobile/iOS)
  5. Add and call above function in the iOS example app ViewController.swift
  6. Run on a real iOS device to check performance
  7. Update README with instructions for how to run above; add initial benchmarks observed

Next steps

After basics are in place, we can do things like:

Acceptance Criteria

Basic micro benchmarking tooling is in place with initial numbers running on a real iOS device.

oskarth commented 9 months ago

@FoodChain1028 @moven0831 can this be closed with https://github.com/oskarth/mopro/pull/71?

Would you like to turn next steps into specific GH issues with acceptance criteria and relevant notes in this repo?

moven0831 commented 9 months ago

The issue is closed by #71. The next steps of MSM acceleration with mobile GPU will be published in another issue ASAP.

Vap0RSh4wN commented 9 months ago

Can we still apply for the open task in the https://github.com/privacy-scaling-explorations/acceleration-program/issues/24? May I ask whether this project and task have been finished, and are they no longer open in the acceleration-program?

NOOMA-42 commented 9 months ago

the original acc program issue points at this issue which is wrong, should be https://github.com/oskarth/mopro/issues/15

Can we still apply for the open task in the privacy-scaling-explorations/acceleration-program#24? May I ask whether this project and task have been finished, and are they no longer open in the acceleration-program?