NVMe-MSM is a demonstration of our cutting-edge modular design for Zero-Knowledge Proof hardware, combining high-performance MSM (Multi-Scalar Multiplication) acceleration with seamless NVMe protocol support. This demo is implemented on a VCU118 FPGA, showcasing our custom MSM hardware design integrated with an NVMe endpoint.
To complete the system, we provide a host-side Python-based driver that utilizes Linux’s open-source nvme-cli command-line tools to enable efficient communication between the host and the FPGA. This demo showcases our capability to not only accelerate MSM computations but also harness NVMe for seamless data transfer, ensuring compatibility with modern infrastructure and practical applications. NVMe-MSM stands as a tangible proof of concept for our vision of scalable, efficient, and accessible ZK hardware solutions.
This video highlights the simplicity of our driver, which leverages Python’s subprocess module to call nvme-cli commands. By using Linux’s native NVMe support, our approach ensures seamless interaction with the SoC, demonstrating how straightforward it is to integrate with modern systems.
Benchmark
Benchmark
We achieve MSM completion in 1.396 when amount of points N=220 seconds at a clock frequency of 100 MHz. When the clock frequency is increased to 250 MHz, the expected execution time is approximately 0.546 seconds, which is comparable to Jump’s CycloneMSM result of 0.559 seconds.