0
我從頭創建了CUDA的掃描算法,並嘗試將其用於小於80,000字節的較小數據量。內核調用CUDA上的流延遲
創建了兩個單獨的實例,其中一個在可能的情況下使用流運行內核,另一個只在默認流中運行。
我觀察到的是,對於這個數據大小範圍,與其他方法相比,運行流需要更長的時間來完成任務。
當使用nvprofiler分析,什麼觀察到的是,對數據大小較小的量,在數據流上運行將不會單獨kernals
但是當數據大小增加時,某種並行性可能是ob tained
我的問題是,是否有一些額外的參數,以減少這個內核調用時間延遲或者是正常的,有這種更小的數據大小的行爲,其中使用流是不利的
UPDATE:
我已經包括了運行時API調用的時間表,以及明確的答案
這就是我所懷疑的。仍然從時間線上我可以看到第二個內核的cudaLaunch API調用在第一個內核的執行結束之前結束。因此技術上仍然可以在第一個內核完成之前運行第二個內核。我希望是否有可能將API cudaLaunch時間縮短到實際的內核執行時間。但我認爲,正如你所提到的,這個啓動時間對於執行時間來說是相當高的,因爲數據量很小 而你在CPU數據量較低的情況下勝過GPU的事實是正確的。謝謝 – BAdhi