【发布时间】:2017-08-02 04:42:04
【问题描述】:
OpenACC 内核在常见的 GPU 和寄存器上失去效率的代码复杂度是多少?共享内存操作或其他一些方面开始成为性能瓶颈?
还有一些时候,太少的任务和传输到 GPU 和内核的开销会成为瓶颈?
缓存大小和代码是否适合表明每个内核的最佳任务或其他什么?
与潜在性能相比,每个内核的 OpenACC 开销有多大?它是否因各种指令而有很大差异?
【问题讨论】:
OpenACC 内核在常见的 GPU 和寄存器上失去效率的代码复杂度是多少?共享内存操作或其他一些方面开始成为性能瓶颈?
还有一些时候,太少的任务和传输到 GPU 和内核的开销会成为瓶颈?
缓存大小和代码是否适合表明每个内核的最佳任务或其他什么?
与潜在性能相比,每个内核的 OpenACC 开销有多大?它是否因各种指令而有很大差异?
【问题讨论】:
我会避免使用代码的复杂性作为性能指标。您可以让高度复杂的代码在 GPU 上非常高效地运行,而简单的代码运行不佳。相反,我会考虑以下因素:
请注意,我强烈建议使用分析器(PGPROF、NVprof、Score-P、TAU、Vampir 等)来帮助发现程序的性能瓶颈。
【讨论】: