0
我有一個關於CUDA調用cudaEventSynchronize的問題。cudaEvent在不同情況下同步行爲
AFAIK,它主動輪詢事件,從而消耗CPU週期。如果我想讓它同步,這樣CPU就可以放棄,就像我可以在內核執行時一樣,我該怎麼做呢?
更具體地,這將是預期的行爲下:
- 使用CUDA_LAUNCH_BLOCKING = 1個環境變量。
- 使用cudaDeviceScheduleBlockingSync
- 使用cudaDeviceScheduleYield
我一直在經歷着怪異的行爲,需要一些幫助來闡明這一點。 Nvidia有關特定技術方面的信息非常不願意幫助解決這個問題......我想實施細節必須保密。
在此先感謝,
何塞。
這是一個很好的建議。這是一個範圍問題 - CUDA_LAUNCH_BLOCKING影響所有CUDA程序(因此除了調試目的外不應該用於其他任何用途),並且設備標誌會影響在上下文中完成的所有同步。指定事件標誌會導致該特定事件使用中斷進行同步,從而減少CPU開銷。 – ArchaeaSoftware 2012-08-02 15:02:34