Frequently Asked Questions
ICICLE is partially open-source:
- The core CUDA backend is source available under Ingonyama’s custom ICICLE-SA license.
- The frontend and language bindings (Rust & Go) are open-source under the MIT license.
- Full backend license details: ICICLE Licensing.
ICICLE supports a wide range of field, curve, vector, polynomial, MSM, NTT, FRI, and hashing operations across native, extension, and RNS fields. Learn more here.
For the CPU backend, any 64-bit CPU is fully supported. We've also successfully tested ICICLE on 32-bit CPUs, such as those found on Raspberry Pi, though with limited performance.
For the CUDA backend, ICICLE runs on any NVIDIA GPU from the RTX 2060 and newer. We currently build for compute capabilities 7.5, 8.0, 8.6, and 8.9. For more details on GPU compatibility, see this reference.
Yes, ICICLE supports multi-GPU configurations. Learn more here.
ICICLE is used by leading projects and research teams across cryptography and infrastructure. See the full list here.
GitHub issues on the ICICLE repo are the primary support channel. Community discussions often happen in our Discord Server’s ICICLE channel.
Yes — contributions to ICICLE are welcome! You can submit pull requests or open issues on our public GitHub repository. If you're working on research or development aligned with ICICLE, consider applying to our Ingonyama Research Grant Program 2025.
black_box
to prevent optimization during benchmarks.No formal docs. But the butterfly operation is here: ntt.cuh L153.