如何编写Nvidia CUDA gpu卡中多个指标的分析代码?

时间:2014-05-21 08:55:24

标签: cuda

我尝试在源代码上编写内核概要,并且需要在CUDA内核上分析多个指标。我已经尝试过使用CUDA组件的PAPI,但是它已经成功了。我还注意到了NVidia CUPTI API,但示例代码callback_metrics只为每个内核配置了一个度量标准,我对如何更改样本源代码以在多个度量下执行感到困惑。 PS:nvprof工具没有帮助,因为必须在我的源代码上进行profilling。

1 个答案:

答案 0 :(得分:1)

CUPTI API使用多种技术从GPU收集数据。每种技术都可以限制在单个内核中收集哪些数据。为了收集更复杂的指标或多个指标CUPTI,必须多次重放内核启动。 CUPTI有一个称为内核重放的功能,可以在应用程序中多次透明地重放内核。从CUDA API的角度来看,内核的执行时间要长很多倍。可以通过调用

启用此功能
CUptiResult CUPTIAPI cuptiEnableKernelReplayMode(CUcontext context);

这会将收集模式更改为CUPTI_EVENT_COLLECTION_MODE_KERNEL。

有关事件收集的其他信息,请参阅 cupti_events.h CUPTI用户指南部分CUPTI Event API