3. 库支持

CUPTI 可用于分析 CUDA 应用程序,以及通过 NVIDIA 或第三方库使用 CUDA 的应用程序。对于大多数此类库,其行为预计与直接使用 CUDA 的应用程序相同。但是,对于某些库,CUPTI 有某些限制或替代行为。

3.1. OptiX

CUPTI 支持分析 OptiX 应用程序,但存在某些限制。

追踪

  • 内部内核

    由 OptiX 启动且不包含用户定义代码的内核被赋予通用名称 “NVIDIA internal”。CUPTI 提供这些内核的追踪信息。

  • 用户内核

    由 OptiX 启动的内核可以包含用户定义代码。OptiX 使用自定义名称标识这些内核。此名称以 raygen__ (对于“光线生成”)开头。这些内核可以被追踪。

性能分析

CUPTI 可以使用性能分析 API 分析内部内核和用户内核。在自动范围模式下,范围名称将是从 0 到内核总数的数字值,包括内部和用户定义的内核,或者调用 set config API 时设置的最大范围数,以最小值者为准。

建议在资源分配时(例如,上下文创建)创建性能分析会话并启用性能分析,并在上下文销毁时禁用性能分析。

局限性

  • CUPTI 不会为用户内核发出任何驱动程序或运行时 API 回调。

  • 事件、指标和 PC 采样 API 不支持 OptiX 应用程序。