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-句子,並且性能隨條件變差而變化(完全隨機分支跨線程)和良好的(線程中有關於分支的順序) –