配置并发CUDA内核

时间:2017-08-25 20:52:31

标签: cuda

我有兴趣获得并发cuda内核的内存性能计数器。我尝试使用几个nvprof选项,例如--metrics all--print-gpu-trace。输出似乎表明内核不再是并发的。并且每个内核的并发性能指标看起来几乎与单独运行每个内核的性能指标完全相同。我认为这些并发内核按顺序运行。我如何获得并发内核的内存性能指标计数器,例如L2缓存?

1 个答案:

答案 0 :(得分:1)

在内核并发执行时,不能进行每内核分析。但是,您可以尝试以下解决方法:

  1. 只进行追踪。如果您未指定--metrics--events,则nvprof将仅执行跟踪运行。在这种情况下,nvprof将同时运行内核,但您只能获得内核时序 - 而不是度量/事件数据。
  2. 如果您拥有NVIDIA Tesla GPU(而不是GeForce或Quadro),您可以使用CUPTI librarycuptiSetEventCollectionMode(CUPTI_EVENT_COLLECTION_MODE_CONTINUOUS) API在内核运行时采样所需的指标同时。但是,这只允许您在该采样间隔中获取聚合度量/事件数据 - 这意味着您将无法将此数据与各个内核相关联。 CUPTI附带了一个名为event_sampling的代码示例,演示了如何使用此API。
  3. 分析您想要的指标/事件,并让内核序列化。对于某些指标/事件,您可以简单地总结这些值以估计并发执行期间的行为。