为什么GTX630对我来说比GTX650Ti对opencl更快?

为什么GTX630对我来说比GTX650Ti对opencl更快?,opencl,Opencl,我使用两个图形卡的opencl代码 通过分析,对于每个方法请求,我的GTX 630开普勒比GTX650 Ti运行得更快 在分析之后,我发现了这两种图形卡的一些差异。但我无法理解GTX650 Ti的占用率、l1_全局加载命中率、l1_全局加载未命中率、活动翘曲率和活动加载周期的减少程度。有谁能帮我更好地理解这些术语吗 将本地工作组大小从1024减少到512或256甚至64,然后重试。这将为每波线程留下更多的本地内存。因此,今后将同时执行更多的操作,占用更多的ALU 不要忘了将线程总数设为768的

我使用两个图形卡的opencl代码

通过分析,对于每个方法请求,我的GTX 630开普勒比GTX650 Ti运行得更快


在分析之后,我发现了这两种图形卡的一些差异。但我无法理解GTX650 Ti的占用率、l1_全局加载命中率、l1_全局加载未命中率、活动翘曲率和活动加载周期的减少程度。有谁能帮我更好地理解这些术语吗

将本地工作组大小从1024减少到512或256甚至64,然后重试。这将为每波线程留下更多的本地内存。因此,今后将同时执行更多的操作,占用更多的ALU


不要忘了将线程总数设为768的倍数(更快卡的内核数),以便在所有内核中均匀填充线程。(不仅仅是像1k这样的384的倍数,这对更快卡不好)

如手册所述:占用率:占用率是每个多处理器的活动扭曲数与最大活动扭曲数的比率。一级全局加载命中:一级缓存中的全局加载命中数。l1全局加载未命中:一级缓存中的全局加载未命中数。活动扭曲:每个周期活动扭曲的累积数量。对于每个循环,其增量为循环中活动翘曲的数量,其范围在0到48之间。活动周期:多处理器至少有一个活动扭曲的周期数。GT630有两种不同类型。这可能是因为您的是费米,这意味着两个GPU的架构不同,您的代码在其中一个GPU中运行得更好。我使用的是GT630开普勒,拥有384个cuda内核。。而另一款GT650Ti如果650的入住率已经满了,那么速度会更快。所以,这里的问题是:“为什么650不能达到100%的使用率?”您可以将NDRange大小增加到16384,看看会发生什么变化吗?