ICICLE 是一个使用 CUDA-enabled GPUs 进行 ZK 加速的库。最新版本引入了 ECNTT、列式 NTT 处理、MSM 预计算等新特性,并优化了编译时间。即将发布的 v2 版本将提供丰富的多项式 API,并支持在 GPU 内部运行端到端的证明器。
ICICLE 是一个使用支持 CUDA 的 GPU 进行 ZK 加速的库。
在我们的文档网站上了解更多关于如何使用 ICICLE 的信息。
本次更新涵盖 v1.7、v1.8、v1.9 和 v1.9.1 版本
以下是 ICICLE v2 之前的最后一次产品更新,计划在未来几周内发布。v2 的定义是公开一个丰富的多项式 API。我们已经有了在 GPU 内部端到端运行的证明器的可用原型,在 v2 中,我们打算让所有使用 ICICLE 的开发者都可以使用此功能。
继续阅读以了解详细信息。
ECNTT 是在椭圆曲线点上完成的 NTT。它是一种计算密集型操作,可以有效地并行化。我们第一个 ECNTT 的实现大约在一年前,当时我们需要在 GPU 内部完全运行 Danksharding。
从那时起,其他数据可用性解决方案也采用了类似的方法,因此,听取社区的意见,我们决定重新引入此功能。来自 ICICLE 用户的初步结果显示,与 CPU 的领先实现相比,性能提升高达 500 倍 (!!!)。自 v1.9.1 以来,ECNTT 也可从 Golang 获得。批量 ECNTT 也受到支持,完整的文档即将发布
本次更新引入了批量数论变换 (NTT) 处理的增强功能,支持列式数据处理。这消除了操作前后进行数据转置的必要性;用户现在可以调整 NTT 配置中的设置以方便此过程。
此外,通过集成预计算步骤,实现了多标量乘法 (MSM) 功能的增强。这允许提前计算额外的椭圆曲线点,从而简化后续的 MSM 操作。
MSM 预计算基准测试(使用 Nvidia RTX 3090T)
我们发现,使用 ICICLE 进行开发时,编译时间可能是一个关键瓶颈,因此我们正在解决这个问题。在 v1.9 中,我们引入了一种更快的编译方法,适用于 CUDA 12.2 及更高版本。CUDA c++ 编译时间的加速是通过多线程编译完成的。在 8 核机器上的测试显示加速约 2 倍。
未来,我们计划进一步减少旧版 CUDA 的编译时间。
Keccak-256 和 Keccak-512 现在可以从 C++ API 访问。基准测试、文档和包装器即将推出!
有关更改的完整列表,请查看我们的变更日志。
在这里,我们重点介绍一些短期路线图项目。如果你想使用该代码的实验版本,请联系我们。
如果你有兴趣在预发布时测试这些功能,或者对设计考虑因素有一些想法,请通过 hi@ingonyama.com 与我们联系。
Twitter: https://twitter.com/Ingo_zk
Documentation: https://dev.ingonyama.com/
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
- 原文链接: medium.com/@ingonyama/pr...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!