#pasta #arm64 #cuda #scalar #x86-64 #optimized #search #moduli #multiscalar #multiplicaton

pasta-msm

Optimized multiscalar multiplicaton for Pasta moduli for x86_64 and aarch64

5 releases

0.1.4 May 5, 2023
0.1.3 Aug 10, 2022
0.1.2 Jun 26, 2022
0.1.1 May 26, 2022
0.1.0 May 19, 2022

#1 in #pasta

Download history 140/week @ 2025-03-24 56/week @ 2025-03-31 79/week @ 2025-04-07 72/week @ 2025-04-14 144/week @ 2025-04-21 131/week @ 2025-04-28 71/week @ 2025-05-05 67/week @ 2025-05-12 35/week @ 2025-05-19 66/week @ 2025-05-26 25/week @ 2025-06-02 69/week @ 2025-06-09 137/week @ 2025-06-16 174/week @ 2025-06-23 122/week @ 2025-06-30 136/week @ 2025-07-07

582 downloads per month
Used in 5 crates (2 directly)

Apache-2.0

17KB
323 lines

Pasta Multi-Scalar Multiplication

This is an initial version with a list of planned improvements:

  • parallelize;
  • break down scalars to signed digits to half the buckets' integration complexity;
  • switch to alternative bucket point representation with faster addition formula;
  • migrate CUDA implementation;

To compile CUDA support ensure that you have nvcc, Nvidia CUDA compiler, on your program search path. Minimal installation suffices. For example on Ubuntu it would be sufficient to install cuda-minimal-build-11-7 instead of complete cuda package. If your laptop is equipped with a Turing+ controller, you're likely to have to compile with --features=cuda-mobile. Caveat lector. CUDA implementation does not adapt for the actual load yet, so that some results would be suboptimal.

Dependencies

~1.3–2.8MB
~57K SLoC