Piepelining:Solana 中的流水线技术 | Solanas 8 Innovations

Solana 要成为世界上首个 Web 规模区块链,所需的亚秒级确认时间以及交易能力只靠迅速达成共识是不够的。团队必须开发出一种方法,快速验证大量交易区块,同时在网络上快速复制它们。为了实现这一点,Solana 网络上的交易验证过程广泛使用了 CPU 设计中常见的一种优化方法,即”流水线”。

当需要按一系列步骤处理输入数据流并且每个步骤由不同的硬件负责时,采用流水线流程是非常合适的。我们用最典型的比喻来解释:洗衣机和烘干机,它们会按洗涤/烘干/折叠的顺序处理多批衣物。洗涤必须在烘干前进行,而烘干必须在折叠前进行,但这三个操作都由单独的单元执行。

为了最大程度地提高效率,有人创造出了阶段性流水线这个解决方案。我们称洗衣机为第一个阶段,烘干机为第二个阶段,折叠过程为第三个阶段。为了实现流水线操作,在将第一批衣物添加到烘干机之后,立即将第二批衣物添加到洗衣机。同样,将第二批衣物添加到烘干机中并且第一批衣物折叠完毕后,将第三批衣物添加到洗衣机中。这样,一个人可以同时处理三批衣物。假设衣物数量无限制,流水线会以最慢阶段的速率持续处理衣物。

“我们需要找到一种使所有硬件一直运作的方法。也就是网卡、CPU 核心和所有 GPU 核心。为此,我们效仿了 CPU 设计”,Solana 创始人兼首席技术官 Greg Fitzgerald 解释说。”我们在软件中创建了一个四阶段交易处理器。我们将其称为 TPU,即交易处理单元。”

在 Solana 网络上,流水线机制(交易处理单元)通过在内核层进行数据获取,在 GPU 层进行签名验证,在 CPU 层进行存储以及在内核空间进行写入来实现。当 TPU 开始向验证器发送块时,它已经被提取到下一组数据包,完成了签名验证并已开始贷记令牌。

验证节点同时运行两个流水线化的进程,其中一个在领导者模式下使用,称为 TPU;另一个在验证者模式下使用,称为 TVU。在这两种情况下,流水线中的硬件都是相同的:网络输入、GPU 卡、CPU 核心、写入磁盘以及网络输出。但硬件的作用是不同的。TPU 用于创建账本条目,而 TVU 用于验证它们。

Fitzgersald 表示:”我们知道签名验证会形成瓶颈,但我们可以将这种不受上下文约束的操作转移到 GPU 上。即使移除了这项开销最大的操作,仍然存在许多其他瓶颈,例如与网络驱动程序进行交互以及在智能合约中管理会限制并发性的数据依赖关系。”

在此四阶段流水线 GPU 并行化过程之间,Solana TPU 可以在任何时候同时处理 50,000 个交易。Fitzgerland 解释说:”这一切都可以通过一台不超过 5,000 美元的市售计算机来实现,完全不需要超级计算机。”

通过将 GPU 转移到 Solana 的交易处理单元上,网络可以影响单节点效率。实现这一目的正是 Solana 自成立以来的目标。