awesome-client-side-gpu
Awesome things around client-side GPU ecosystems.
https://github.com/zkmopro/awesome-client-side-gpu
Last synced: 4 days ago
JSON representation
-
Competitions and Benchmarks
-
Benchmarks and Metrics
- moven0831/field-ops-benchmarks - Benchmarks for M31 and BN254 field operations across Metal and WebGPU backends. `GPU: Metal, WebGPU` `Op: Field Arithmetic`.
- ethproofs.org — client-side proving dashboard - Live leaderboard tracking proof generation times and costs for client-side Ethereum proof systems across various hardware targets.
-
ZPrize Entries
-
-
Learning Resources
-
Blog Posts and Articles
- Mopro: "Metal MSM v2" - Technical walkthrough of the second-generation Metal MSM implementation in zkmopro/gpu-acceleration, explaining the 40–100× CPU speedup.
- zkSecurity: "Accelerating ZK Proving with WebGPU" - Explores how WebGPU NTT shaders accelerate Stwo STARK proving in the browser.
- Geometry Research: "Accelerating Client-Side ZK with WebGPU" - Introduces the MSL secp256k1 work and frames the broader opportunity for WebGPU in client-side ZK proving.
- PSE: "Client-Side GPU Acceleration for ZK" - Frames why client-side GPU proving matters for Ethereum privacy and surveys six key GPU-accelerable ZK primitives.
-
Research Papers
- cuZK: Accelerating Zero-Knowledge Proof with a Faster Parallel Multi-Scalar Multiplication Algorithm on GPUs - IACR 2022/1321; introduces the cuZK MSM algorithm that underpins most WebGPU and Metal MSM implementations in this list. `Op: MSM`.
-
-
Mobile and Edge Proving
-
Full Proof Systems
- zkmopro/mopro - Multi-prover mobile toolkit exposing a unified Swift/Kotlin API over Halo2, Noir, and Circom backends. `GPU: Metal` `Op: Groth16, PLONK` `Lang: Rust`.
- zkonduit/ezkl - ZK machine-learning inference library on iOS and macOS, delivering ~2× speedup over the CPU path. `GPU: Metal` `Op: ZKML, PLONK` `Lang: Rust`.
-
-
Projects by GPU Technology
-
Cross-Platform Frameworks
- ingonyama-zk/icicle - Production-ready ZK acceleration library with CUDA, Metal, and ROCm backends and iOS/Android support. `GPU: Multi` `Op: MSM, NTT` `Lang: C++, Rust`.
- tracel-ai/cubecl - GPU compute framework for Rust using a proc-macro kernel language that compiles to WebGPU, CUDA, ROCm, and Metal. `GPU: Multi` `Op: Field Arithmetic` `Lang: Rust`.
- lambdaclass/lambdaworks - Full ZK cryptography library with GPU-accelerated FFT, MSM, and Merkle tree backends for CUDA and Metal. `GPU: Multi` `Op: FFT, MSM` `Lang: Rust`.
- mratsim/constantine - High-performance elliptic-curve and pairing library in Nim with experimental WebGPU and CUDA backends. `GPU: Multi` `Op: EC Arithmetic, MSM` `Lang: Nim`.
- spaceandtimefdn/blitzar - MSM and Pedersen commitment library with CUDA and CPU backends. `GPU: CUDA` `Op: MSM` `Lang: C++, Rust`.
-
Metal (Apple Silicon / iOS / macOS)
- zkmopro/gpu-acceleration - Metal MSM library for Apple Silicon achieving 40–100× speedup over CPU, integrated into the mopro toolkit. `GPU: Metal` `Curve: BN254` `Op: MSM` `Lang: Rust`.
- geometryxyz/msl-secp256k1 - Metal Shading Language implementation of secp256k1 elliptic-curve arithmetic using Jacobian coordinates, targeting Apple Silicon GPUs. `GPU: Metal` `Curve: secp256k1` `Op: EC Arithmetic` `Lang: MSL`.
-
WebGPU (Browser-Native)
- ICME-Lab/msm-webgpu - MSM over BN254 using the cuZK algorithm, compiled to WGSL shaders. `GPU: WebGPU` `Curve: BN254` `Op: MSM` `Lang: Rust`.
- td-kwj-zp2023/webgpu-msm-bls12-377 - Winning ZPrize 2023 entry for MSM over BLS12-377. `GPU: WebGPU` `Curve: BLS12-377` `Op: MSM` `Lang: TypeScript`.
- td-kwj-zp2023/webgpu-msm-twisted-edwards - ZPrize 2023 MSM entry targeting Twisted Edwards curves with extended-coordinates arithmetic in WGSL. `GPU: WebGPU` `Curve: BLS12-377` `Op: MSM` `Lang: TypeScript`.
- demox-labs/webgpu-crypto - Research-stage library covering MSM, NTT, and hash functions over BLS12-377 and BN254. `GPU: WebGPU` `Curve: BLS12-377, BN254` `Op: MSM, NTT, Hash` `Lang: TypeScript`.
- demox-labs/webgpu-msm - Baseline ZPrize 2023 reference for browser-native MSM over BLS12-377. `GPU: WebGPU` `Curve: BLS12-377` `Op: MSM` `Lang: TypeScript`.
- penumbra-zone/webgpu - Pioneer Groth16 prover for Penumbra's shielded transactions over BLS12-377. `GPU: WebGPU` `Curve: BLS12-377` `Op: Groth16` `Lang: Rust` `Status: Archived`.
- ligeroinc/ligero-prover - Hash-based ZK prover using FFT-based polynomial IOPs, running in browsers via Dawn/Emscripten. `GPU: WebGPU` `Op: NTT, Hash` `Lang: C++`.
-
-
Related Lists
-
WebGPU and GPU Compute
- mikbry/awesome-webgpu - Comprehensive WebGPU ecosystem list covering specs, demos, shader libraries, and tutorials.
- rofrol/awesome-wgpu - Curated resources for `wgpu`, the primary Rust WebGPU implementation used by many projects in this list.
- jslee02/awesome-gpgpu - General-purpose GPU compute frameworks including CUDA, OpenCL, and Vulkan Compute.
- goabiaryan/awesome-gpu-engineering - GPU architecture, optimization techniques, and Metal Performance Shaders resources.
-
Zero-Knowledge Proofs
- matter-labs/awesome-zero-knowledge-proofs - Comprehensive ZKP educational resources covering theory, tools, and applications.
- ventali/awesome-zk - ZK resources spanning zkVMs, L1/L2 protocols, developer tools, and benchmarks.
- odradev/awesome-zero-knowledge - Blockchain-focused ZK resources with a companion weekly newsletter at [zknewsletter.com](https://zknewsletter.com).
-
Programming Languages
Categories
Sub Categories
Keywords
cryptography
4
rust
4
cuda
3
zero-knowledge
3
gpgpu
2
elliptic-curve-cryptography
2
awesome
2
awesome-list
2
webgpu
2
game
1
game-development
1
rustgame
1
blockchain
1
barreto-naehrig
1
bigint
1
bignum
1
bls
1
bls-signature
1
bls12-381
1
zkml
1
ai
1
webgl
1
w3c
1
javascript
1
gpu-computing
1
3d
1
zk-snarks
1
team-crypto
1
snark
1
knowledge-proofs
1
explaining-snarks
1
zk-proofs
1
curve25519
1
cpp20
1
zk
1
mobile
1
linalg
1
jit
1
gpu
1
ntt
1
msm
1
golang
1
cpu
1
zero-knowledge-proofs
1
mathematics
1
vulkan
1
opencl
1
zkp
1
side-channels
1
public-key-cryptography
1