分析并发的 CUDA 内核

  • 本文关键字:CUDA 内核 并发 cuda
  • 更新时间 :
  • 英文 :


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

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

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

最新更新