[Paper] 编译器支持的低精度和 AoS-SoA 转换用于异构硬件

发布: (2025年12月5日 GMT+8 16:19)
7 min read
原文: arXiv

Source: arXiv - 2512.05516v1

概览

本文研究了 结构体数组 (AoS) ↔ 数组结构体 (SoA) 布局转换结合 低精度数据类型 在现代异构系统(CPU + GPU)上的利用方式。通过引入轻量级的编译器注解,作者展示了开发者如何控制这些转换的发生位置和时机,从而在 Nvidia 和 AMD GPU 上的粒子模拟内核实现显著加速。

主要贡献

  • 编译器层面的注解,让程序员能够指定 AoS↔SoA 与精度转换点,并决定它们是在主机 CPU 还是目标 GPU 上执行。
  • 就地、即时的数据布局转换,适用于与 CPU 共享统一内存空间的加速器,避免了昂贵的显式数据拷贝。
  • 实证评估:在两类 GPU(Nvidia G200 与 AMD MI300A)上使用真实的拉格朗日粒子模拟进行测试,展示了在 Nvidia 硬件上最高 2.6× 的加速,以及在 AMD 上更为稳定的提升。
  • 设计指南:阐明在带宽受限内核中何时使用低精度和布局转换是有益的。
  • 概念验证实现:将该方法集成到现有编译器工具链中,表明无需重写整个应用即可采用此方案。

方法论

  1. 基线代码 – 使用典型 AoS 布局并采用 IEEE‑754 双精度的粒子模拟内核。
  2. 插入注解 – 开发者在数据结构或内核调用周围添加简单的 pragma‑style 指令(例如 #pragma aoS2soa#pragma reduce_precision)。
  3. 编译器扩展 – 扩展的编译器解析这些注解,生成两套数据布局(主机侧使用 AoS,GPU 内核使用 SoA),并插入必要的转换内核。
  4. 执行策略
    • 预拷贝:在内核启动前将数据转换并拷贝到 GPU。
    • 按需:将数据保存在统一内存区域,GPU 在使用前进行就地转换。
  5. 基准测试 – 在 Nvidia G200 和 AMD MI300A 上运行转换后的内核,测量执行时间、内存带宽和能耗。
  6. 分析 – 对比不同策略的性能,并量化低精度(如 FP16、bfloat16)相对于全精度的影响。

结果与发现

平台策略相对基线的加速观察
Nvidia G200预拷贝 AoS→SoA + FP16≈ 2.6×带宽受限;SoA 与 SIMT 线程束完美对齐,低精度将内存流量减半。
AMD MI300A按需就地转换 + FP16≈ 1.8×(在各内核上更稳定)统一内存降低拷贝开销;AMD 更宽的向量单元即使不进行激进的预拷贝也能受益于 SoA。
两者皆适用全精度 AoS(无转换)1.0×(基线)突显了粒子模拟中内存带宽的成本。

关键要点

  • SoA 布局天然适合 SIMT 执行,能够实现合并内存访问。
  • 降低精度可将内存带宽需求约减半,这是一类拉格朗日内核的主要瓶颈。
  • 在加速器上就地转换 在具备统一内存的硬件上可以与显式的主机端拷贝竞争。

实际意义

  • 针对 GPU 加速开发者:只需添加少量编译器 pragma,即可在不进行大规模代码重写的情况下实现带宽节省。
  • 性能关键的拉格朗日代码(如粒子‑在‑单元、SPH、分子动力学)可以采用 AoS→SoA + 低精度模式,在现有硬件上扩展到更大规模的问题。
  • 统一内存系统(如 Nvidia 基于 NVLink 的超级芯片、AMD 的 Infinity Fabric)可受益于 即时 布局转换,简化数据移动流水线。
  • 能效提升:因为跨 PCIe 或互连的数据移动减少,这在向外延伸的工作负载中愈发重要。
  • 工具链影响:注解方式可集成到现有构建系统(CMake、Make),并兼容标准 CUDA/HIP 内核,降低采纳门槛。

局限性与未来工作

  • 内核范围 – 本研究聚焦于少数计算密集型内核;对算术强度或控制流不同的内核,结果可能有所差异。
  • 硬件依赖 – 加速比在 Nvidia 与 AMD GPU 之间不同;最佳策略(预拷贝 vs. 就地)取决于具体硬件。
  • 编译器支持 – 原型需要自定义编译器扩展;主流编译器尚未采纳这些注解。
  • 精度安全性 – 低精度需针对具体案例进行数值稳定性验证;本文未提供通用的误差分析框架。

未来方向 包括将注解系统扩展为自动推断每个内核的最佳布局/精度,集成自动调优框架,并在即将到来的异构架构上(如基于 ARM 的 GPU、Intel Xe)评估该方法。

作者

  • Pawel K. Radtke
  • Tobias Weinzierl

论文信息

  • arXiv ID: 2512.05516v1
  • 分类: cs.PL, cs.DC, cs.MS
  • 发布日期: 2025 年 12 月 5 日
  • PDF: Download PDF
Back to Blog

相关文章

阅读更多 »