ICICLE Goes Metal: v3.6

Published on: 
Mar 17, 2025

We are excited to introduce ICICLE v3.6, bringing support for the Metal backend! This update expands ICICLE’s multi-backend capabilities, making it even more versatile across diverse hardware platforms.

For macOS users, ICICLE now leverages Metal acceleration, allowing seamless performance improvements without any code modifications — your existing APIs will run smoothly on Metal.

Getting Started is Simple

1. Download & extract ICICLE v3.6
2. Set the ICICLE_BACKEND_INSTALL_DIR environment variable
3. Run your existing code — now accelerated with Metal.
4. Enjoy the performance boost.

ICICLE’s new logo

What’s New in ICICLE v3.6

Metal Backend Support:

  • Now operable with C++ and Rust frontends.
  • Supported operations on Metal: MSM, NTT, and Sumcheck.
NTT: CPU vs Metal in v3.6
MSM: CPU vs Metal in v3.6

Current Limitations

○ API implementations for Poseidon & Poseidon2 hashes, Merkle tree, Sumcheck, and G2 Montgomery conversions are not yet included but will be added in future updates.

○ Performance Optimizations — We are actively working on refining these primitives to further enhance efficiency in upcoming versions.

Sumcheck Enhancements

  • Full API coverage on Program — The Rust wrapper now supports any user-defined Program as a combination function for the Sumcheck protocol.
  • Improved CPU Sumcheck — Optimized algorithm delivers significantly better performance.
  • ICICLE Sumcheck Grant — We’re excited to support innovative projects leveraging Sumcheck! If you have a unique idea, let’s discuss the possibility of a special grant for your work.

Lattice Advancements

  • LaBRADOR protocol ring, RNS VecOps, and NTT have already been integrated.
  • These enhancements pave the way for further lattice-based cryptographic developments.

For more details, check out the full release notes.

Future Releases and Upcoming Work

The initial Metal components are now in place, marking a major milestone in ICICLE’s expansion. In upcoming releases, support for Merkle trees and hash functions will be added, along with further optimizations to enhance overall performance.

On the lattice development front, we are focusing on expanding ring APIs, including decomposition, matrix multiplication, and advancements in the Greyhound ring. These improvements will strengthen ICICLE’s capabilities, paving the way for more efficient lattice-based cryptographic applications.

Exploring Groth16 with ICICLE

Our next blog post will dive into Groth16, the most widely used ZK proving scheme. We’ll showcase how ICICLE delivers the fastest implementation available. Stay tuned — this one is worth the wait!

Upcoming ICICLE Release

  • ICICLE v3.7 — Introducing FRI support! Want to experiment with the next version? Reach out to us at hi@ingonyama.com.

Follow Ingonyama

Twitter / X: https://twitter.com/Ingo_zk

YouTube: https://www.youtube.com/@ingo_zk

GitHub: https://github.com/ingonyama-zk

LinkedIn: https://www.linkedin.com/company/ingonyama

Join us: https://www.ingonyama.com/career

Snark Chocolate: Spotify / Apple Podcasts

light

Written by

Table of Contents

Want to discuss further?

Ingonyama is commited to developing hardware for a private future using Zero Knowledge Proofs.

Get in touch
Get our RSS feed