rounded

撰文:雾月,极客 web3

 

在区块链技术迭代越来越快的今天,针对性能的优化已然成为了一个关键议题,以太坊路线图已经非常明确以 Rollup 为中心,而 EVM 串行处理交易的特性是一种桎梏,无法满足未来的高并发计算场景。

 

在之前的文章——《从 Reddio 看并行 EVM 的优化之路》中,我们曾对 Reddio 的并行 EVM 设计思路进行了简要概述,而在今天的文章中,我们将对其技术方案,以及其和 AI 的结合场景进行更深入的解读。

 

由于 Reddio 的技术方案采用了 CuEVM,这是一个利用 GPU 提升 EVM 执行效率的项目,我们将先从 CuEVM 开始说起。

 

CUDA 概览

 

CuEVM 是一个用 GPU 对 EVM 进行加速的项目,它将以太坊 EVM 的操作码转换为 CUDA Kernels,以在 NVIDIA GPU 上并行执行。通过 GPU 的并行计算能力,来提高 EVM 指令的执行效率。可能 N 卡用户会常听到 CUDA 这个词——

 

Compute Unified Device Architecture,这其实是 NVIDIA 开发的一种并行计算平台和编程模型。它允许开发者利用 GPU 的并行计算能力进行通用计算(例如 Crypto 中的挖矿、ZK 运算等),而不仅限于图形处理。

 

作为一个开放的并行计算框架,CUDA 本质是 C/C++ 语言的扩展,任何熟悉 C/C++ 的底层程序员都可以快速上手。而在 CUDA 中一个很重要的概念是 Kernel(核函数),它也是一种 C++ 函数。

 

 

但与常规 C++ 函数只执行一次不同,这些核函数在被启动语法<<<...>>>调用时会由 N 个不同的 CUDA 线程并行执行 N 次。

 

 

CUDA 的每个线程都被分配了独立的 thread ID,并且采用线程层次结构,将线程分配为块 (block) 和网格 (grid),以便于管理大量的并行线程。通过 NVIDIA 的 nvcc 编译器,我们就可以将 CUDA 代码编译为可在 GPU 上运行的程序。

 

 

CuEVM 的基础工作流程

 

在理解了 CUDA 的一系列基础概念后,就可以看下 CuEVM 的工作流了。

 

CuEVM 的主入口为 run_interpreter,从这里以 json 文件的形式,输入要并行处理的交易。从项目用例中可以看出,输入的都是标准的 EVM 内容,无需开发者另行处理、翻译等。

 

 

在 run_interpreter() 中可以看到,它使用 CUDA 定义的<<…>>语法调用了 kernel_evm() 核函数。我们上文提到过,核函数是会在 GPU 中并行调用。

 

 

在 kernel_evm() 方法中会调用到 evm->run(),我们可以看到这里面有大量的分支判断来将 EVM 操作码转换为 CUDA 操作。

 

 

以 EVM 中的加法操作码 OP_ADD 为例,可以看到它将 ADD 转化为了 cgbn_add。而 CGBN(Cooperative Groups Big Numbers) 就是 CUDA 高性能的多精度整数算术运算库。

 

 

这两步将 EVM 操作码转化为了 CUDA 操作。可以说,CuEVM 也是对所有 EVM 操作在 CUDA 上的实现。最后,run_interpreter() 方法返回运算结果,也即世界状态及其他信息即可。

 

至此 CuEVM 的基本运行逻辑已经介绍完毕。

 

CuEVM 是有并行处理交易的能力,但 CuEVM 立项的目的(或者说主要展示的用例)是用来做 Fuzzing 测试的:Fuzzing 是一种自动化的软件测试技术,它通过向程序输入大量无效、意外或随机的数据,以观察程序的响应,从而识别潜在的错误和安全问题。

 

我们可以看出 Fuzzing 非常适合并行处理。而 CuEVM 并不处理交易冲突等问题,那并不是它所关心的问题。如果想要集成 CuEVM,那么还需对冲突交易进行处理。

 

我们在之前的文章《从 Reddio 看并行 EVM 的优化之路》中已经介绍过 Reddio 使用的冲突处理机制,这里不再赘述。Reddio 在将交易用冲突处理机制排序完后,再发送进入 CuEVM 即可。换言之,Reddio L2 的交易排序机制可以分为冲突处理 +CuEVM 并行执行两部分。

 

Layer2,并行 EVM,AI 的三岔路口

 

前文说并行 EVM 和 L2 仅仅是 Reddio 的起点,而其未来的路线图中将明确和 AI 叙事相结合。使用 GPU 进行高速并行交易的 Reddio,在诸多特性上天生适合 AI 运算:

 

  • GPU 的并行处理能力强,适合执行深度学习中的卷积运算,这些运算本质上是大规模的矩阵乘法,而 GPU 专为这类任务优化。

  • GPU 的线程分级结构能够与 AI 计算中的不同数据结构对应关系相匹配,通过线程超配和 Warp 执行单元来提高计算效率并掩盖内存延迟。

  • 计算强度是衡量 AI 计算性能的关键指标,GPU 通过优化计算强度,如引入 Tensor Core,来提升 AI 计算中矩阵乘法的性能,实现计算与数据传输之间的有效平衡。

 

那么 AI 与 L2 到底如何结合呢?

 

我们知道在 Rollup 的架构设计中,整个网络中其实并不仅仅是排序器,也会有一些类似监督者、转发者的角色,来验证或搜集交易,他们本质上都使用了与排序器同样的客户端,只是承担的职能不一样。在传统的 Rollup 中这些次要角色的职能和权限非常有限,如 Arbitrum 中的 watcher 这种角色,基本是被动性和防御性与公益性的,其盈利模式也值得怀疑。

 

Reddio 会采用去中心化排序器的架构,矿工提供 GPU 作为节点。整个 Reddio 网络可以从单纯的 L2 演进为 L2+AI 的综合网络,它可以很好地实现一些 AI+ 区块链用例:

 

AI Agent 的交互基础网络

 

随着区块链技术的不断演进,AI Agent 在区块链网络中的应用潜力巨大。我们以执行金融交易的 AI Agent 为例,这些智能代理可以自主进行复杂的决策和执行交易操作,甚至能在高频条件下快速反应。然而,L1 在处理此类密集操作时,基本不可能承载巨大交易负载。

 

 

而 Reddio 作为 L2 项目,通过 GPU 加速可以大幅提高交易并行处理能力。相比 L1,支持并行执行交易的 L2 具备更高的吞吐量,可以高效处理大量 AI Agent 的高频交易请求,确保网络的流畅运行。

 

在高频交易中,AI Agents 对于交易速度和响应时间的要求极其苛刻。L2 减少交易的验证和执行时间,从而显著降低延迟。这对于需要在毫秒级响应的 AI Agent 至关重要。通过将大量交易迁移至 L2,也有效缓解了主网的拥堵问题。使得 AI Agents 的操作更加经济高效。

 

随着 Reddio 等 L2 项目的成熟,AI Agent 将在区块链上发挥更重要的作用,推动 DeFi 和其他区块链应用场景与 AI 结合的创新。

 

去中心化算力市场

 

Reddio 未来会采用去中心化排序器的架构,矿工以 GPU 算力来决定排序权利,整体网络参与者的 GPU 的性能会随着竞争逐渐提升,甚至能够达到用来作为 AI 训练的水平。

 

构建去中心化的 GPU 算力市场,为 AI 训练和推理提供更低成本的算力资源。算力从小到大,从个人计算机到机房集群,各种等级的 GPU 算力都可以加入该市场贡献自己的闲置算力并赚取收益,这种模式可以降低 AI 计算成本,让更多人参与 AI 模型开发和应用。

 

在去中心化算力市场用例中,排序器可能并不主要负责 AI 的直接的运算,其主要职能一是处理交易,二是在整个网络中协调 AI 算力。而关于算力和任务分配,这里面有两种模式:

 

  • 自上而下的中心化分配。由于有排序器,排序器可以将受到的算力请求分配给符合需求且名望较好的节点。这种分配方式虽然理论上存在中心化和不公平的问题,但实际上其带来的效率优势远大于其弊端,并且长远来看排序器必须满足整个网络的正和性才能长远发展,也即有隐性但直接的制约确保排序器不会有太严重的偏向。

  • 自下而上的自发任务选择。用户也可以将 AI 运算请求提交给第三方节点,在特定的 AI 应用领域这显然比直接提交给排序器更有效率,也能防止排序器的审查和偏向。在运算完毕后该节点再将运算结果同步给排序器并上链。

 

我们可以看出在 L2 + AI 的架构中,算力市场有极高的灵活性,可以从两个方向集结算力,最大程度上提升资源的利用率。

 

链上 AI 推理

 

目前,开源模型的成熟度已经足以满足多样化的需求。随着 AI 推理服务的标准化,探索如何将算力上链以实现自动化定价成为可能。然而这需要克服多项技术挑战:

 

  1. 高效请求分发与记录: 大模型推理对延迟要求高,高效请求分发机制非常关键。尽管请求和响应的数据量庞大且具私密性,不宜在区块链上公开,但也必须找到记录和验证的平衡点——例如,通过存储 hash 实现。

  2. 算力节点输出的验证: 节点是否真正地完成了所制定的运算任务?如,节点虚报用小模型运算结果代替大模型。

  3. 智能合约推理:将 AI 模型结合智能合约进行运算在很多场景下是必须的。由于 AI 推理具有不确定性,并不可能用于链上的方方面面,所以未来的 AI dApp 的逻辑很可能一部分位于链下而另一部分位于链上合约,链上合约对链下提供的输入的有效性和数值合法性进行限定。而在以太坊生态中,与智能合约结合就必须面对 EVM 的低效率的串行性。

 

但在 Reddio 的架构中,这些都相对容易解决:

 

  1. 排序器对请求的分发是远比 L1 高效的,可以认为等同于 Web2 的效率。而对于数据的记录位置和保留方式,可以由各种价格便宜的 DA 方案来解决。

  2. AI 的运算结果可以最终由 ZKP 来验证其正确性和善意性。而 ZKP 的特点是验证非常快,但生成证明较慢。而 ZKP 的生成也恰好可以使用 GPU 或者 TEE 加速。

  3. Solidty → CUDA → GPU 这一条 EVM 并行主线本就是 Reddio 的基础。所以表面上看这个对 Reddio 而言是最简单的问题。目前 Reddio 正与 AiI6z 的 eliza 合作,将其模块引入 Reddio,这是一个非常值得探索的方向。

 

总结

 

整体来看,Layer2 解决方案、并行 EVM 以及 AI 技术这几个领域看似互不相关,但 Reddio 通过充分利用 GPU 的运算特性,巧妙地将这几大创新领域有机地结合在了一起。

 

通过利用 GPU 的并行计算特性,Reddio 在 Layer2 上提升了交易速度和效率,使得以太坊二层的性能得以增强。将 AI 技术融入区块链更是一个新颖且前景广阔的尝试。AI 的引入可以为链上操作提供智能化的分析和决策支持,从而实现更为智能和动态的区块链应用。这种跨领域的整合,无疑为整个行业的发展开辟了新的道路和机遇。

 

然而,需要注意的是,这一领域仍处于早期阶段,仍需大量的研究和探索。技术的不断迭代和优化,以及市场先行者的想象力和行动,将是推动这项创新走向成熟的关键驱动力。Reddio 已经在这个交汇点上迈出了重要且大胆的一步,我们期待未来在这一整合领域中,能看到更多的突破与惊喜。