Kimchi WebGPU explores accelerating Kimchi zero-knowledge provers by performing Number-Theoretic Transforms (NTTs) NTT and Multi-Scalar Multiplications (MSMs) MSM over the Pallas and Vesta fields entirely on the GPU via WebGPU. The approach keeps all polynomial coefficients and intermediate results resident on-device, minimizing host-GPU synchronization, with the goal of improving prover throughput while preserving correctness and determinism.
- Brave Nightly installed (macOS or Linux) to run browser-based WebGPU tests and benchmarks.
- Ensure flags like
--enable-unsafe-webgpuand--ignore-gpu-blocklistare enabled for full GPU support.e
- Ensure flags like
- Install dependencies:
npm install
- Compile TypeScript source files into the
distfolder:
npm run build
This runs the command:tsc
-
Headless CLI Tests (for CI or automated runs):
npm run test:browser-cli
This runs the compiled browser test runner in Node using Puppeteer + Brave in headless mode. -
Interactive Browser Tests (leave browser open for inspection):
npm run test:browser
This starts an Express server, opens Brave with WebGPU enabled, and displays test results in the browser page.
The page URL will be printed to stdout so you can open it manually if needed.