《OpenACC并行程序设计:性能优化实践指南》一 2.4 优化循环

  1. 云栖社区>
  2. 华章计算机>
  3. 博客>
  4. 正文

《OpenACC并行程序设计:性能优化实践指南》一 2.4 优化循环

华章计算机 2017-09-08 16:28:00 浏览835
展开阅读全文

2.4 优化循环

此刻,测试代码可以比原始代码加速2倍了。但这是能够获得的性能最好的代码吗?目前添加的导语可以在任何加速器上实现代码的提速,但为了在特定的测试机器上取得最佳性能,需要使用特定目标设备优化技术。万幸的是,OpenACC提供了一种指定devcie_type的优化手段,因此特定的子句仅在编译为指定设备的代码时才会生效。首先从分析目前代码的编译器反馈信息着手,针对matvec子程序,因为它是最为耗时的代码段(见图2-22)。

screenshot

编译器提供了它如何并行化两个矩阵循环(第30和24行)的信息。但为了理解这些信息,需要理解OpenACC的三层并行层级:工作组(gang),工作项(worker)和向量(vector)。从最底层开始研究,向量化并行层级是针对细粒度并行的,对多个数据元素实施同样的操作。例如,有两个数组想要进行相加操作,有些

网友评论

登录后评论
0/500
评论
华章计算机
+ 关注
所属云栖号: 华章计算机