logo

Icicle

Icicle

A GPU Library for Zero-Knowledge Acceleration

Description
ICICLE is an open-source library for ZK acceleration using CUDA-enabled GPUs. It is an essential tool for ZK developers and researchers focused on advancing Zero Knowledge Proofs using GPU.
Additional Details

Zero Knowledge Proofs (ZKPs) are considered one of the greatest achievements of modern cryptography. Accordingly, ZKPs are expected to disrupt a number of industries and will usher in an era of trustless and privacy preserving services and infrastructure.

We believe GPUs are as important for ZK as for AI.

  • GPUs are a perfect match for ZK compute - around 97% of ZK protocol runtime is parallel by nature.
  • GPUs are simple for developers to use and scale compared to other hardware platforms.
  • GPUs are extremely competitive in terms of power / performance and price (3x cheaper).
  • GPUs are popular and readily available.

The ZKContainer

Containers are a lightweight alternative to virtual machines. They allow developers to package software and its dependencies in an isolated unit, which can be easily deployed in any environment.

Containers are one of the foundational technologies used today in cloud computing. They are frequently used in AI, for example, to deploy and scale AI workloads. Containers also have many tools developed for them which allow scaling software automatically across datacenters, both on-prem and on cloud.

A ZKContainer is a Docker image which includes ICICLE and all dependencies required to run an optimized ICICLE application on Nvidia GPUs. Here is the feature list enabled using ZKCs:

**Fast prototyping: **it takes a few command lines to switch between provers and hardware configurations
Storage solutions: generating ZK proofs often require many files to be generated, ZKCs make it easier to configure storage locations, caching, and cleaning up after proving
Fast scaling: Start testing on a single cluster node or even a single GPU and easily scale based on demand. Containers also allow for load balancing and resource configurations and optimizations to be implemented simply
Diverse set of use cases built-in: such as running different prover protocols (Groth16, Plonk) and different implementations (Gnark, Halo2)
Built-in logging solutions: which can connect to a central logging solution
Common tooling: since we currently only support Nvidia GPUs, our containers work with Nvidia’s GPU datacenter tooling such as NVIDIA GPU Operato
Security: ZKCs images are scanned for common CVEs
Constantly updated: ZKContainers are kept up-to-date with latest Icicle improvements
Multi container platform support, while Docker is currently our main focus we also allow you to build containers for Singularity, cri-o, and containerd.
They run anywhere: on-prem, bare-metal, cloud platforms, Kubernetes, virtual machines, and various architectures which support containers.
Continuous testing: making sure ZKCs work out of the box on a wide range of systems.

Check out ZK Containers!!