ICICLE V3.1:更多激情、更多能量、更多ZK性能

  • ingonyama
  • 发布于 2024-11-06 16:24
  • 阅读 8

Ingonyama 发布了 ICICLE v3.1,这是一个位于 ZK 堆栈硬件和协议层之间的库,旨在优化 CPU 和 GPU 上的 ZK 算法性能。v3.1版本修复了多个bug,并增强了CPU后端性能,支持客户端后端和Sumcheck。未来还将添加Poseidon2哈希算法,目标是在CPU上超越Plonky3的性能。

ICICLE v3.1: 更多激情,更多能量,更多 ZK 性能

在这篇博文中,我们将分享我们与 v3 的早期采用者合作的见解,介绍 v3.1 中的新功能,并详细介绍此版本中包含的内容。最后,我们将提供有关下一个版本的信息。

背景

ICICLE 是一个位于 ZK 堆栈的硬件层和协议层之间的库,允许工程师有效地实现针对目标硬件优化的算法。

ZK 堆栈的草图及示例

9 月初,我们发布了 ICICLE v3,其新设计可在 CPU 和 GPU 上实现最佳性能,且代码更改最少。结合我们对 V2 多项式 API 的增强,此版本为实现 ZK 协议提供了真正的类似 PyTorch 的体验。

ICICLE v3,于 2024 年 9 月发布

用户如何采用 v3

我们对选择测试我们代码的工程师的数量和水平感到荣幸!在这里,我们重点介绍两个示例,展示了统一的 API 和双 CPU-GPU 后端如何解决实际的业务问题。

引言 1:我们刚刚移植了我们的 Halo2 分支以使用 Icicle v3。我们喜欢在 CPU/GPU 之间轻松切换后端的想法,因为这也将简化我们代码的维护(以前,我们使用 features 来选择性地使用 icicle/halo2 API)。”

ZK 证明器仍然很复杂,维护大型代码库会减慢部署、错误修复和可读性。以前,集成 GPU 加速的 ICICLE V2 用户必须在 ICICLE API 和其原生 CPU API 之间切换——现在不用了!

借助新的 ICICLE v3 统一 API,以及在使我们的 CPU 后端在性能方面达到最先进水平方面的重大进展,你现在可以将代码库的更大部分转移到具有简单切换的单个 API。不再有复杂的解决方法或复杂的转换。干净的代码才是王道!

引言 2: "拥有更好的 CPU 后端对我们的运营很重要。根据我们的经验,获取新的 GPU 实例需要很长时间,因此我们依靠 CPU 来处理流量高峰

这个很酷。Web3 中最受欢迎(且至关重要)的基础设施框架之一面临着一个重大挑战:在大型公共云提供商上运行。为了降低成本,他们需要其使用量与实际需求相匹配,这意味着根据当前需求即时租用实例。问题是,有时在流量高峰时段,无法获得足够的 GPU 来维持相同的服务质量——扩展很困难!解决方案是什么?当 GPU 不可用时,它们会无缝地回退到 CPU。使用 ICICLE,这种切换很容易——只需调整目标后端——与其他实现相比,CPU 性能没有受到影响。

我们要衷心感谢所有测试 v3 的人——无论是新用户还是从早期版本移植的用户。我们从用户及其反馈中获得了宝贵的见解。

单击 此处 获取有关如何使用 v3.1 的发行说明。有关团队如何使用 ICICLE (V2) 的更多信息,请查看我们的 ICICLE 案例研究 系列博客 文章

v3.1——新增功能

新版本包括以下内容:

Bug 修复(感谢 Marlin 和 Eigenlayer 提供的帮助):

CUDA:

  • 针对特定输入大小的 MSM 正确性
  • 针对非常大的 MSM 的 MSM 内存分配

CPU: 少量线程的 CPU MSM 错误修复

前端: 多设备场景的 Golang 竞争

示例:

  • Arkworks 转换:是的,你可以将 Arkworks 代码移植到 ICICLE,它将运行得更快

要开始使用 ICICLE,请访问我们的 文档。CPU 支持意味着你可以立即启动并运行——无需设置或特殊的硬件。如果你找不到实现算法所需的内容或遇到任何意外行为,请随时通过 support support@ingonyama.com 与我们联系,或在 DiscordGithub 上与我们联系!

路线图

我们很快将推出我们的第一个 客户端后端。这意味着相同的代码可以在服务器端、客户端或两者上运行!我们相信客户端证明即将起飞,我们将在这里支持团队探索新的应用程序和用例。如果你有兴趣在移动设备上试验 ICICLE,请随时与我们联系!

在下一个版本中,我们将添加官方的 Sumcheck 支持。在对 CPU 和专用硬件的 Sumcheck 算法进行了广泛的 实验 之后,我们认为现在是时候向 ICICLE 引入原生支持和专用的 Sumcheck API 了。

在哈希 API 方面,我们将添加 Poseidon2,目标是使 CPU 版本的性能优于 Plonky3。GPU 版本也将可用。

最后,我们致力于进一步提高现有 CPU 后端的性能。随着新算法的开发,我们预计 v3.2 会有显着改进。

我们有很多新的想法正在酝酿中,其中最有价值的想法来自我们的生态系统。我们很乐意听取你的意见——与我们交谈!

ICICLE Github

关注 Ingonyama

Twitter: 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

加入我们: https://www.ingonyama.com/careers

  • 原文链接: medium.com/@ingonyama/ic...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
ingonyama
ingonyama
从软件到硅重定义密码学硬件加速 // 从这里开始: https://dev.ingonyama.com