我有兴趣获得并发cuda内核的内存性能计数器。我尝试使用几个nvprof选项,例如--metrics all
和--print-gpu-trace
。输出似乎表明内核不再是并发的。并且每个内核的并发性能指标看起来几乎与单独运行每个内核的性能指标完全相同。我认为这些并发内核按顺序运行。我如何获得并发内核的内存性能指标计数器,例如L2缓存?
答案 0 :(得分:1)
在内核并发执行时,不能进行每内核分析。但是,您可以尝试以下解决方法:
--metrics
或--events
,则nvprof将仅执行跟踪运行。在这种情况下,nvprof将同时运行内核,但您只能获得内核时序 - 而不是度量/事件数据。cuptiSetEventCollectionMode(CUPTI_EVENT_COLLECTION_MODE_CONTINUOUS)
API在内核运行时采样所需的指标同时。但是,这只允许您在该采样间隔中获取聚合度量/事件数据 - 这意味着您将无法将此数据与各个内核相关联。 CUPTI附带了一个名为event_sampling
的代码示例,演示了如何使用此API。