我有一项任务需要使用几种可能的算法之一来实现。
每种算法都有自己的本地内存优化机会,我想基于计算计算操作和内存访问来估计哪种算法性能最佳。
为了比较不同数量的本地内存访问操作与全局内存访问操作,我想估计本地内存访问(读/写)的价格(周期?)与全局内存访问的价格
执行以下各项所需的周期(在现代的消费者GPU上)需要多少个周期:
注意:我使用"本地内存"和"全球记忆"在OpenCL中的含义。
答案 0 :(得分:1)
通常,访问本地内存需要几个GPU周期。访问全局内存需要数十个周期。从一个视频卡到另一个数字显着不同。所以这是非常一般的数字,只显示幅度差异。
据我了解,您关注的是低级优化。如果这是正确的,那么您可以使用通常由GPU供应商随SDK提供的软件。其中许多(AMD,ARM等)提供离线编译器,允许导出clProgramm的已编译二进制汇编程序,并具有每周期指令信息。然后你会获得最明确的数字。