流处理器上3 - D Jacobi迭代的评估优化与分布式STM冲突可串行化保障
1. 流处理器中StreamJacobi的性能分析
在流处理器中,StreamJacobi的性能受到多种因素影响。随着内存访问次数的增加,其内存访问延迟逐渐降低。目前,StreamJacobi受计算资源和内存访问性能的双重限制,特别是规模大于512的StreamJacobi,现在主要受内核执行的限制。
2. 记录重用的效果
通过对记录重用的利用,对流进行重组以减少片外内存传输,能有效提升性能。图14展示了因内存传输减少带来的边际加速效果。对于128×128规模的StreamJacobi,这种优化减少了加载流的数量,进而降低了准备开销,获得了最大的加速比。而对于其他规模的Jacobi应用流程序,其加速比相近。
3. 流重用的效果
流处理器通过捕获SRF中流之间的重用性来减少内存传输,这种优化十分重要。StreamJacobi从流重用优化中受益匪浅,图15展示了该优化带来的加速比。由于六个输入流中有五个重用了上一次迭代生成的数据,大量的内存传输得以减少。若没有这种优化,流编译器无法识别重用性,所有输入流都必须从片外内存加载,每个内核都必须等待其输入流从片外内存加载完成。流重用消除了起止未知的流的出现,使流编译器能够识别重用性。
4. 分布式STM中冲突可串行化的背景
事务内存是简化共享内存并行编程的有前途的机制。分布式STM适用于分布式内存系统,但目前大多数分布式STM仍采用两阶段锁定(2PL),这导致高中止率和分布式应用性能不佳。
为了缓解2PL的限制,DDA模型首次在分布式STM中引入了冲突