我試圖通過使用並行Nsight 2.1版爲2010年VS內核啓動和內核執行之間的時間
我的程序優化我的CUDA PROGRAMM在Windows 7(32位)的機器上運行了GTX 480板。我已經安裝了CUDA 4.1 32位工具包和301.32驅動程序。
程序中的一個循環包含主機數據副本到設備,執行內核和從設備到主機的結果副本。
正如您在下面的分析器結果圖片中看到的,內核運行在四個不同的流中。每個流中的內核依賴於複製到「流2」中的設備的數據。這就是爲什麼在啓動不同流中的內核之前,asyncMemcpy與CPU同步的原因。
什麼讓我惱火的圖片是第一個內核啓動(在10.5778679285)的結束和內核開始執行時(在10.5781500)之間的差距較大。大約需要300美元才能啓動內核,這在處理週期小於1毫秒時是一個巨大的開銷。
此外,內核執行和結果的數據副本不會重疊回主機,這會增加開銷。
這種行爲是否有任何明顯的原因?