Skip to main content
QUICK REVIEW

[论文解读] Sophie, an FDTD code on the way to multicore, getting rid of the memory bandwidth bottleneck better using cache

Olivier Cessenat|arXiv (Cornell University)|Jan 19, 2013
Electromagnetic Simulation and Numerical Methods参考文献 2被引用 5
一句话总结

本文提出了一种面向FDTD代码的缓存感知软件架构,通过重用片上缓存中的数据,显著减少了多核处理器上的内存带宽瓶颈。通过重构计算循环以最大化时间局部性和空间局部性,作者在大型3D模拟中使Sophie FDTD代码的性能提升了2.3倍,证明了该方法在真实世界高性能计算工作负载中的有效性。

ABSTRACT

FDTD codes, such as Sophie developed at CEA/DAM, no longer take advantage of the processor's increased computing power, especially recently with the raising multicore technology. This is rooted in the fact that low order numerical schemes need an important memory bandwidth to bring and store the computed fields. The aim of this article is to present a programming method at the software's architecture level that improves the memory access pattern in order to reuse data in cache instead of constantly accessing RAM memory. We will exhibit a more than two computing time improvement in practical applications. The target audience of this article is made of computing scientists and of electrical engineers that develop simulation codes with no specific knowledge in computer science or electronics.

研究动机与目标

  • 解决FDTD模拟中日益严重的内存带宽瓶颈问题,尽管CPU计算能力持续提升,但性能提升仍受此限制。
  • 克服FDTD等低阶求解器效率低下的问题,其需要较高的每计算操作字节数,尤其在现代多核架构上表现更明显。
  • 开发一种软件层面的优化策略,将缓存重用整合到应用的高层设计中,而无需底层硬件专业知识。
  • 证明通过算法重构提升缓存效率可在真实科学计算代码中带来显著性能提升。
  • 提供一种可推广的方法,适用于结构化笛卡尔网格上的其他低阶求解器。

提出的方法

  • 重新设计FDTD计算循环,将多个时间步组合在一起,使场数据在处理器缓存层次中可被重复重用。
  • 重构内存访问模式,以提高空间和时间局部性,最小化对主内存的冗余访问。
  • 实施一种域分解策略,在保持计算负载均衡的同时,保留缓存友好的数据访问模式。
  • 采用多域方法并使用可变分割方式,评估缓存重用与通信开销之间的性能权衡。
  • 将该技术应用于CEA的生产级FDTD代码(Sophie),支持单精度和双精度计算。
  • 通过不同问题分割方式(如P2、P4、P5)评估性能,以识别缓存利用的最佳配置。

实验结果

研究问题

  • RQ1高层软件架构的改变是否能显著提升现代多核处理器上运行的FDTD代码中的缓存重用?
  • RQ2缓存感知的循环重构在大规模3D FDTD模拟中能在多大程度上减轻内存带宽压力?
  • RQ3在不同域分解策略和问题规模下,缓存重用带来的性能提升有何差异?
  • RQ4该优化技术是否能有效应用于生产级科学计算代码,而无需底层硬件或编译器专业知识?
  • RQ5在计算核中组合多个时间步时,数据局部性对性能有何影响?

主要发现

  • 在立方体案例中,缓存重用技术使Sophie FDTD代码实现了2.3倍的加速,所有子域均从该优化中受益。
  • 在具有PEC边界(如球体)的情况下性能提升降低,原因是边界单元的缓存重用受限,证实该方法对内部体积累计算的依赖性。
  • 单精度计算中性能提升了近2倍,由于内存带宽压力较小,增益略低于双精度计算。
  • P4分割(8,8,8)和P2分割(10,24,12)表现出色,V/T比值分别为72%和60%,表明体积计算效率高。
  • 粗粒度分割(如P5)以及抑制缓存重用的分割(如P3)表现较差,证实缓存效率对性能至关重要。
  • 该技术可推广至其他基于笛卡尔网格的低阶求解器,并在GPU移植中具有潜力,因内存传输是主要瓶颈。

更好的研究,从现在开始

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

无需绑定信用卡

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