数据流是一种由SambaNova Systems开发的计算架构,用于加速人工智能工作负载。与按顺序执行指令的传统处理器设计不同,数据流将计算组织为有向图,其中数据通过处理单元网络持续流动。这种方法针对深度学习模型中常见的结构化、重复性操作(如神经网络和大型语言模型)进行了定制。该架构在SambaNova的定制硬件中实现,包括DataScale系统和SN10系列可重构数据流单元(RDU)。
数据流架构源于斯坦福大学的研究,并由SambaNova商业化,该公司于2017年由Kunle Olukotun、Christopher Ré和Rodrigo Liang创立。公司的首款产品DataScale SN10于2020年发布,并于2021年开始出货。该架构旨在解决传统GPU系统所面临的内存带宽瓶颈,这些系统通常花费大量能量在内存和计算单元之间移动数据。通过将数据保留在芯片上并使其流经可配置的架构,数据流旨在为AI推理和训练实现更高的利用率和更低的延迟。
设计原则
数据流的核心原则是通过将计算与指令获取和解码分离来消除冯·诺依曼瓶颈。在传统的CPU或GPU中,每个操作都需要获取指令、解码指令,然后对从内存中获取的数据执行指令。数据流则将整个模型编译为静态数据流图,其中每个节点代表一个数学操作(如矩阵乘法或激活函数),每条边代表一个数据依赖关系。然后,该图被映射到处理单元(PE)网格上,每个PE都有自己的本地内存和算术单元。
数据流架构中的每个PE可以执行多种操作,包括乘加、激活函数和池化。PE通过高带宽、低延迟的网络互连,该网络支持最近邻和更长距离的通信。该网络的配置在编译时确定,使硬件能够针对每个特定模型进行专门化。这种可重构性是区别于固定功能加速器(如AWS Trainium或Groq的张量流处理器)的关键差异,后者也使用数据流原理,但具有不同的权衡。
编译和软件栈
SambaNova提供了一个名为SambaFlow的软件栈,它将用PyTorch和TensorFlow等框架编写的模型编译为数据流图。编译器执行多项优化,包括算子融合、内存布局优化和流水线化。它还处理图到物理PE网格的映射,平衡计算和内存资源。SambaFlow支持训练和推理,并包含一个管理数据移动和同步的运行时。
编译过程是静态的,这意味着图在执行开始前完全确定。这允许编译器精确调度操作并避免运行时开销。然而,这也意味着动态控制流(如可变迭代次数的循环)必须展开或通过特殊机制处理。SambaNova已扩展其编译器以支持Transformer模型,这些模型是大多数现代生成式AI系统的基础,通过优化注意力机制和前馈层来实现。
硬件实现
SN10 RDU于2020年推出,包含400亿个晶体管,采用台积电的7纳米工艺制造。它配备48 GB的片上SRAM,分布在PE网格中。该芯片的时钟速度约为1.2 GHz,但其性能以数据流吞吐量而非原始时钟速率来衡量。SambaNova声称单个SN10可为稀疏模型提供高达638 teraflops的计算能力,为密集模型提供125 teraflops,尽管这些数字取决于工作负载。
DataScale系统在单个机箱中集成多个SN10芯片,每个系统最多支持16个RDU。这些系统通过支持点对点通信的高速互连连接。后续世代(如SN30和SN40)增加了内存和计算容量,其中SN40于2023年推出,配备1.5 TB片上内存,并支持参数高达5万亿的模型。硬件还包括用于剪枝和稀疏性的专用单元,可以跳过零值计算以提高效率。
性能特征
数据流系统在推理工作负载中特别有效,因为同一模型以不同输入重复执行。静态调度允许可预测的延迟,片上内存减少了对外部DRAM的访问需求。在SambaNova发布的基准测试中,DataScale SN10在多个流行模型(包括BERT和GPT-3)上实现了比NVIDIA A100 GPU更高的吞吐量,同时功耗更低。然而,独立基准测试有限,实际性能可能因模型和批量大小而异。
对于训练,数据流面临频繁权重更新和梯度计算动态性的挑战。SambaNova通过支持数据并行和模型并行来解决这一问题,其中多个RDU处理模型的不同部分。编译器可以流水线化前向和后向传播,以重叠计算和通信。尽管有这些努力,训练性能仍不如推理具有竞争力,许多客户主要将数据流用于部署。
与其他架构的比较
数据流常与Graphcore的IPU进行比较,后者也采用多核设计和片上内存。关键区别在于Graphcore使用更传统的基于指令的执行模型,而数据流是纯数据驱动的。Groq的张量流处理器是另一种类似数据流的架构,但它使用更简单、更刚性的设计,没有片上内存,而是依赖通过大型乘加单元阵列流式传输数据。SambaNova的可重构性为不同模型形状提供了更多灵活性,但也增加了编译器的复杂性。
与NVIDIA(未在提供列表中,但隐含)或AMD的GPU相比,数据流在小型批量下提供更低的延迟和更好的推理能效。然而,GPU受益于成熟的软件生态系统和更广泛的框架及库支持。数据流的优势在大型Transformer模型中最为明显,其中注意力机制可以高效映射到PE网格上。
应用与采用
SambaNova已在多个领域部署数据流系统,包括政府、医疗保健和金融服务。知名客户包括美国能源部(用于科学计算)和Oracle Cloud(提供SambaNova硬件作为托管服务)。该架构已用于自然语言处理、计算机视觉和药物发现等任务。2023年,SambaNova推出了Samba-1,一个具有1万亿参数的大型语言模型,在其数据流系统上训练,展示了该架构在大规模训练方面的能力。
公司还专注于通过云服务使数据流更易访问,允许客户租用硬件时间而无需直接购买。这种模式已被需要高性能AI推理但缺乏维护专用基础设施资源的企业采用。截至2024年,SambaNova已筹集超过10亿美元资金,并继续迭代其硬件和软件。
挑战与限制
数据流面临的主要挑战之一是编译器的复杂性。将任意模型映射到PE网格需要复杂的分区、调度和内存分配算法。这种复杂性可能导致编译时间较长,尤其是对于大型模型。此外,图的静态特性使其难以支持动态形状或控制流的模型,这些在强化学习等某些应用中很常见。
另一个限制是相对于GPU缺乏生态系统支持。许多AI研究人员和开发者熟悉CUDA和PyTorch,他们可能不愿采用需要不同编程模型的新架构。SambaNova通过提供兼容层来缓解这一问题,但仍存在差距。公司还面临来自更成熟参与者(如Google Cloud和AWS)的竞争,这些公司提供自己的定制加速器。
未来方向
SambaNova继续演进数据流架构,重点是提高训练效率和支持更大模型。SN40代包括稀疏计算和混合精度算术的增强功能。公司还在探索将数据流用于边缘设备,尽管当前硬件主要面向数据中心。随着生成式AI模型规模的增长,对高效推理硬件的需求可能会增加,数据流的方法可能变得更具吸引力。
学术界对数据流架构的研究也在进行中,MIT CSAIL和伯克利AI研究的团队正在探索类似的想法。数据流计算的原则有着悠久的历史,可以追溯到1970年代,但直到最近,芯片制造和编译器技术的进步才使其对商业AI工作负载变得实用。SambaNova的数据流代表了这一概念最突出的商业实现之一,其成功将取决于其适应快速变化的AI格局的能力。
结论
数据流是一种独特的AI加速方法,优先考虑数据移动效率和可重构性。通过将模型映射到具有片上内存的处理单元网格上,它为推理任务提供了一种引人注目的传统GPU替代方案。尽管它在编译器复杂性和生态系统采用方面面临挑战,但其在大型语言模型上的性能优势吸引了大量投资和客户兴趣。随着AI模型的持续增长,数据流背后的原理可能对整个计算行业变得越来越重要。