Portable SIMD Acceleration of Sparse Linear Algebra Libraries on RISC-V
本文提出了一种利用 Google Highway 在 RISC-V 硬件上对稀疏线性代数库(Ginkgo、PETSc 和 SLEPc)进行性能可移植的 SIMD 加速的方法,通过评估在可移植性、可编程性和性能之间的权衡,为未来在新兴开放指令集架构(open-ISA)平台上的采用提供指导。
原始论文采用 CC BY 4.0 许可(https://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明
现代计算机旨在处理海量数据,但当这些数据分散且不完整时,它们往往会显得力不从心。在科学计算领域,许多问题涉及“稀疏”信息,即大型网格中的大多数数字都是零。想象一张城市地图,上面只标出了道路,而空地则留白;计算机在计算这张地图上的交通流量时,并不需要处理那些空地,然而传统方法却经常浪费时间去检查它们。为了高效解决这些问题,工程师们依赖于专门的软件库,这些库是物理、工程和气候科学模拟的引擎。几十年来,这些库通过使用一种被称为 SIMD 的技术变得越来越快,该技术允许处理器同时对多个数字执行相同的计算,就像工厂的流水线一样,通过一次动作盖出多个相同的零件,而不是一个接一个地进行。然而,随着新型计算机芯片的出现,特别是基于开源 RISC-V 架构的芯片,保持这种速度优势变得困难,因为告诉芯片如何工作的指令在不同制造商之间差异巨大。
来自西班牙的一个研究小组探索了一种方法,使这些高速计算能够在不同类型的硬件上平滑运行,而无需为每种新芯片重写软件。他们专注于全球科学家使用的三个主要库:Ginkgo、PETSc 和 SLEPc,这些库旨在解决涉及大型、分散数字网格的复杂数学难题。研究人员测试了一个名为 Google Highway 的工具,这段软件代码充当了这些计算的通用翻译器。开发者不再需要为特定芯片编写特定指令,而是可以使用这个工具编写一套指令,它会自动适配并运行在任何可用的处理器上,无论是来自大型科技公司的芯片,还是像 RISC-V 这样较新的开源设计。研究团队提取了这三个库中的核心数学运算,并使用这个通用工具对其进行了重构,然后在一款名为 SpacemiT K1 的商用 RISC-V 芯片上运行,以观察其速度是否能保持稳定。
结果表明,这种方法是有效的,但在数据组织方式方面存在重要的注意事项。当研究人员在 RISC-V 芯片上测试该软件时,他们发现该通用工具成功加速了计算,证明了编写一次代码并在不同机器上快速运行是可能的。然而,速度提升在所有任务中并不统一。某些操作,特别是那些将中间结果保留在处理器快速内存中的操作,看到了巨大的改进,部分步骤的运行速度比标准版本快了十倍以上。而其他需要不断在内存中进出数据的任务,其增益则小得多。一个关键的发现是,数据的存储格式比代码本身更为重要。当研究人员将分散的数据重新排列成一种特定的、带有填充(padded)的结构时,速度提升非常显著。而当他们让数据保持原始的不规则格式时,加速效果却微乎其微。这表明,虽然通用翻译工具很有效,但数据的物理布局仍然是实现高性能的最重要因素。
该研究还强调了使用这种通用方法所涉及的权衡。研究人员发现,虽然该工具使代码编写更加容易且更具可移植性,但它要求他们剥离原库中一些复杂且灵活的特性,以使计算高效运行。他们必须简化软件的内部逻辑,移除某些会减慢处理器速度的条件检查。这意味着,为了获得最佳性能,他们不能简单地将该工具插入现有的库中,而是必须从头开始重建软件的特定部分。尽管存在这些工程挑战,实验证明该通用工具成功弥合了不同处理器类型之间的鸿沟。研究人员得出结论,虽然该工具为未来的软件提供了强大的基础,但要实现最高速度,仍然取决于对数据存储方式和计算结构进行仔细规划。这项工作为那些希望构建能够运行在未来多样化计算机芯片上的快速科学软件的开发者,提供了一条切实可行的路径。
您所在领域的论文太多了?
获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。