app-logo
  • Teams

    Teams

  • Members

    Members

  • Projects

    Projects

  • Events

    Events

  • /
    Projects/

    Icicle

    logo

    Icicle

    Icicle

    A GPU Library for Zero-Knowledge Acceleration

    Developer Tooling
    Hardware
    ZK Proofs
    Confirm Delete

    Are you sure you want to delete the project?

    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.

    Links
    iconIcicle GitHubarrow icon
    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!!

    Contributors (2)
    search
    profileteam lead image
    Omer Shlomovits
    icon
    profile
    Otsar Shalmoni
    icon
    Teams (1)
    search
    Ingonyama
    icon