Kokkidio:基于Kokkos与Eigen的高性能跨平台计算库,实现CPU/GPU性能便携性统一

《IEEE Access》:Kokkidio: Fast, expressive, portable code, based on Kokkos and Eigen

【字体: 时间:2025年11月21日 来源:IEEE Access 3.6

编辑推荐:

  本文针对当前高性能计算中CPU与GPU硬件架构多样导致的性能可移植性难题,提出了一种新型C++模板库Kokkidio。该库巧妙融合了Kokkos在GPU编程模型抽象(如CUDA、ROCm、SYCL)上的优势与Eigen库在CPU端表达性语法及显式向量化优化能力,通过引入ParallelRange迭代参数等创新机制,实现了单一代码源在CPU和GPU上的高效执行。实验评估表明,Kokkidio在多种厂商硬件上的平均效率高达95%,显著优于Kokkos的59%,有效解决了跨平台性能可移植性瓶颈,为科学计算应用提供了高性能、易维护的编程解决方案。

  
随着对算力需求的持续增长,能耗已成为高性能计算发展的主要制约因素。为了提升能效,现代计算系统正朝着吞吐量优化的设计方向演进,广泛采用协处理器和图形处理器等加速器硬件。然而,硬件平台的多样性——包括三大主流GPU厂商的不同编程模型以及CPU各异指令集架构和向量扩展——使得针对特定平台进行软件开发和优化变得不可持续。性能可移植性框架,如Kokkos,虽能简化跨平台开发,但其在CPU上的性能有时不尽如人意。相反,线性代数库Eigen凭借其表达性语法和内部利用表达式模板生成平台特定向量指令的能力,在CPU上能实现高度优化的性能,但缺乏对加速器的原生支持。因此,如何将Kokkos的GPU可移植性与Eigen的CPU高性能及易用性相结合,成为一个亟待解决的问题。为此,研究人员在《IEEE Access》上发表了题为“Kokkidio: Fast, expressive, portable code, based on Kokkos and Eigen”的论文,介绍了一个新开发的C++模板库Kokkidio,旨在桥接这两大库的优势。
为达成上述目标,Kokkidio设计了三个核心组件:1) 结合Kokkos::View和Eigen::Map的数据结构((Dual)ViewMap),简化了跨主机(host)和设备(device)的数据管理;2) 创新的迭代参数ParallelRange,在设备端封装单个索引,在主机端则封装一个连续的索引范围,当作用于(Dual)ViewMap时,返回一个Eigen::Block表达式,从而在主机端保持Eigen的循环抽象以实现显式向量化;3) 并行分派函数(parallel_for, parallel_reduce),在设备端转发给Kokkos,在主机端则利用OpenMP创建并行区域。此外,Kokkidio还提供了处理核内局部变量的机制(makeBuffer/getBuffer配合parallel_for_chunks),在设备端对应栈变量,在主机端则对应线程局部缓冲区,以支持计算结果的复用。
研究结果部分通过多个微基准测试评估了Kokkidio的性能。在SAXPY/DAXPY、点积和向量范数等低至中等算术强度的测试中,Kokkidio结合ParallelRange(i4)在GPU上表现与Kokkos(i2)相当或更优,在CPU上则显著优于Kokkos,尤其是在能充分利用Eigen显式向量化的场景下,速度提升可达20倍。对于高算术强度的SWE摩擦测试,Kokkidio的块缓冲区模型(i4)在GPU和CPU上均展现了优异且稳定的性能。以最佳观测运行时间为效率度量,Kokkidio(i4)在所有测试硬件和微基准测试上的调和平均效率高达95%,远高于Kokkos的59%。
研究结论与讨论部分强调,Kokkidio成功地将Kokkos的跨GPU编程模型可移植性与Eigen的CPU高性能、丰富数学函数和表达性语法统一到一个轻量级框架中。其采用的零成本抽象机制确保了在设备端无额外开销,在主机端则通过保留Eigen的循环抽象,同时利用了线程级并行和数据级并行。这项研究的重要意义在于为解决高性能计算中的性能可移植性挑战提供了一个高效、易用的解决方案,使开发者能够用单一代码库编写既能在GPU上高效运行,又能在CPU上充分发挥硬件性能的应用程序,从而降低了多平台软件的开发和维护成本。
相关新闻
生物通微信公众号
微信
新浪微博
  • 急聘职位
  • 高薪职位

知名企业招聘

热点排行

    今日动态 | 人才市场 | 新技术专栏 | 中国科学人 | 云展台 | BioHot | 云讲堂直播 | 会展中心 | 特价专栏 | 技术快讯 | 免费试用

    版权所有 生物通

    Copyright© eBiotrade.com, All Rights Reserved

    联系信箱:

    粤ICP备09063491号