Hardware Acceleration
Last updated
Last updated
Validity and Zero Knowledge rollups add significant overheads to processing transactions and smart contracts. These costs are incurred in on-chain as well as off-chain activities. On-chain activities include publishing/data storage and verification while off-chain costs include computation, hardware infrastructure, and network management.
We have created a compiler on RISC-V instructions and wish to improve it further to reduce program lengths. Our zkEVM Soma relies entirely on lookup operations and draws inspiration from the Lasso/Jolt Paradigm. It consists of four key components: a) Committing to the witness (MSME over BN 254), b) Verifying Memory Consistency, c) Validating Operations through Lookups, and d) Ensuring the validity of indexes in Lookups through constraints. We have extensively benchmarked our first version of the VM, and our simulations have revealed performance bottlenecks primarily in the MSME commitment stage, followed by memory checks and lookup operations. Our initial strategy for hardware acceleration involves running MSME on FPGA followed by a more refined approach where we can perform Field operations on FPGA.
While the overall system remains in active development, we have identified certain fundamental operations (listed above) that will presumably not change and will remain bottlenecks. Therefore, we’ve finalized the system requirements for the first implementation. We have also selected two FPGA models that seem to fit the requirements. We have already made progress on the design analysis for the implementation on FPGA. We’ve largely fixed inputs and outputs. Our team is trying to work out the frequencies of both and finalize what devices the FPGA connects to and how often. Below is a list of activities we have planned in this direction and updates regarding their completion:
Particulars
Status
Lasso and Jolt Implementation
Done
Custom Complier Dev Risc
Done
Custom Compiler Dev RiscV with a reduced ISA
In-progress
Defining System Requirements
Done
Allocating functionality to the FPGA
In-progress
Identifying FPGA features
Done
Implementing FPGA design(HDL,RTL)
Not Started
Testing
Not Started
ASIC Development
Not Started