我写了一些使用 JCuda 来执行一些 CUDA 内核的 Java 代码。我想分析应用程序以了解流是如何重叠的等等。我可以使用 cuda 事件调用(例如 cudaEventElpasedTime)来获取内核的执行时间,但我不知道如何获取同一内核的开始和结束时间戳。
我知道 nvprof 可以生成这样的结果并显示时间线,但我找不到使用 Java 应用程序运行 nvprof 的方法。
编辑:现在我了解了如何使用 nvprof 来分析 Java 应用程序,这要归功于答案。我仍然更喜欢使用 cudaEvent 调用来获取开始和结束时间,这样我就有更多的控制权。似乎 nvprof 可以获得该信息,但最终用户没有 API 可以这样做吗?