Windows对GPU内核执行的详细时间具有行为影响,尤其是在WDDM模式下运行GPU时。请优先在Linux环境中重新运行观察和FFT,其中X不在GPU上运行。这会给你最一致的行为。 WDDM设置中的CUDA驱动程序在某种程度上受制于Windows操作系统。
我跑你的代码SM35设备上的CentOS 5.5,CUDA 5.5,得到了以下Times.dat输出:
0.007648 0.0024 0.001888 0.001888 0.001888 0.001888 0.001888 0.00192 0.001888 0.001888 0.00192 0.00192 0.001856 0.00192 0.001888 0.00192 0.001888 0.001888 0.001888 0.001888 0.00192 0.001888 0.001888 0.001888 0.001856 0.001888 0.001888 0.001888 0.001888 0.001888 0.001888 0.002016 0.001888 0.001888 0.00192 0.001952 0.001888 0.001888 0.001888 0.001888 0.00192 0.00192 0.001888 0.00192 0.001888 0.001888 0.001888 0.001888 0.001888 0.001888 0.001888 0.001888 0.001888 0.00192 0.001888 0.001888 0.001856 0.001888 0.00192 0.001888 0.001888 0.001888 0.001888 0.001888 0.001888 0.001888 0.001888 0.001888 0.00 1888 0.001888 0.001888 0.003904 0.001888 0.001888 0.001888 0.001888 0.001888 0.001888 0.00192 0.001888 0.001888 0.001888 0.001888 0.001888 0.001888 0.001888 0.001888 0.00192 0.001888 0.001888 0.001888 0.001888 0.00192 0.001888 0.00192 0.001888 0.001888 0.001888 0.001888 0.001888 0.00192 0.001888 0.00192 0.001856 0.001888 0.001856 0.001888 0.001888 0.001888 0.001888 0.001888 0.001888 0.001952 0.001888 0.001888 0.00192 0.00192 0.00192 0.001888 0.001888 0.001952 0.001888 0.00192 0.001888 0.001856 0.001888 0.00192 0.001888 0.001888 0.001888 0.00192 0.001856 0.001888 0.001888 0.001888 0.001888 0.00192 0.00192 0.001888 0.001888 0.00192 0.001888 0.001888 0.001888 0.001888 0.001888 0.00192 0.001888 0.00192 0.001888 0.001888 0.00192 0.001888 0.00192 0.001888 0.001888 0.001888 0.001888 0.001888 0.00192 0.004448 0.001888 0.001952 0.001888 0.001888 0.001888 0.001888 0.001888 0.001856 0.001888 0.001888 0.001888 0.001888 0.001888 0.001888 0.001888 0.00192 0.001856 0.0 01888 0.001888 0.001888 0.001888 0.001856 0.001888 0.001888 0.001856 0.001888 0.001888 0.001888 0.001888 0.001888 0.001888 0.001888 0.001888 0.001888 0.001888 0.001888 0.001888
有偶尔的变化但不要忘记你的cudaTime
变量在毫秒捕获时间。所以我在上面的数据中看到的变化大部分是小于1微秒变化的数量级,运行即可运行。
抛出第一个数字,我看到的最大变化在少数情况下大约为2-3微秒。由于所测量的执行时间通常小于2微秒,这是一个很大的变化,但它仍然处于噪音之中,而不是像您所报告的10微秒。
对于我未经训练的眼睛,我也没有在数据中看到任何正弦波模式,但是如果您告诉我那里有11Hz的频率(甚至不确定是什么意思,因为这些数据点没有时间标记我可以看到) - 我会听你的。
执行时间变化的幅度是多少? – talonmies
在10微秒的数量级上,我最初认为这是使用cudaEvents的时间舍入误差,但他们*应该*具有大约0.5微秒的分辨率。 – mjm26
流体是否以正弦加速模式运动?在这样的内核中有If-句子,并且性能随条件变差而变化(完全随机分支跨线程)和良好的(线程中有关于分支的顺序) –