我編寫了一些使用JCuda來執行某些CUDA內核的Java代碼。我想介紹一下這個應用程序,以瞭解流是如何重疊以及什麼的。我可以使用cuda事件調用(如cudaEventElpasedTime)來獲取內核的執行時間,但我不知道如何獲取同一個內核的開始和結束時間戳。如何在不使用nvprof的情況下獲得CUDA事件的開始和結束時間
我知道nvprof可以生成這樣的結果並顯示時間表,但是我沒有找到用Java應用程序運行nvprof的方法。
編輯:現在我明白如何使用nvprof來剖析Java應用程序,這要歸功於答案。我仍然更喜歡使用cudaEvent調用獲取開始和結束時間,所以我會有更多的控制權。看來nvprof可以獲得這些信息,但是最終用戶沒有這樣做的API嗎?
@Shadow我仍然更喜歡使用cudaEvent調用獲取開始和結束時間,因爲它讓我更好地控制要分析的內容。 – Xiangyu
您也可以使用Visal Profiler。在[其他版本](https://devtalk.nvidia.com)[無法使用](https://forum.byte-welt.net/t/jcuda-and-nvvp-visual-profiler/3667)之後/ default/topic/524531/profiler-error-message-when-profiling-jcuda-application /)時,它似乎終於再次與CUDA 8.0一起工作。 – Marco13
@ Marco13,這隻能在windows下工作嗎?我讀過,我們需要爲它做一個.bat工作,我沒有在linux下嘗試過.sh腳本。 – Xiangyu