NVIDIA Nsight Compute 的用户手册

发布时间 2023-06-18 05:20:51作者: 吴建明wujianming

NVIDIA Nsight Compute 的用户手册

NVIDIA Nsight Compute User Interface (UI) 手冊。 有关工具 UI 中所有视图、控件和工作流的信息。 可视探查器的过渡指南。

1. 简介

对于从 Visual Profiler 迁移到 NVIDIA Nsight Compute 的用户,请参阅 Visual Profiler Transition Guide,了解功能和工作流程的比较。

1.1. 概述

本文档是下一代 NVIDIA Nsight 计算分析工具的用户指南。NVIDIA Nsight Compute 是用于 CUDA 应用程序的交互式内核分析器。 它通过用户界面和命令行工具提供详细的性能指标和 API 调试。 此外,其基线功能允许用户在工具中比较结果。NVIDIA Nsight Compute 提供可定制且数据驱动的用户界面和指标集合 并可以使用分析脚本进行扩展,以获得后处理结果。

重要功能

  • · 交互式内核分析器和 API 调试器
  • · 图形配置文件报告
  • · 工具中一个或多个报告的结果比较
  • · 快速数据收集
  • · 用户界面和命令行界面
  • · 完全可定制的报告和分析规则

2. 快速入门

以下各节提供了有关如何设置和运行 NVIDIA Nsight 计算以收集配置文件信息的简要分步指南。 所有目录都相对于 NVIDIA Nsight Compute 的基本目录, 除非另有说明。

UI 可执行文件称为 ncu-ui。具有此名称的快捷方式位于基目录中 的 NVIDIA Nsight Compute 安装。实际的可执行文件位于Windows或Linux上的文件夹中。 默认情况下,从 Linux 文件安装时,NVIDIA Nsight Compute 位于 . 从 or 包安装时,它位于与 Nsight 系统一致的位置。 在 Windows 中,默认路径为 。host\windows-desktop-win7-x64host/linux-desktop-glibc_2_11_3-x64.run/usr/local/cuda-<cuda-version>/nsight-compute-<version>.deb.rpm/opt/nvidia/nsight-compute/<version>C:\Program Files\NVIDIA Corporation\Nsight Compute <version>

启动 NVIDIA Nsight 计算后,默认情况下会打开欢迎页面。 它提供了指向最近打开的报告和项目的链接,以及快速访问“连接”对话框, 和“项目”对话框。 若要立即启动配置文件运行,请选择“快速启动”下的“继续”。 有关如何更改启动操作的信息,请参阅环境

欢迎页面

 2.1. 交互式个人资料活动

  1. 從 NVIDIA Nsight Compute 啟動目標應用程式

启动 NVIDIA Nsight Compute 时,将出现欢迎页面。 单击“快速启动”以打开“连接”对话框。如果未显示“连接”对话框, 您可以使用主工具栏中的“连接”按钮打开它,只要您当前未连接。 在左侧选择目标平台,并从连接下拉列表中选择连接目标(计算机)。 如果选择了本地目标平台,将作为连接提供。 使用 + 按钮添加新的连接目标。然后,继续在“启动”选项卡中填写详细信息。 在“活动”面板中,选择“交互式配置文件”活动以启动允许控制的会话 执行目标应用程序并以交互方式选择感兴趣的内核。 按启动以启动会话。localhost

 2. 从命令行使用工具检测启动目标应用程序

ncu 可以充当一个简单的包装器,强制目标应用程序加载必要的 工具检测库。该参数指定目标应用程序应为 在第一次检测的 API 调用之前启动和挂起。这样,应用程序将一直等到我们与 UI 连接。--mode=launch

$ ncu --mode=launch CuVectorAddDrv.exe

  1. 启动 NVIDIA Nsight 计算并连接到目标应用程序

 选择对话框顶部的目标计算机以连接并更新可连接应用程序的列表。 默认情况下,如果目标与您当前的本地平台匹配,则会预先选择 localhost。 选择附加”选项卡和感兴趣的目标应用程序,然后按“附加”。 连接后,NVIDIA Nsight Compute 的布局将变为步进模式,允许您控制执行 对检测的 API 的任何调用。连接后,“API 流”窗口指示目标 应用程序在第一次 API 调用之前等待。

  1. 控制应用程序执行

使用“API 流”窗口将调用单步执行到检测的 API。 顶部的下拉列表允许在应用程序的不同 CPU 线程之间切换。单步执行 (F11)、单步执行 (F10) 和单步执行 (Shift + F11) 可从“调试”菜单或 相应的工具栏按钮。步进时,将捕获函数返回值和函数参数。

 使用“恢复”(F5) 和“暂停”允许程序自由运行。 冻结控制可用于定义当前未处于焦点中的线程的行为,即在线程下拉列表中选择的线程。 默认情况下,API 流会在返回错误代码的任何 API 调用时停止。 这可以通过“在 API 错误中断”在“调试”菜单中切换。

  1. 隔离内核启动

要快速隔离内核启动以进行分析,请使用 API 窗口以跳转到下一次内核启动。执行将在执行内核启动之前停止。

 分析内核启动

在内核启动时暂停目标应用程序的执行后,UI 中将提供其他操作。 这些操作可从菜单或工具栏中访问。请注意,如果 API 流未处于合格状态(不在内核启动时或在不受支持的 GPU 上启动时)。要进行性能分析,请按“性能分析内核”并等待结果显示在“性能分析器报告”中。分析进度在右下角状态栏中报告。

除了手动选择配置文件,还可以从配置文件”菜单中启用“自动配置文件”。 如果启用,将使用当前部分配置分析与当前内核过滤器(如果有)匹配的每个内核。 如果要在无人参与的情况下分析应用程序,或者要分析内核启动次数,这将特别有用 非常大。 可以使用衡量指标选择工具窗口启用或禁用部分。

配置文件系列允许一次配置一组配置文件结果的集合。 集合中的每个结果都使用不同的参数进行分析。序列对于研究内核的行为很有用 跨大量参数,无需多次重新编译和重新运行应用程序。

有关此活动中可用选项的详细说明,请参阅交互式配置文件活动

2.2. 非交互式个人资料活动

  1. 從 NVIDIA Nsight Compute 啟動目標應用程式

启动 NVIDIA Nsight Compute 时,将出现欢迎页面。 单击“快速启动”以打开“连接”对话框。 如果未显示“连接”对话框,则可以使用主工具栏中的“连接”按钮将其打开, 只要您当前未连接。在左侧选择您的目标平台,然后选择您的 本地主机从连接下拉列表中。然后,填写启动详细信息。 在“活动”面板中,选择“配置文件活动以启动预配置的会话 配置文件会话并启动命令行探查器以收集数据。 提供输出文件名以启用使用启动按钮启动会话。

 其他启动选项

有关这些选项的更多详细信息,请参阅命令行选项。 这些选项分为多个选项卡: “过滤器”选项卡公开用于指定应分析哪些内核的选项。 选项包括内核正则表达式筛选器、要跳过的启动次数以及要分析的启动总数。 “部分”选项卡允许您选择应为每次内核启动收集哪些部分。 将鼠标悬停在某个部分上,以工具提示的形式查看其说明。 要更改默认启用的部分,请使用衡量指标选择工具窗口。 采样选项卡允许您为每个内核启动配置采样选项。 其他”选项卡包含通过该选项收集 NVTX 信息或自定义指标的选项。--metrics

 有关此活动中可用选项的详细说明,请参阅配置文件活动

2.3. 系统跟踪活动

  1. 從 NVIDIA Nsight Compute 啟動目標應用程式

启动 NVIDIA Nsight Compute 时,将出现欢迎页面。 单击“快速启动”以打开“连接”对话框。 如果未显示“连接”对话框,则可以使用主工具栏中的“连接”按钮将其打开, 只要您当前未连接。在左侧选择您的本地目标平台,然后选择您的 本地主机从连接下拉列表中。然后,填写启动详细信息。 在“活动”面板中,选择“系统跟踪活动以使用预配置的设置启动会话。 按启动以启动会话。

 其他启动选项

有关这些选项的更多详细信息,请参阅系统范围的分析选项

 会话完成后,将在新文档中打开 Nsight Systems 报告。默认情况下,将显示时间线视图。 它提供了 CPU 和 GPU 活动的详细信息,并有助于了解整体 应用程序的行为和性能。一旦 CUDA 内核被确定为在关键路径上并且不满足 性能预期,右键单击内核在时间轴上启动,然后从上下文菜单中选择分析内核。将打开一个新的连接对话框,该对话框已预先配置为分析所选内核启动。 继续使用非交互式配置文件活动优化所选内核

 2.4. 导航报告

  1. 导航报表

默认情况下,配置文件报告显示在“详细信息”页面上。 您可以在报表的不同报表页面之间切换,下拉菜单标记为“页面” 在报告的左上角。您还可以使用 Ctrl + Shift + N 和 Ctrl + Shift + P 快捷键 键或相应的工具栏按钮分别导航下一页和上一页。 报告可以包含任意数量的内核启动结果。结果下拉列表允许切换 在报表中的不同结果之间。

 比较多个结果

在“详细信息”页面上,按“添加基线”按钮以获取当前结果 成为此报告和任何其他报告的所有其他结果的基线 在NVIDIA Nsight Compute的同一实例中打开进行比较。 如果设置了基线,则“详细信息”页上的每个元素都显示两个值: 焦点结果的当前值和 基线或与相应基线值相比的变化百分比。

 使用下拉按钮、配置文件菜单或 相应的工具栏按钮以删除所有基线。 有关详细信息,请参阅基线

  1. 执行规则

“详细信息”页面上,某些部分可能会提供规则。 按“应用”按钮以执行单个规则。 顶部的“应用规则”按钮可执行当前焦点结果的所有可用规则。 规则也可以由用户定义。 有关更多信息,请参阅自定义指南

 3. 连接对话框

使用“连接”对话框启动并附加到本地和远程平台上的应用程序。 首先选择要分析的目标平台。 默认情况下(如果支持),将选择您的本地平台。 选择要在其上启动目标应用程序或连接到正在运行的进程的平台。

“连接”对话框

 使用远程平台时,系统会要求您在顶部下拉列表中选择或创建连接。 若要创建新连接,请选择 + 并输入连接详细信息。 使用本地平台时,将选择本地主机作为默认主机,无需进一步的连接设置。 如果性能分析将位于同一平台的远程系统上,则仍可以创建或选择远程连接。

根据您的目标平台,选择“启动”或“远程启动”以启动应用程序以在目标上进行分析。 请注意,当目标平台支持远程启动时,远程启动才可用。

填写应用程序的以下启动详细信息:

  • 应用程序可执行文件:指定要启动的根应用程序。请注意,这可能不是 您希望分析的最终应用程序。它可以是创建其他进程的脚本或启动器。
  • 工作目录:将在其中启动应用程序的目录。
  • 命令行参数:指定要传递给应用程序可执行文件的参数。
  • 环境:要为启动的应用程序设置的环境变量。

选择“附加”,将探查器附加到已在目标平台上运行的应用程序。 此應用程式必須已使用另一個 NVIDIA Nsight Compute CLI 執行個體啟動。 该列表将显示在目标系统上运行的所有可以连接的应用程序进程。 选择刷新按钮以重新创建此列表。

最后,选择要在已启动或附加的应用程序的目标上运行的活动。 请注意,并非所有活动都必然与所有目标和连接选项兼容。 目前,存在以下活动:

3.1. 远程连接

支持 SSH 的远程设备也可以在“连接”对话框中配置为目标。 要配置远程设备,请确保选择了支持 SSH 的目标平台,然后按 + 按钮。将显示以下配置对话框。

 NVIDIA Nsight Compute 支持密码和私钥身份验证方法。 在此对话框中,选择身份验证方法并输入以下信息:

  • · 密码
    • oIP/主机名:目标设备的 IP 地址或主机名。
    • o用户名:要用于 SSH 连接的用户名。
    • o密码:用于 SSH 连接的用户密码。
    • o港口:要用于 SSH 连接的端口。(默认值为 22)
    • o部署目录:要在目标设备上用于部署支持文件的目录。 指定的用户必须对此位置具有写入权限。
    • o连接名称:将要 显示在“连接”对话框中。如果未设置,它将默认 到 <User>@<Host>:<Port>。
  • · 私钥

 oIP/主机名:目标设备的 IP 地址或主机名。

  • o用户名:要用于 SSH 连接的用户名。
  • oSSH 私钥:用于向 SSH 服务器进行身份验证的私钥。
  • oSSH 密钥密码:私钥的密码。
  • o港口:要用于 SSH 连接的端口。(默认值为 22)
  • o部署目录:要在目标设备上用于部署支持文件的目录。 指定的用户必须对此位置具有写入权限。
  • o连接名称:将要 显示在“连接”对话框中。如果未设置,它将默认 到 <User>@<Host>:<Port>。

除了由路径和普通密码身份验证指定的密钥文件外,NVIDIA Nsight Compute 还支持 键盘交互式身份验证、标准密钥文件路径搜索和 SSH 代理。

输入所有信息后,单击“添加”按钮以使用此新连接。

“连接”对话框中选择远程连接时,应用程序可执行文件浏览器将使用配置的 SSH 连接浏览远程文件系统,允许用户选择 远程设备上的目标应用程序。

在远程设备上启动活动时,将执行以下步骤:

  1. 命令行探查器和支持文件将复制到远程设备上的部署目录中。 (仅复制不存在或过期的文件。
  2. 打开通信通道以准备 UI 和应用程序可执行文件之间的流量。
  • o对于交互式配置文件活动,将在主机上启动 SOCKS 代理
  • o对于非交互式配置文件活动,将在目标计算机上打开一个远程转发通道,以 通过隧道分析信息返回到主机。
  1. 应用程序可执行文件在远程设备上执行。
  • o对于交互式配置文件活动,将建立与远程应用程序和分析的连接 会话开始。
  • o对于非交互式配置文件活动,远程应用程序在命令行探查器下执行 并生成指定的报告文件。
  1. 对于非交互式性能分析活动,生成的报告文件将复制回主机并打开。

每个步骤的进度都显示在进度日志中。

进度日志

 请注意,远程启动任一活动类型后,进一步分析会话所需的工具可以是 发现 在远程设备上的部署目录中

在 Linux 和 Mac 主机平台上,NVIDIA Nsight Compute 支持在目标计算机上进行 SSH 远程分析,而目标计算机不是 可通过 和 SSH 选项从运行 UI 的计算机直接寻址。ProxyJumpProxyCommand

这些选项可用于指定要连接的中间主机或要运行的实际命令以获取连接的套接字 到 目标主机上的 SSH 服务器,可以添加到 SSH 配置文件中。

请注意,对于这两个选项,NVIDIA Nsight Compute 都运行外部命令,并且不实施任何机制来 使用在“连接”对话框中输入的凭据向中间主机进行身份验证。这些凭据 将仅用于对计算机链中的最终目标进行身份验证。

当使用选项 NVIDIA Nsight Compute 使用 OpenSSH 客户端 建立与中间主机的连接。这意味着为了使用 或,必须在主机上安装支持这些选项的 OpenSSH 版本。ProxyJumpProxyJumpProxyCommand

在这种情况下,向中间主机进行身份验证的常用方法是使用 SSH 代理并让它保留 用于身份验证的私钥。

由于使用了OpenSSH SSH客户端,因此您还可以使用SSH askpass机制来处理这些 以交互方式进行身份验证。

在慢速网络上,用于通过 SSH 进行远程分析的连接可能会超时。如果是这种情况,可以使用该选项来设置所需的超时值。ConnectTimeout

通过SSH进行远程分析的一个已知限制是,如果NVIDIA Nsight Compute尝试,可能会出现问题。 通过连接到运行它的同一台计算机,通过 SSH 进行远程分析。在这种情况下,解决方法 是通过 进行本地分析。localhost

有关OpenSSH客户端的可用选项及其工具生态系统的更多信息 有关身份验证,请参阅官方手册页

3.2. 交互式个人资料活动

交互式配置文件活动允许您启动控制 目标应用程序的执行,类似于调试器。 您可以分步 API 调用和工作负载(CUDA 内核)、暂停和恢复、 并以交互方式选择感兴趣的内核以及要收集的指标。

此活动当前不支持分析或附加到子进程。

  • · 启用 CPU 调用堆栈

在每个分析的内核启动位置收集 CPU 端调用堆栈。

  • · 启用 NVTX 支持

收集应用程序或其库提供的 NVTX 信息。 需要支持单步执行到特定 NVTX 上下文。

  • · 禁用性能分析启动/停止

忽略对应用程序的调用或由应用程序进行的调用。cu(da)ProfilerStartcu(da)ProfilerStop

  • · 从头开始启用性能分析

从应用程序启动开始启用性能分析。 如果应用程序调用和 不应分析首次调用此 API 之前的内核。 请注意,禁用此功能不会阻止您手动分析内核。cu(da)ProfilerStart

  • · 缓存控制

在分析期间控制 GPU 缓存的行为。允许的值: 对于“全部刷新”,在分析期间,在每次内核重播迭代之前刷新所有 GPU 缓存。 虽然应用程序执行环境中的指标值可能略有不同,而不会使缓存失效, 此模式在重放过程中以及目标的多次运行中提供最可重现的指标结果 应用。

对于“不刷新”,在分析期间不会刷新任何 GPU 缓存。这可以提高性能并更好地复制 如果指标收集只需要单个内核重播传递,则应用程序行为。 但是,某些指标结果会因以前的 GPU 工作以及重播迭代而异。 这可能会导致指标值不一致且超出界。

  • · 时钟控制

在性能分析期间控制 GPU 时钟的行为。允许的值: 对于基本时钟,GPC 和内存时钟在分析期间锁定到各自的基本频率。这对热节流没有影响。 对于“无”,在分析期间不会更改 GPC 或内存频率。

  • · 导入源

允许将可用的源文件永久导入到报表中。在源查找文件夹中搜索缺少的文件。 源信息必须嵌入到可执行文件中,例如通过编译器选项。 导入的文件在源页面上的 CUDA-C 视图中使用。-lineinfo

  • · 图形分析

设置 CUDA 图是应步进并分析为单个节点还是完整。 有关此模式的详细信息,请参阅内核分析指南

3.3. 个人资料活动

配置文件活动提供传统的、可预配置的探查器。 配置要分析的内核、要收集的指标等后,应用程序将在分析器下运行 没有交互式控制。 应用程序终止后,活动即完成。 对于通常不会自行终止的应用程序,例如交互式用户界面,您可以取消 分析所有预期内核后的活动。

此活动不支持附加到之前通过 NVIDIA Nsight Compute 启动的进程。 这些进程将在“附加”选项卡中灰显。

  • · 输出文件

应存储所收集配置文件的报告文件的路径。 如果不存在,则会自动添加报表扩展插件。 文件名组件支持占位符。 它被按顺序递增的数字替换,以创建唯一的文件名。 这将映射到命令行选项。.ncu-rep%i--export

  • · 强制覆盖

如果设置,将覆盖现有报告文件。 这将映射到命令行选项。--force-overwrite

  • · 目标流程

选择要分析的进程。 在“仅应用程序”模式下,仅分析根应用程序进程。 在模式 all 中,将分析根应用程序进程及其所有子进程。 这将映射到命令行选项。--target-processes

  • · 重播模式

选择多次重放内核启动的方法。 在内核模式下,各个内核启动在 目标应用程序的单一执行。 在“应用程序”模式下,整个目标应用程序将多次重新启动。 在每次迭代中,都会收集目标内核启动的其他数据。 应用程序重播要求程序执行具有确定性。 这将映射到命令行选项。 有关重放模式的更多详细信息,请参阅内核分析指南。--replay-mode

  • · 图形分析

设置 CUDA 图应分析为单个节点还是完整

  • · 其他选项

所有剩余选项都映射到其命令行探查器等效项。 有关详细信息,请参阅命令行选项

3.4. 重置

连接对话框中的条目将另存为当前项目的一部分。 在自定义项目中工作时,只需关闭项目即可重置对话框。

不在自定义项目中工作时,条目将存储为默认项目的一部分。 您可以通过关闭 NVIDIA Nsight 计算,然后从磁盘中删除项目文件来删除默认项目中的所有信息。

4. 主菜单和工具栏

主菜单和工具栏上的信息。

 4.1. 主菜单

  • · 文件
    • o新项目使用“新建项目”对话框创建新的性能分析项目
    • o打开项目打开现有的性能分析项目。
    • o近期项目从最近使用的项目列表中打开现有性能分析项目。
    • o保存项目保存当前性能分析项目。
    • o将项目另存为使用新文件名保存当前性能分析项目。
    • o关闭项目关闭当前性能分析项目。
    • o新建文件创建一个新文件。
    • o打开文件打开现有文件。
    • o打开远程文件

从远程主机下载现有文件并将其打开 本地。打开的文件将仅存在于内存中,并且将 除非用户 显式保存它。有关 选择要从中下载文件的远程主机,请参阅 有关远程连接的部分。

只有本地支持的文件类型子集可以 从远程目标打开。下表 列出可以远程打开的文件类型。

表 1.远程文件类型支持

扩展

描述

支持

NCU-rep

Nsight 计算探查器报告

是的

NCU-OCC

占用计算器文件

是的

NCU-BVH

OptiX AS 查看器文件

是(MacOSX 除外)

部分

部分说明

库宾

库宾文件

呵呵,呵呵,呵

头文件

C,CPP,Cu

源文件

.txt

文本文件

nsight-cuprof-report

Nsight 计算探查器报告(旧版)

是的

  • o救保存当前文件
  • o另存为使用不同的名称或类型或在不同的位置保存当前文件的副本。
  • o保存所有文件保存所有打开的文件。
  • o关闭关闭当前文件。
  • o关闭所有文件关闭所有打开的文件。
  • o最近使用的文件从最近使用的文件列表中打开现有文件。
  • o退出退出 nsight 计算。
  • · 连接
    • o连接打开“连接”对话框以启动或附加到目标应用程序。已连接时禁用。
    • o断开断开与当前目标应用程序的连接,允许应用程序正常运行并可能重新连接。
    • o终止立即断开并终止当前目标应用程序。
  • · 调试
    • o暂停在下一次截获的 API 调用或启动时暂停目标应用程序。
    • o恢复恢复目标应用程序。
    • o步入单步执行当前 API 调用或启动到下一个嵌套调用(如果有)或后续 API 调用(否则)。
    • o跨过跳过当前 API 调用或启动,并在下一次非嵌套 API 调用或启动时挂起。
    • o走出去跳出当前嵌套的 API 调用或启动到下一个非父 API 调用或启动上一级。
    • o冻结原料药

禁用后,将启用所有 CPU 线程,并在步进或恢复期间继续运行, 并且一旦至少有一个线程到达下一个 API 调用或启动,所有线程就会停止。 这也意味着在单步执行或恢复期间,当前选定的线程可能会更改为 旧的选定线程没有向前推进,API 流会自动 通过新的 API 调用或启动切换到线程。 启用后,仅启用当前选定的 CPU 线程。 所有其他线程将被禁用和阻止。

如果当前线程,则单步执行现在完成 到达下一个 API 调用或启动。所选线程永远不会更改。 但是,如果所选线程不调用任何进一步的 API 调用或在屏障处等待 另一个线程要取得进展,步进可能无法完成并无限期挂起。 在这种情况下,请暂停,选择另一个线程,然后继续单步执行,直到原始线程被取消阻止。 在此模式下,只有选定的线程才会向前推进。

  • o中断 API 错误启用后,在恢复或单步执行期间,只要 API 调用返回错误代码,执行就会暂停。
  • o运行到下一个内核请参阅 API 流工具窗口。
  • o运行到下一个 API 调用请参阅 API 流工具窗口。
  • o运行到下一个范围开始请参阅 API 流工具窗口。
  • o运行到下一个范围结束请参阅 API 流工具窗口。
  • o接口统计打开 API 统计信息工具窗口
  • o接口流打开 API 流工具窗口
  • o资源打开“资源”工具窗口
  • oNVTX打开 NVTX 工具窗口
  • · 轮廓
    • o配置文件内核在内核启动时挂起时,使用当前配置选择配置文件。
    • o型材系列在内核启动时挂起时,打开配置文件系列配置对话框以设置和收集一系列配置文件结果。
    • o自动配置文件启用或禁用自动性能分析。如果启用,则每个内核都与 将使用当前部分配置分析当前内核过滤器(如果有)。
    • o基线打开基线工具窗口。
    • o明确的基线清除所有当前基线。
    • o导入源将解析的源文件永久导入到报表中。 现有内容可能会被覆盖。
    • o部分/规则信息打开衡量指标选择工具窗口。
  • · 工具
    • o项目资源管理器打开“项目资源管理器”工具窗口。
    • o输出消息打开输出消息工具窗口。
    • o选项打开“选项”对话框。
  • · 窗
    • o保存窗口布局允许您指定当前布局的名称。布局将保存到文档目录中的布局文件夹中 命名为“.nvlayout”文件。
    • o应用窗口布局保存布局后,可以使用“应用窗口布局”菜单项还原它们。只需选择条目 从要应用的子菜单中。
    • o管理窗口布局允许您删除或重命名旧布局。
    • o恢复默认布局将视图恢复到其原始大小和位置。
    • o显示欢迎页面打开欢迎页面
  • · 帮助
    • o文档在线打开 NVIDIA Nsight Compute 的最新文档。
    • o文档(本地)打开该工具附带的 NVIDIA Nsight Compute 的本地 HTML 文档。
    • o检查更新在线检查是否有更新版本的 NVIDIA Nsight Compute 可供下载。
    • o重置应用程序数据重置保存在磁盘上的所有 NVIDIA Nsight 计算配置数据, 包括选项设置、默认路径、最近的项目引用等。 这不会删除已保存的报告。
    • o发送反馈打开一个对话框,允许您发送 bug 报告和功能建议。 (可选)反馈包括基本系统信息、屏幕截图或其他文件(如配置文件报告)。
    • o大约打开“关于”对话框,其中包含有关 NVIDIA Nsight 计算版本的信息。

4.2. 主工具栏

主工具栏显示主菜单中的常用操作。 有关其说明,请参阅主菜单

4.3. 状态横幅

状态横幅用于显示重要消息,例如探查器错误。 可以通过单击“X”按钮来关闭该消息。 同时显示的横幅数量有限,旧消息可以获得 如果出现新的,则自动关闭。 使用“输出消息”窗口查看完整的消息历史记录。

 5. 工具窗口

5.1. 接口统计

当 NVIDIA Nsight Compute 连接到目标应用程序时,API 统计信息窗口可用。 默认情况下,一旦建立连接,它就会打开。 可以使用主菜单中的调试> API 统计信息重新打开它。

 每当目标应用程序挂起时,它都会显示跟踪的摘要 带有一些统计信息的 API 调用,例如调用次数, 它们的总持续时间、平均持续时间、最短持续时间和最长持续时间。 请注意,在尝试时,此视图不能用作 Nsight 系统的替代品 以优化应用程序的 CPU 性能。

重置”按钮将删除收集到当前点的所有统计信息,然后启动新集合。 使用导出为 CSV 按钮将当前统计信息导出到 CSV 文件。

5.2. 接口流

API 窗口在 NVIDIA Nsight Compute 为 已连接到目标应用程序。 默认情况下,一旦建立连接,它就会打开。 可以使用主菜单中的调试> API 流重新打开它。

 每当目标应用程序挂起时,窗口都会显示 API 调用和跟踪内核启动。 当前挂起的 API 调用或内核启动(活动)用黄色箭头标记。 如果暂停处于子呼叫处,则父呼叫用绿色箭头标记。 API 调用或内核在执行之前已挂起。

对于每个活动,将显示更多信息,例如内核名称 或函数参数(函数参数)和返回值(函数返回)。 请注意,函数返回值仅在您走出或越过 API 调用后才可用。

使用“当前线程”下拉列表在活动线程之间切换。 下拉列表显示线程 ID,后跟当前 API 名称。 可以在触发器下拉列表中选择多个选项之一,这些选项由相邻的>>按钮执行。运行到下一个内核将恢复执行,直到在任何已启用的线程中找到下一个内核启动。运行到下一个 API 调用将恢复执行,直到在任何已启用的线程中找到与下一个触发器匹配的下一个 API 调用。“运行到下一个范围开始”将恢复执行,直到找到活动探查器范围的下一个开始。 探查器范围是使用 API 调用定义的。运行到下一个范围停止恢复执行,直到找到活动探查器范围的下一个停止点。 “API 级别”下拉列表更改流中显示的 API 级别。 导出为 CSV 按钮将当前可见的流导出到 CSV 文件。cu(da)ProfilerStart/Stop

5.3. 基线

可以通过单击纵断面菜单中的基线条目来打开基线工具窗口。它提供 用于管理配置的基线的集中位置。(请参阅基线, 以获取有关如何从配置文件结果创建基线的信息。

 可以通过单击表格行中的复选框来控制基线可见性。选中该复选框后, 基线将是 在摘要标题以及所有部分的所有图表中可见。如果未选中,基线将被隐藏,并将 不贡献 到度量差异计算。

可以通过双击表格行中的颜色样本来更改基线颜色。打开的颜色对话框 提供 能够选择任意颜色,并提供与库存基线颜色关联的预定义颜色调色板 旋转。

可以通过双击表行中的“名称”列来更改基线名称。名称不得为空,并且必须 小于选项对话框中指定的最大基线名称长度

可以通过单击“上移基线”和“下移基线”按钮来更改所选基线的 z 顺序 在工具栏中。当基线上移或下移时,其新位置将反映在报表页眉和 每个图表。 目前,一次只能移动一个基线。

可以通过单击工具栏中的“清除所选基线”按钮来删除所选基线。所有基线都可以是 通过单击全局工具栏或工具窗口工具栏中的“清除所有基线”按钮立即删除。

通过单击工具栏中的“保存基线”按钮,可以将配置的基线保存到文件中。默认情况下 基线文件使用该扩展名。基线文件可以在本地打开和/或与其他用户共享。.ncu-bln

可以通过单击工具栏中的“加载基线”按钮来加载基线信息。当基线文件为 将替换当前配置的已加载基线。将向用户显示一个对话框以确认此操作 必要时。

5.4. 指标详情

可以使用“配置文件”菜单中的“衡量指标详细信息”条目打开“衡量指标详细信息”工具窗口 或相应的工具栏按钮。当报表和工具窗口打开时,可以在报表中选择要显示的指标 附加 工具窗口中的信息。它还包含一个搜索栏,用于在重点报告中查找指标。

 可以在详细信息页面原始页面中选择报告指标。 该窗口将显示基本信息(指标的名称、单位和原始值)以及其他信息,例如 其扩展描述。

搜索栏可用于打开重点报表中的指标。 它会在您键入时显示可用的匹配项。 输入的字符串必须从指标名称的开头开始匹配。

默认情况下,选择或搜索新指标会更新当前的默认选项卡。 您可以单击“固定选项卡”按钮以创建默认选项卡的副本,除非已固定相同的指标。 这样可以保存多个选项卡并在它们之间快速切换以比较值。

某些指标包含实例值。如果可用,它们将在工具窗口中列出。实例值可以具有相关 ID,该 ID 允许将单个值与其关联的实体(例如函数地址或指令名称)相关联。

5.5. NVTX

当 NVIDIA Nsight Compute 连接到目标应用程序时,NVTX 窗口可用。 如果关闭,可以使用主菜单中的调试> NVTX 重新打开它。 每当目标应用程序挂起时,窗口都会显示所有活动状态 当前所选线程中的 NVTX 域和范围。 请注意,仅当启动命令行探查器实例时,才会跟踪 NVTX 信息 在 NVIDIA Nsight Compute 启动对话框中启用了 或 NVTX。--nvtx

 使用 API 流窗口中的当前线程下拉列表更改当前选定的线程。NVIDIA Nsight Compute 支持 NVTX 命名资源,例如线程、CUDA 设备、CUDA 上下文等。 如果使用 NVTX 命名资源,则将更新相应的 UI 元素。

 5.6. 资源

当 NVIDIA Nsight Compute 连接到目标应用程序时,资源窗口可用。 它显示有关当前已知资源的信息,例如 CUDA 设备、CUDA 流或内核。 每次挂起目标应用程序时,都会更新该窗口。 如果关闭,可以使用主菜单中的“调试>资源”重新打开它。

 使用顶部的下拉菜单,可以选择不同的视图,其中每个视图都是特定的 到一种资源(上下文、流、内核等)。 筛选器编辑允许您使用当前所选资源的列标题创建筛选器表达式。

资源表显示每个资源实例的所有信息。 每个实例都有一个唯一的 ID,即创建此资源时的 API 调用 ID, 其句柄、关联的句柄和其他参数。 销毁资源后,会将其从表中删除。

5.6.1. 内存分配

使用异步 malloc/free API 时,内存分配的资源视图还将包括内存对象 以这种方式创建。这些内存对象具有非零内存池句柄。“模式”列将指示哪个代码路径 是在分配相应对象期间采取的。模式包括:

  • REUSE_STREAM_SUBPOOL: 内存对象在先前释放的内存中分配。内存由内存池集支持 作为进行分配的流的当前。
  • USE_EXISTING_POOL_MEMORY: 内存对象在先前释放的内存中分配。内存由默认内存池支持 进行分配的流。
  • REUSE_EVENT_DEPENDENCIES: 内存对象是在内存中分配的,该内存以前在同一上下文的另一个流中释放。一条溪流 存在分配流对自由操作的排序依赖关系。Cuda 事件和空流交互可以创建 所需的流排序依赖项。
  • REUSE_OPPORTUNISTIC: 内存对象是在内存中分配的,该内存以前在同一上下文的另一个流中释放。但是,没有 自由和分配之间存在依赖关系。此模式要求在 请求分配。执行行为的更改可能会导致应用程序的多次运行采用不同的模式。
  • REUSE_INTERNAL_DEPENDENCIES: 内存对象是在内存中分配的,该内存以前在同一上下文的另一个流中释放。新的内部 可能已添加流依赖项,以便建立重用内存所需的流排序 以前发布。
  • REQUEST_NEW_ALLOCATION: 必须为此内存对象分配新内存,因为找不到可行的可重用池内存。 分配性能与使用非异步 malloc/free API 相当。

5.6.2. 图形可视化 DOT 和 SVG 导出

一些显示的资源也可以使用 or 按钮导出到 GraphViz DOT 或 SVG 文件。Export to GraphVizExport to SVG

导出 OptiX 可遍历手柄时, 可遍历的图形节点类型将使用形状和颜色进行编码 如下表所述。

表 2.OptiX 可遍历图节点类型

节点类型

形状

颜色

国际会计准则

六角形

#8DD3C7

三角气体

#FFFFB3

AABB 气体

#FCCDE5

曲线气体

#CCEBC5

球形气体

#BEBADA

静态变换

钻石

#FB8072

SRT 变换

钻石

#FDB462

矩阵运动变换

钻石

#80B1D3

错误

平行图

#D9D9D9

5.7. 指标选择

可以使用配置文件>指标选择从主菜单打开“指标选择”窗口。 它跟踪当前在 NVIDIA Nsight 计算中加载的所有指标集、部分和规则,独立于特定连接或报告。 可以在“配置文件选项”对话框中配置要从中加载这些文件的目录。 它用于检查可用的集合、部分和规则,以及配置应收集哪些规则以及哪些规则 应该应用。 您还可以指定应收集的各个指标的逗号分隔列表。 该窗口有两个视图,可以使用其标题中的下拉列表进行选择。

“衡量指标集”视图显示所有可用的衡量指标集。每个集都与多个指标部分相关联。 您可以选择适合要收集其性能指标的详细级别的集。 收集更详细信息的集合通常会在分析期间产生更高的运行时开销。

 在此视图中启用集时,将在“衡量指标部分/规则”视图中启用关联的衡量指标部分。 在此视图中禁用集时,将禁用“衡量指标部分/规则”视图中的关联部分。 如果未启用任何集,或者在“衡量指标部分/规则”视图中手动启用/禁用部分, <自定义>条目标记为活动,表示当前未启用任何节集。 请注意,默认设置默认处于启用状态。

每当手动分析内核或启用自动分析时,仅启用部分 ,并收集输入框中指定的各个指标。 同样,无论何时应用规则,只有在此视图中启用的规则处于活动状态。

 部分和规则的启用状态在 NVIDIA Nsight Compute 启动中保持不变。 “重新加载”按钮再次从磁盘重新加载所有部分和规则。 如果找到新的部分或规则,它将在可能的情况下启用。 如果在加载规则时发生任何错误,它们将列在额外的 带有警告图标和错误描述的条目。

使用“全部启用”和“全部禁用”复选框可同时启用或禁用所有部分和规则。 “筛选器”文本框可用于筛选视图中当前显示的内容。 它不会更改任何条目的激活。

该表显示了部分和规则及其激活状态、关系 以及其他参数,例如关联的指标或磁盘上的原始文件。 与节关联的规则显示为其节条目的子项。 独立于任何部分的规则显示在附加的独立规则条目下。

双击表的“文件名”列中的条目可将此文件作为文档打开。 它可以直接在NVIDIA Nsight Compute中编辑和保存。 编辑文件后,必须选择“重新加载”才能应用这些更改。

修改节或规则文件时,“状态”列中的条目将显示“用户已修改”,以反映它已从其默认状态修改。选择“用户修改”行时,将启用“还原”按钮。单击“还原”按钮会将条目恢复为默认值 状态并自动重新加载部分和规则。

同样,从配置的截面目录(在“配置文件选项”对话框中指定)中删除库存截面或规则文件时,“状态”列将显示“用户已删除”。用户删除的文件也可以使用“还原”按钮进行还原

将显示由用户创建(未随 NVIDIA Nsight 计算一起提供)的部分和规则文件。 作为状态列中的用户创建

有关 NVIDIA Nsight Compute 的默认部分列表,请参阅部分和规则

6. 探查器报告

探查器报告包含在分析期间为每次内核启动收集的所有信息。 在用户界面中,它由带有一般信息的标题以及控件组成 以在报告页或单个收集的启动之间切换。 默认情况下,报表在选中“详细信息”页时启动。

6.1. 标题

页面”下拉列表可用于在可用报表页之间切换, 下一节将对此进行详细说明。

探查器报表标题

 启动下拉列表可用于在所有收集的内核启动之间切换。 每个页面中显示的信息通常表示选定的启动实例。 在某些页面(例如 Raw)上,将显示所有启动的信息并突出显示所选实例。 您可以在此下拉列表中键入以快速筛选并查找内核启动。

应用筛选器”按钮可打开筛选器对话框。 您可以使用多个过滤器来缩小结果范围。在过滤器对话框中,输入您的过滤器 参数,然后按确定按钮。“启动”下拉列表将相应地进行筛选。 选择箭头下拉列表以访问“清除筛选器”按钮,这将删除所有筛选器。

筛选器对话框

 “添加基线”按钮将焦点中的当前结果提升为基线 此报告和在同一 NVIDIA Nsight 计算实例中打开的任何其他报告的所有其他结果。 选择箭头下拉列表以访问“清除基线”按钮,该按钮将删除所有当前活动的基线。

“应用规则”按钮应用此报表可用的所有规则。 如果以前应用了规则,则将替换这些结果。 默认情况下,分析内核启动后会立即应用规则。 这可以在“工具”>“选项”>“配置文件”>“报表 UI ”下的选项中进行更改> 自动应用适用的规则

右侧的按钮提供了可以在页面上执行的多个操作。可用的操作包括:

  • · 复制为图像 - 将页面内容作为图像复制到剪贴板。
  • · 另存为图像 - 将页面内容作为图像保存到文件中。
  • · 另存为 PDF - 将页面内容另存为 PDF 的文件。
  • · 导出为 CSV - 将页面内容导出为 CSV 格式。
  • · 重置为默认值 - 通过删除任何持久设置将页面重置为默认状态。

请注意,并非所有功能在所有页面上都可用。

有关所选内核的信息显示为“当前”。 [+] 和 [-] 按钮可用于显示或隐藏分区正文内容。 可以使用 r 按钮切换规则输出的可见性。 信息切换按钮 i 更改部分描述的可见性。

6.2. 报告页面

使用页眉中的“页”下拉列表在报表之间切换。

默认情况下,打开具有单个配置文件结果的报表时,将显示“详细信息页面”。 打开包含多个结果的报表时,将改为选择“摘要页”。 您可以在配置文件选项中更改默认报告页面。

6.2.1. 会话页面

会话页面包含有关报告和计算机的基本信息, 以及分析了启动的所有设备的设备属性。 在启动实例之间切换时,将突出显示相应的设备属性。

6.2.2. 摘要页面

摘要”页显示报告中所有收集的结果的列表, 具有选定的重要指标。 它为您提供了所有分析内核启动的快速比较概述。

可以通过单击列标题对指标列进行排序。 您可以使用“转置”按钮转置内核和指标表。 双击任何条目以使结果成为当前活动的结果,然后切换到“详细信息页面”页面以检查其性能数据。

概述指标有助于确定要关注哪个结果以进行进一步分析。

 对于范围回放报告, 默认情况下显示一组较小的列,因为并非所有列都适用于此类结果。

6.2.3. 详情页

概述

详细信息页面是在内核启动期间收集的所有指标数据的主页。 页面分为多个部分。 每个部分都包含一个标题表和一个可展开的可选正文。 这些部分完全由用户定义,可以通过更新各自的文件轻松更改。 有关自定义部分的详细信息,请参阅自定义指南。 有关 NVIDIA Nsight Compute 附带的部分列表,请参阅部分和规则

默认情况下,一旦收集了新的配置文件结果,就会应用所有适用的规则。 任何规则结果都将在此页面上显示为“建议”。 大多数规则结果纯粹是信息性的,或者有一个警告图标来指示某些性能问题。 带有错误图标的结果通常表示应用规则时出错。

规则结果通常会指出性能问题并指导完成分析过程。

 如果规则结果引用了另一个报告部分,它将在建议中显示为链接。 选择链接以滚动到相应的部分。 如果该部分未在同一配置文件结果中收集,请在衡量指标选择工具窗口中启用它。

您可以通过单击注释按钮(语音气泡)在“详细信息”视图的每个部分中添加或编辑注释。 注释图标将在包含注释的部分中突出显示。 注释将保留在报告中,并在“注释”页面中汇总。

使用“批注”按钮为节添加批注。

 除了标题之外,部分通常还有一个或多个带有其他图表或表格的主体。 单击每个部分左上角的三角形扩展器图标以显示或隐藏这些内容。 如果一个部分有多个正文,则右上角的下拉列表允许您在它们之间切换。

具有多个正文的部分有一个下拉列表,可在它们之间切换。

 车顶线

如果启用,GPU 光速屋顶线图部分将包含一个屋顶线图,该图对于一目了然地可视化内核性能特别有用。 (要在报表中启用屋顶线图,请确保在分析时启用该部分。 有关如何使用和阅读此图表的更多信息,请参阅屋顶线图。NVIDIA Nsight Compute 附带了几种不同的屋顶线图定义,包括分层屋顶线。 这些附加的屋顶线在不同的剖面文件中定义。 虽然不是完整剖面集的一部分,但添加了一个名为屋顶线的新剖面集,以在一个报告中收集和显示所有车顶线。 分层屋顶线的想法是,它们定义了多个天花板,这些天花板表示硬件层次结构的限制器。 例如,专注于内存层次结构的分层屋顶线可能具有 L1 缓存吞吐量的上限, 二级缓存和设备内存。 如果内核实现的性能受到分层屋顶线的天花板之一的限制,则可以表明 层次结构的相应单元是潜在的瓶颈。

示例车顶线图。

 可以使用下表中的控件缩放和平移屋顶线图以进行更有效的数据分析。

表 3.屋顶线图缩放和平移控件

放大

缩小

缩放重置

  • 单击图表右上角的放大按钮。
  • 单击鼠标左键并拖动以创建一个限定感兴趣区域的矩形。
  • 按加号 (+) 键。
  • 使用 Ctrl + 鼠标滚轮(仅限 Windows 和 Linux)
  • 单击图表右上角的缩小按钮。
  • 单击鼠标右键。
  • 按加号 (-) 键。
  • 使用 Ctrl + 鼠标滚轮(仅限 Windows 和 Linux)
  • 单击图表右上角的缩放重置按钮。
  • 按转义 (Esc) 键。
  • 使用 Ctrl(Mac 上的命令)+ 鼠标左键抓取图表,然后移动鼠标。
  • 使用光标键。
     

记忆

如果启用,“内存工作负载分析”部分将包含一个内存图表,用于可视化数据传输, 缓存命中率、指令和内存请求。 有关如何使用和阅读此图表的更多信息,请参阅内核分析指南

源计数器等部分可以包含热点表。 这些表指示内核源代码中一个或多个指标的 N 个最高值或最低值。 选择位置链接以直接导航到源页面中的此位置。 将鼠标悬停在某个值上可查看哪些指标对它有贡献。

热点表指出源中的性能问题。

 占有

您可以通过单击计算器按钮打开占用计算器 在报告页眉或占用部分的页眉中。

范围回放

请注意,对于范围回放结果 某些 UI 元素、分析规则、指标或部分正文项(如图表或表格)可能不可用, 因为它们仅适用于基于内核启动的结果。 可以在相应的部分文件中检查过滤器。

6.2.4. 源页面

页面将程序集 (SASS) 与高级代码(如 CUDA-C 或 PTX)相关联。 此外,它还显示与指令相关的指标,以帮助查明代码中的性能问题。

探查器报告页面

 页面可以在不同的视图之间切换,以专注于特定的源图层 或并排查看两个图层。 这包括 SASS、PTX 和 Source(CUDA-C、Fortran、Python 等)以及它们的组合。 哪些选项可用取决于嵌入到可执行文件中的源信息。

如果应用程序是使用 或 nvcc 标志构建的,则可以使用高级源 (CUDA-C) 视图来关联 SASS 和源。 在 ELF 级别使用单独的链接时,ELF 中没有与最终 SASS 对应的 PTX。 因此,NVIDIA Nsight Compute 不显示任何 PTX,即使它在 可执行文件,可以用 . 但是,这是 PTX 的预链接版本,不能可靠地用于关联。-lineinfo--generate-line-infocuobjdump -all -lptx

6.2.4.1. 导航

视图下拉列表可用于选择不同的代码(关联)选项:SASS,PTX和Source(CUDA-C,Fortran,Python等)。

在并排视图中,在左侧或右侧选择线条时,对视图中的任何相关线条 突出显示。 但是,当“为多文件源显示单个文件”选项设置为“是”时,目标文件或源对象 必须在相应的视图中选择,才能显示这些相关行。

”下拉列表允许您在提供视图中内容的文件或函数之间切换。 选择其他源条目时,视图将滚动到此文件或函数的开头。 如果视图包含多个源文件或函数,则会显示 [+] 和 [-] 按钮。 这些可用于展开或折叠视图,从而显示或隐藏 文件或函数内容(标头除外)。 如果折叠,则所有指标都显示聚合,以提供快速概览。

视图折叠/展开按钮

 您可以使用“查找(源代码)”行编辑来搜索每个视图的“源”列。 输入要搜索的文本,并使用关联的按钮查找此列中的下一个或上一个匹配项。 选择行编辑时,您还可以使用 Enter 或 Shift+Enter 键 分别搜索下一个或上一个匹配项。

SASS 视图经过筛选,仅显示在启动中执行的函数。 您可以切换“仅显示已执行的函数”选项来更改此设置, 但是,对于大型二进制文件,此页面的性能可能会受到负面影响。 某些 SASS 指令可能显示为 N/A。 这些指示目前尚未公开。

如果源文件在其原始位置找不到,则视图中仅显示文件名以及“找不到文件”错误。 例如,如果报表已移动到其他系统,则可能会发生这种情况。 选择一个文件名,然后单击上面的“解析”按钮以指定在本地文件系统上可以找到此源的位置。 但是,如果在性能分析期间选择了导入源选项,则视图始终显示文件, 文件当时可用。 如果在文件的原始查找位置或任何源查找位置找到文件,但其属性不匹配,则会显示文件不匹配错误。 请参阅“源查找”选项以更改文件查找行为。

CUDA-C 源解析”按钮

 如果报告是使用远程分析收集的,并且在配置文件选项中启用了远程文件的自动解析,则 NVIDIA Nsight 计算将尝试从远程目标加载源。 如果连接凭据在当前 NVIDIA Nsight 计算实例中尚不可用,则会在对话框中提示它们。 从远程目标加载目前仅适用于 Linux x86_64 目标以及 Linux 和 Windows 主机。

6.2.4.2. 指标

指标关联

在检查与代码关联的性能信息和指标时,该页面最有用。 指标显示在列中,可以使用列标题右键单击菜单访问的列选择器启用或禁用列。

“列选择器”对话框

 为了在水平滚动时不移出视图,可以修复列。 默认情况下,“源”列固定在左侧,便于检查 与源行相关的所有指标。 要更改列的固定,请右键单击列标题,然后分别选择冻结取消冻结

修复标题中的源列图标

 每个视图右侧的热图可用于快速识别 下拉列表中当前所选指标的指标值较高的位置。 热图使用黑体辐射色标,其中黑色表示最低 映射值和白色分别最高。 使用鼠标右键单击并按住热图时会显示当前比例。

源视图热图色阶

 默认情况下,适用的指标显示为相对于整个启动期间总和的百分比值。 从左到右填充一个条形图,以指示特定源位置的值 相对于此指标在启动中的最大值。 [%] 和 [+-] 按钮可用于将显示从相对切换到绝对,以及从 分别缩写为绝对值到全精度绝对值。

在相对/绝对值和缩写/全精度值之间切换指标

 预定义的源指标

  • 实时寄存器

编译器需要保持有效的寄存器数。 较高的值表示此代码位置需要许多寄存器, 可能会增加寄存器压力和最大数量 内核所需的注册。

报告的寄存器总数可能明显高于最大实时寄存器数。 编译器可能需要分配特定的寄存器,这些寄存器可能会在分配中产生漏洞,从而影响 即使最大实时寄存器较小。 这可能是由于 ABI 限制或特定硬件指令强制执行的限制而发生的。 编译器可能没有完整的图片,哪些寄存器可以在被调用方或调用方中使用,并且必须遵守 ABI 约定 从而分配不同的寄存器,即使某些寄存器理论上可以重复使用。launch__registers_per_threadlaunch__registers_per_thread

  • 经纱失速取样(所有周期)1

此程序位置的统计采样器的样本数。

  • 经失速取样(未发放周期)2

此程序位置的统计采样器的样本数 在周期上,Warp 调度程序不发出任何指令。请注意(未发布)样品 可以在与上述(所有)样本不同的分析通过上取, 因此,它们的值并不严格相关。

此指标仅在计算能力为 7.0 或更高版本的设备上可用。

  • 执行指令

每个单独的扭曲执行源(指令)的次数,与参与线程的数量无关 在每个经线内。

  • 执行的线程指令

任何线程执行源(指令)的次数,无论谓词是否存在或计算。

  • 执行的谓词线程指令

源(指令)由任何活动的谓词线程执行的次数。 对于无条件执行(即无谓词)的指令,这是 warp 中的活动线程数, 乘以相应的指令执行值。

  • 平均执行的线程数

每个 warp 执行的线程级指令的平均数量,无论其谓词如何。

  • 平均执行的谓词线程数

每个扭曲的预测线程级执行指令的平均数。

  • 不同的分支

不同分支目标的数量,包括故障。 仅当有两个或多个活动线程具有不同的目标时才递增。 由于解决分支或指令缓存未命中,不同的分支可能会导致翘曲停顿。

注册依赖项

寄存器之间的依赖关系显示在 SASS 视图中。读取寄存器时,所有可能的地址 可以找到可以写的地方。这些线之间的链接将在视图中绘制。所有依赖项 对于寄存器,谓词、统一寄存器和统一谓词显示在各自的列中。

在 SASS 视图中注册依赖项跟踪

 上图显示了简单 CUDA 内核的一些依赖项。在第一行,即 SASS 代码的第 9 行, 我们可以看到寄存器 R2 和 R3 上的写入,由指向左侧的填充三角形表示。 然后在第 17、20 和 23 行读取这些寄存器,这由指向右侧的规则三角形表示。 还有一些行,两种类型的三角形在同一行上,这意味着发生了读取和写入 对于同一寄存器。

不跟踪源文件和函数之间的依赖关系。

注册依赖项跟踪功能默认处于启用状态,但可以完全禁用 在“工具”>“选项”>“配置文件”>“报表源”页>“启用注册依赖项”。

6.2.4.3. 限制

范围回放

使用范围回放模式时, 指令级源指标不可用。

图形分析

分析完整的 CUDA 图时,指令级源指标不可用。

Cmdlist

分析 (OptiX) cmdlist 时,指令级源指标不可用。

6.2.5. 评论页

“注释”页面将所有部分注释聚合到单个视图中,并允许 用户在任何启动实例或部分以及整个报告上编辑这些注释。 注释随报表一起保留。如果添加了节注释, 详细信息页面中相应部分的评论图标将突出显示。

6.2.6. 调用堆栈/NVTX 页面

此报表页的“CPU 调用堆栈”部分显示用于执行的 CPU 调用堆栈 内核启动时的 CPU 线程。要使此信息显示在探查器报告中, 收集 CPU 调用堆栈的选项必须在“连接”对话框中启用或使用 相应的 NVIDIA Nsight Compute CLI 命令行参数。

 此报告页面的“NVTX 状态”部分显示内核启动时的 NVTX 上下文。 所有特定于线程的信息都与内核启动 API 调用的线程有关。 请注意,仅当探查器在启用 NVTX 支持的情况下启动时,才会收集 NVTX 信息。 在连接对话框中或使用 NVIDIA Nsight Compute CLI 命令行参数。

 6.2.7. 原始页面

Raw 页面显示所有收集的指标的列表,以及每次分析内核启动的单位。 例如,可以将其导出为CSV格式以进行进一步分析。 该页面具有筛选器编辑功能,可快速查找特定指标。 您可以使用“转置”按钮转置内核和指标表。

6.3. 指标和单位

数字指标值显示在报表的不同位置,包括大多数页面上的标题、表格和图表。NVIDIA Nsight Compute 支持以多种方式显示这些指标及其值。

当可用且适用于 UI 组件时,指标将与其单位一起显示。 这是为了明确指标是否表示周期、线程、字节/秒等。 该单位通常显示在矩形括号中,例如 .Metric Name [bytes] 128

默认情况下,单位会自动缩放,以便以合理的数量级显示指标值。 单位使用其 SI 因子进行缩放,即基于字节的单位使用 1000 因子缩放,前缀 K、M、G、 等。 基于时间的单位也使用 1000 的系数进行缩放,前缀为 n、u 和 m。 可以在配置文件选项中禁用此缩放。

无法收集的指标将显示为警告图标并分配一个警告图标。 如果指标浮点值超出常规范围(即 (不是数字)或(无限)), 还为其分配了一个警告图标。 例外情况是预期这些值且在内部列入允许列表的指标。n/ananinf

7. 基线

NVIDIA Nsight Compute 支持使用基线在一个或多个报告中对收集的结果进行差异化。 任何报告中的每个结果都可以提升为基线。 这会导致所有报告中所有结果的指标值显示与基线的差异。 如果同时选择多个基线,则会将指标值与所有当前基线的平均值进行比较。 基线不与报告一起存储,并且仅在打开相同的 NVIDIA Nsight 计算实例时可用,除非将它们保存到文件中 从基线工具窗口。ncu-bln

具有一个基线的探查器报告

 选择“添加基线”以将焦点中的当前结果提升为基线。 如果设置了基线,则详细信息页面、原始页面摘要页面上的大多数指标都会显示两个值: 焦点结果的当前值,以及基线的相应值或从 相应的基线值。(请注意,当基线时,可能会显示无限百分比增益 inf% 指标的值为零,而焦点值不是。

如果选择了多个基线,则每个指标将显示以下表示法:标准分数是所有基线的当前值与平均值之间的差异, 按标准差归一化。如果计入标准分数的指标值数等于 结果数(当前和所有基线),省略 @<值数>表示法。

<focus value> (<difference to baselines average [%]>, z=<standard score>@<number of values>)

具有多个基线的探查器报告

 双击基线名称允许用户编辑显示的名称。编辑是通过按或失去焦点时提交的,而通过按 来放弃编辑。 将鼠标悬停在基线颜色图标上允许用户从列表中删除此特定基线。Enter/ReturnEsc

使用下拉按钮、配置文件菜单或 相应的工具栏按钮以删除所有基线。

也可以在基线工具窗口中进行基线更改。

8. 独立源查看器

NVIDIA Nsight Compute 包括一个用于 cubin 文件的独立源查看器。 此视图与源页面相同,只是不包含任何性能指标。

可以从文件>打开主菜单命令打开 cubin 文件。将显示 SM 选择对话框 在打开独立源视图之前。如果可用,则会预先选择文件名中存在的 SM 版本。 例如,如果您的文件名是,则将在对话框中预先选择 SM 8.0。 如果文件名中未包含相应的 SM 版本,请从下拉菜单中选择相应的 SM 版本。mergeSort.sm_80.cubin

SM 选择对话框

 单击“确定”按钮以打开“独立源查看器”。

独立源查看器

 9. 入住率计算器

NVIDIA Nsight Compute 提供了一个占用计算器,可让您计算 给定 CUDA 内核的 GPU 的多处理器占用情况。它提供了与 CUDA 占用计算器电子表格的功能奇偶校验。

占用计算器可以直接从个人资料报告中打开,也可以作为新活动打开。入住率 计算器数据可以使用“文件>保存”保存到文件中。默认情况下,文件使用扩展名。入住计算器文件可以使用文件>打开文件打开.ncu-occ

  1. “连接”对话框启动

从连接对话框中选择占用计算器活动。 您可以选择指定占用计算器数据文件,该文件用于 使用保存文件中的数据初始化计算器。单击启动按钮以打开占用计算器。

 探查器报告启动

可以使用位于报告标题或详细信息页面上占用率”部分标题中的计算器按钮从 Profiler 报告打开占用计算器。

详细信息页眉

 占用部分标题

 用户界面由输入部分以及显示的表格和图形组成 有关 GPU 占用的信息。要使用计算器,请更改输入中的输入值 部分,单击应用按钮并检查表格和图形。

9.1. 表格

这些表显示了占用率,以及活动线程数、翘曲数和 每个多处理器的线程块,以及 GPU 上活动块的最大数量。

 9.2. 图表

图表将所选块大小的占用率显示为蓝色圆圈, 以及所有其他可能的块大小作为折线图。

 9.3. 图形用户界面数据

GPU 数据显示所有受支持设备的属性。

图形处理器数据

 10. 加速结构查看器

加速结构查看器允许检查 使用 OptiX API 构建的加速结构。在现代射线中 像OptiX这样的跟踪API,加速结构就是数据 描述渲染场景几何结构的结构,这些几何图形将是 在执行光线追踪操作时相交。更多信息 有关加速结构的信息,请参见OptiX编程指南

用户有责任设置这些并将它们传递给 OptiX API,将它们转换为内部数据结构 在现代 GPU 上表现良好。用户创建的说明可以是 非常容易出错,有时很难理解为什么渲染 结果与预期不符。加速结构 查看器是一个组件,允许OptiX用户检查 他们在启动光线追踪之前构建的加速结构 管道。

加速结构查看器通过 按钮。按钮 仅当当前查看的资源为 OptiX:可遍历句柄时,才可用。它打开当前选定的 处理。

 查看器是多窗格的:它显示 左侧的加速结构,图形视图 中间的加速结构,以及控制和 右侧的选项。在左侧的分层树视图中 查看实例加速结构 (IAS)、几何加速结构 (GAS)、实例和 将显示子几何图形。除此之外,还有一些一般属性 显示它们中的每一个,例如它们的原始计数、表面积和 设备上的大小。

根据输入几何图形的坐标系,您可能需要 将向上方向”设置更改为“Z 轴”或将坐标”设置更改为 RHS。要将摄像机重置为其原始位置,请单击重置摄像机

还有一系列相机控件,可实现快速和精确 导航。要保存位置,请使用书签控件。每个节点 在加速结构层次结构中也可以双击 快速导航到该位置。

 10.2. 过滤和突出显示

加速结构视图支持加速结构过滤 以及突出显示与特定特征匹配的数据。这 每个几何体旁边的复选框允许用户切换渲染 每个都可以遍历。

也可以通过在主几何体中单击它们来选择几何实例 图形视图。此外,在主图形视图中单击鼠标右键 提供隐藏或显示所有几何图形、隐藏所选几何图形或 隐藏除选定几何图形之外的所有几何图形。

 除了过滤之外,该视图还支持基于突出显示的 使用特定标志指定的几何图形。选中每个突出显示选项 将识别与该标志匹配的资源,着色以便于使用 鉴定。单击此部分中的条目将使所有几何图形变暗 不符合筛选条件,允许匹配的项目 过滤器脱颖而出。选择多个过滤器需要传递 几何形状以满足所有选定的滤波器(例如,AND 逻辑)。此外, 标题文本将更新以反映满足此条件的项目数 筛选条件。

 10.3. 渲染选项

在突出显示控件下,可以使用其他呈现选项。 其中包括控制几何颜色的方法和 切换网格和 AABB 的线框绘制。

 10.4. 导出

加速度结构查看器文档中显示的数据可以是 保存到文件。导出加速结构查看器文档允许将收集的数据保存到 即时分析会话。此功能对于 比较几何图形的不同修订或与他人共享。 书签也会保留。

11. 选项

NVIDIA Nsight Compute 選項可透過「工具>選項」下的主騣單存取。 所有选项都保留在磁盘上,并在下次启动 NVIDIA Nsight Compute 时可用。 当选项从其默认设置更改时,其标签将变为粗体。 可以使用“恢复默认值”按钮将所有选项恢复为其默认值

配置文件选项

 

 在加速结构左侧的分层视图中 查看器,在适用的情况下显示以下信息。

 参考文献链接

https://docs.nvidia.com/nsight-compute/NsightCompute/index.html