Skip to main content
QUICK REVIEW

[论文解读] Accelerating QDP++/Chroma on GPUs

Frank Winter|arXiv (Cornell University)|Nov 23, 2011
Parallel Computing and Optimization Techniques参考文献 7被引用 5
一句话总结

该论文通过使用即时编译(JIT)对用户表达式进行编译,并采用软件管理的最近最少使用(LRU)缓存来管理GPU内存,将QDP++/Chroma扩展至NVIDIA GPU,以加速格点QCD表达式的求值。通过将此前在优化中被忽略的非核例程卸载至GPU执行,该方法实现了超过10倍的总体加速,显著缓解了Chroma工作流中Amdahl定律带来的限制。

ABSTRACT

Extensions to the C++ implementation of the QCD Data Parallel Interface are provided enabling acceleration of expression evaluation on NVIDIA GPUs. Single expressions are off-loaded to the device memory and execution domain leveraging the Portable Expression Template Engine and using Just-in-Time compilation techniques. Memory management is automated by a software implementation of a cache controlling the GPU's memory. Interoperability with existing Krylov space solvers is demonstrated and special attention is paid on 'Chroma readiness'. Non-kernel routines in lattice QCD calculations typically not subject of hand-tuned optimisations are accelerated which can reduce the effects otherwise suffered from Amdahl's Law.

研究动机与目标

  • 解决格点QCD中的性能瓶颈问题,该问题由Amdahl定律引起:尽管求解器高度优化,但非核例程仍占主导执行时间。
  • 扩展QDP++以支持用户定义表达式的GPU执行,从而加速诸如投影和收缩等非核操作。
  • 在共享GPU内存的统一软件缓存支持下,确保与QUDA在费米子矩阵求逆方面的完全互操作性。
  • 通过在扩展的QDP++堆栈上成功编译和执行Chroma,证明其具备“Chroma就绪”特性。
  • 通过运行时软件缓存管理格点对象的设备内存亲和性,减少CPU-GPU数据传输开销。

提出的方法

  • 通过即时编译(JIT)动态生成CUDA内核,将单个用户表达式卸载至GPU执行。
  • 使用可移植表达式模板引擎(PETE)将表达式表示为抽象语法树(AST),实现在运行时生成GPU代码。
  • 实现基于软件的LRU缓存以管理GPU内存,通过跟踪对象驻留状态,最小化冗余的主机到设备数据传输。
  • 通过调用包装器与QUDA集成,将内存分配重定向至由LRU缓存管理的共享设备内存池。
  • 使用树解析器遍历表达式AST,生成GPU代码,并在触发JIT编译或设备执行前查询缓存。
  • 在必要GPU资源不可用时支持回退至主机执行,确保系统稳健性和向后兼容性。

实验结果

研究问题

  • RQ1能否通过高级C++抽象有效加速此前未优化的非核格点QCD例程?
  • RQ2在Amdahl定律约束下,非核操作的GPU加速在Chroma中能将整体执行时间减少多少?
  • RQ3如何在不破坏现有工作流的前提下,实现QDP++与QUDA之间GPU内存管理的自动化与共享?
  • RQ4当费米子矩阵求逆(通过QUDA)和非核例程(通过JIT编译的QDP++表达式)同时在相同GPU上加速时,可实现多大性能提升?
  • RQ5能否在不牺牲可移植性或可维护性的前提下,将类似QDP++的可移植高级C++接口扩展为支持异构GPU执行?

主要发现

  • 在GTX 480上,扩展后的QDP++在加速Chroma所有组件(包括非核例程)时,与纯CPU执行相比实现了超过10倍的总体加速。
  • 即使矩阵求逆通过QUDA实现了30倍加速,当仅加速求解器时总体加速也仅为约2倍,表明非核例程在执行时间中占据主导地位。
  • 软件LRU缓存减少了冗余的GPU内存传输,提升了效率,并实现了QDP++与QUDA之间的共享内存管理。
  • QDP++表达式的JIT编译使得无需低级内核手工调优即可在GPU上执行用户定义的表达式。
  • 初步测试显示,使用合并内存访问时,持续内存带宽提升了6–10倍,表明具有显著的进一步优化潜力。
  • 该实现成功支持Chroma的编译与执行,证实了“Chroma就绪”特性,实现了格点QCD工作流的端到端GPU加速。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。