关于OpenACC内核在常见GPU和寄存器上失去效率的代码复杂性,共享内存操作或其他一些方面会开始阻碍性能?
还有一点,转移到GPU和核心的任务和开销太少会成为瓶颈吗?
缓存大小和代码是否适合表示每个内核或其他什么的最佳任务?
关于每个内核的OpenACC开销与潜在性能相比有多大?它是否因各种指令而有很大不同?
答案 0 :(得分:1)
我不会将代码的复杂性用作性能指标。您可以在GPU上高效运行高度复杂的代码,并且运行简单的代码很差。相反,我会考虑以下因素:
请注意,我强烈建议您使用分析器(PGPROF,NVprof,Score-P,TAU,Vampir等)来帮助发现程序的性能瓶颈。