You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The current implementation of Metal MSM leverages GPU resources only partially, leading to suboptimal performance. To fully exploit GPU capabilities, we need to optimize the MSM process by addressing identified overheads and implementing enhancements.
Details
Current Implementation
The Metal MSM implementation currently derives from Lambdawork's metal backend and Arkworks' MSM implementation. Metal is used only for the MSM accumulation phase on the GPU, while other phases run on the CPU. This partial GPU utilization limits potential performance gains.
Identified Overheads
Parsing points and scalars for GPU computation.
Converting GPU-calculated buckets back to Arkworks-compatible types.
Optimization Goals
Full GPU Implementation: Implement the entire MSM process on the GPU to reduce data conversion overhead by only parsing the final MSM result back to Arkworks-compatible types.
Initialization Speed: Accelerate the initialization of points and scalars for GPU computation.
Advanced Techniques: Apply optimization techniques such as precomputation of points.
By addressing these areas, we aim to significantly enhance MSM computation speed using Metal.
Acceptance Criteria
The entire MSM process is implemented on the GPU, minimizing data conversion overhead.
Initialization of points and scalars for GPU computation is significantly faster.
The final implementation is compatible with Arkworks and passes all relevant tests.
The text was updated successfully, but these errors were encountered:
@mahmudsudo Thank you for showing your interest. @moven0831 and @FoodChain1028 have already taken this issue and implemented them.
If you are looking for collaboration, please join the tg group: https://t.me/zkmopro
We can talk more about this.
Problem
copied from zkmopro/mopro#153
The current implementation of Metal MSM leverages GPU resources only partially, leading to suboptimal performance. To fully exploit GPU capabilities, we need to optimize the MSM process by addressing identified overheads and implementing enhancements.
Details
Current Implementation
The Metal MSM implementation currently derives from Lambdawork's metal backend and Arkworks' MSM implementation. Metal is used only for the MSM accumulation phase on the GPU, while other phases run on the CPU. This partial GPU utilization limits potential performance gains.
Identified Overheads
Optimization Goals
By addressing these areas, we aim to significantly enhance MSM computation speed using Metal.
Acceptance Criteria
The text was updated successfully, but these errors were encountered: