1. 发行说明

Nsight Compute 发行说明。

发行说明,包括新功能和重要的错误修复。支持的平台和 GPU。当前版本的已知问题列表。

1.1. 发行说明

1.1.1. 2025.1 版本更新

常规

  • 所有屋顶线部分现在都包含在 full 部分集中。

  • 范围重放app-range 重放 现在支持收集指令级源指标。

  • 范围重放现在支持规则。

  • 改进了可用于范围的启动指标。

  • 启动统计信息部分中添加了一个新的 launch__stack_size 指标,用于报告配置的堆栈大小。

  • 添加了一个新的 sass__inst_executed_register_spilling 指标,用于计算由于寄存器溢出而由编译器创建的加载和存储指令的数量。

  • Nsight Compute 现在原生支持 macOS arm64。

NVIDIA Nsight Compute

  • 详细信息 页面中添加了交互式工具提示。交互式工具提示可用于比较不同的基线。其内容可以使用复制图标按钮复制到剪贴板。

  • CUDA 绿色上下文支持 得到改进,在启动统计信息部分、资源 工具窗口以及 会话页面 上显示 TPC 掩码信息。

  • 源比较 文档中添加了热图,以可视化源代码差异。

  • SASS 视图的 源比较 文档中添加了差异依据下拉菜单,这允许您根据操作码完整指令选择差异依据。

  • SASS 视图中的性能改进。

  • CUDA 图的 资源视图 现在可以直接在新的图表模式下可视化图结构。

  • 内存图表 现在支持缩放和平移。

  • 指标详细信息 工具窗口现在显示时间轴中的 PM 采样指标,作为上下文切换。

  • 改进了通过 远程连接 部署到目标系统的性能。

NVIDIA Nsight Compute CLI

已解决的问题

  • 修复了在某些系统上,为多通道数据收集保存上下文内存时,并非所有可用 GPU 内存都被考虑在内的问题。

  • 修复了非张量 FP16 屋顶线计算中不正确的乘数。

  • 修复了具有控制流的内联函数的指标 Avg. Threads Executed

  • 修复了在某些情况下,Warp Stall 采样指标的源统计信息表中未显示平均值的问题。

  • 修复了多个 SASS 语法高亮问题。

  • 修复了加载较旧报告时,报告标头中未正确显示 SM 计数的问题。

  • 改进了 指标详细信息 工具窗口和内存图表之间的交互。

1.1.2. 2024.4 版本更新

常规

  • 增加了对 Blackwell 架构的支持。

  • 为 CUDA 图添加了对多个 launch__* 指标的支持。

  • 范围重放 中增加了对 cuMemBatchDecompressAsync API 的支持。

NVIDIA Nsight Compute

  • 首次打开新的 UI 版本时,现在会显示新的功能概述。

  • 切换了原始页面的默认方向,以在行中显示指标,在列中显示分析结果。

  • 增加了对在源页面上报告寄存器溢出编译器注释的支持。

  • 源页面 改进了搜索功能,支持基于正则表达式和值的查找。

  • 增加了将 源视图配置文件 设置为默认配置文件的支持,以便在打开报告时自动应用。

  • 内联表 中添加了行号和内联函数地址的超链接。这使您可以快速跳转到源视图中的相应行号和 SASS 视图中的地址。在 内联表 中添加了一个新的 源文件 列,以显示源所属的文件名。

  • 内存图表 可以指示或隐藏非活动元素。

  • 详细信息页面上的图表工具提示现在在悬停特定值时显示更多相关信息。

  • 屋顶线图表 现在支持在 指标详细信息 工具窗口中显示脊点计算的公式。

  • 占用率计算器 现在考虑了 Hopper 架构和更新的 GPU 的块屏障的影响。它还改进了控件以调整输入值。

  • 远程连接 对话框现在支持占位符,以将文件部署到目标系统上例如用户特定的目录。

NVIDIA Nsight Compute CLI

  • 添加了新的 --nvtx-push-pop-scope 命令行选项,该选项允许设置进程范围的推送弹出范围。

已解决的问题

  • 修复了 macOS 触控板上的 UI 滚动问题。

  • 修复了加载规则文件时某些 Python 脚本错误未正确报告的问题。

  • 在 CUDA 12.7 驱动程序上,即使在容器中进行分析,上下文切换跟踪 现在也可以更精确地过滤事件到分析的 CUDA 上下文。

  • NVTX 过滤 现在正确支持在不同线程中开始和结束的开始/结束范围。

  • 修复了捕获 CUDA memcpy API 时 范围重放 的几个问题。

1.1.3. 2024.3.2 版本更新

NVIDIA Nsight Compute

  • 增加了对 Microsoft Compute Driver Model (MCDM) 上的内核分析的支持。需要 NVIDIA 显示驱动程序版本 565 或更高版本。

已解决的问题

  • 修复了使用 Ada GPU 架构的芯片(包括 NVIDIA L20 和 NVIDIA L40 数据中心 GPU)上选择的管道的峰值吞吐量值的计算。

  • 重新启用了 Linux(aarch64 和 aarch64 sbsa)上 加速结构查看器 的目标端数据收集,该功能在 2024.3.1 中被禁用。

1.1.4. 2024.3.1 版本更新

NVIDIA Nsight Compute

  • 增加了使用 ESC 按钮关闭源页面视图中的搜索弹出窗口的功能。

  • 禁用了 Linux(aarch64 和 aarch64 sbsa)上的 加速结构查看器,因为渲染视图可能会导致 Nsight Compute UI 崩溃。该功能将在未来版本中恢复。

NVIDIA Nsight Compute CLI

  • 重新添加了命令行参数 --set--list-sets 的帮助文档。

已解决的问题

  • 修复了 Hopper GPU 上 PM 采样的一个问题,该问题可能导致目标应用程序在分析期间挂起。

  • 修复了如果堆栈帧无法完全解析,则 CPU 堆栈帧不显示的问题。

  • 修复了指标详细信息窗口中表格高度的问题。

  • 修复了在准备源页面信息时 Nsight Compute UI 可能崩溃的问题。

  • 修复了取消保存部分分析报告的请求时导致失败的问题。

1.1.5. 2024.3 版本更新

NVIDIA Nsight Compute

  • 增加了对 sectionrule 文件作为新文档打开时的语法高亮支持。这些文档现在支持编辑、保存(ctrl + s)、文本搜索(ctrl + f)、放大(ctrl + 鼠标滚轮向下)、缩小(ctrl + 鼠标滚轮向上)功能。

  • 源比较 文档中,为冻结列添加了跨两侧同步水平滚动的支持。

  • 指标选择 工具窗口中为 sectionrule 文件添加了超链接。

  • 改进了 内联表 源语法高亮。

  • “连接”按钮已重命名为“开始活动”。

  • “连接对话框”已重命名为“开始活动”。

  • 改进了 开始活动对话框 中的 进度日志 窗口,以显示部署到远程主机的文件进度状态。

  • 添加了文件菜单选项,用于将打开的报告中的 保存过滤结果保存选定结果 保存到新报告。还添加了上下文菜单选项 保存结果,用于将 摘要表原始表 中的选定结果保存到新报告。

NVIDIA Nsight Compute CLI

  • 增加了对使用 –export–import 选项一起将导入的分析报告中的过滤结果导出到新文件的支持。

  • –kernel-id 选项现在支持用于指定上下文 ID 和流 ID 的正则表达式。

1.1.6. 2024.2.1 版本更新

常规

  • 改进了在内核和应用程序重放中按 NVTX 上下文过滤时的性能。

  • 改进了指标单位和术语的文档。

NVIDIA Nsight Compute

  • 改进了内存图表的工具提示。

  • 改进了 PM 采样指标的时间轴行最大选择。

已解决的问题

  • 修复了更改某些选项时,报告结果下拉列表可能不更新的问题。

  • 修复了源页面统计信息表的问题。

  • 修复了 PM 采样报告不完整数据的问题。

  • 修复了使用 NVTX 开始/结束范围进行过滤的问题。

  • 修复了反解 Numba CUDA 内核名称的问题。

  • 修复了在 vGPU 上分析多上下文应用程序的问题。

  • 修复了导致 L1 缓存并非始终对每个通道都无效的问题。

  • 修复了使用 execlp 的应用程序的问题。

1.1.7. 2024.2 版本更新

常规

  • PM 采样时间轴现在显示采样的 GPU 工作负载活动。

  • 增加了收集 Python 调用堆栈 以及本机调用堆栈的支持,以便更好地了解 Python 应用程序中工作负载的上下文。

  • 现在可以自动简化或手动重命名反解的内核名称。对于具有多个结果的报告,所有名称都在简化期间被考虑在内,以使它们更容易区分。

  • 删除了对 ppc64le 的支持。

NVIDIA Nsight Compute

  • 重新设计了 报告标头,以便更轻松地访问所有报告页面。所有操作现在都排序到清晰标记的按钮中。焦点结果选择已集成到 当前 行中。当将当前结果添加为基线时,行本身会更新以反映这一点,而不是显示单独的行。

  • 重新设计了 源页面源比较 控件,以允许更多的垂直空间。

  • 源页面源比较 导航依据 下拉列表可以链接到各自的其他视图。从一个下拉列表中更改列名也会在另一个视图中更改。这仅在列在第二个视图中也可用时才适用。

  • 源比较 文档中为每一侧分别添加了内联表支持。

  • 增加了对 Python 和 Fortran 源代码语法高亮的丰富支持。增强了 CUDA-C 和 PTX 语法高亮。

  • 在源页面中添加了 统计信息表,使您可以快速查看自定义选择的行的聚合指标。

  • 改进了内存图表中的工具提示,以便在指标丢失时显示更详细的信息。

  • 加速结构查看器 现在可以计算射线-几何体相交和遍历时间热图。

  • 增加了在节搜索文件夹中忽略目录的支持。

  • 增加了在节文件中指定 自定义指标描述 的支持。

  • 如果打开的报告比 UI 新,并且可能不完全兼容,则添加警告。

NVIDIA Nsight Compute CLI

  • 原始页面 csv 输出现在包括启用打印时的指标实例值。

已解决的问题

  • 改进了 PM 采样期间短工作负载的处理。

  • 改进了多个指标的单位。

  • 修复了某些指标在摘要和原始页面上不显示聚合的问题。

  • 修复了分析的应用程序可能会无意中覆盖工具加载的 PerfWorks 库的问题。

  • 修复了从系统跟踪活动分析内核名称(包括 $)时,内核名称被 shell 修改的问题。

  • 修复了在某些情况下报告无法保存到预期文件扩展名的问题。

1.1.8. 2024.1.1 版本更新

常规

  • 澄清了对于分析具有多个活动 CUDA 绿色上下文的范围,不可归因于 SM 的计数器值将在所有这些绿色上下文中聚合。

已解决的问题

  • 更改了将 PerfWorks 库加载到目标应用程序进程空间的方式。这解决了库搜索路径包含其他具有 PerfWorks 库的目录时可能出现的连接错误。

  • 修复了导致 PM 采样数据从 Profile Series 结果中丢失的问题。

  • 修复了内联函数表中百分比值计算不正确的问题。

  • 修复了当请求 PM 采样数据但未收集到任何样本时,NVIDIA Nsight Compute UI 可能崩溃的问题。

1.1.9. 2024.1 版本更新

常规

  • 切换为使用 OpenSSL 版本 3.0.10。

  • 添加了在 CUDA 绿色上下文上进行分析时可用的新指标。

  • 减少了收集 PM 采样 部分所需的通道数。

  • 现在可以在节文件中为 PM 采样指标指定计数器域。

  • 现在可以在命令行和指标详细信息窗口中通过指定相应的 collection 选项查询 PM 采样指标。

  • 添加了一个新的可选 PmSampling_WarpStates 部分,用于了解工作负载持续时间内的 Warp Stall 原因。

  • 添加了一个用于检测负载不平衡的新规则。

  • 改进了新驱动程序上图级分析的性能。

  • 更新了 OptiX cmdlists 和指令级 SASS 指标的 指标兼容性 表。

  • 通过动态重新收集指标以避免异常值通道组,改进了 PM 采样结果。使用新的 pm-sampling-max-passes 选项来控制动态重放通道的最大数量。

  • 添加了 interKernelCommunication 示例 CUDA 应用程序,以展示如何使用 NVIDIA Nsight Compute 分析相互依赖且必须并发启动的内核。请参阅 extras/samples/interKernelCommunication 下的 README.TXT 文件和示例代码。

NVIDIA Nsight Compute

  • 源比较 中添加了 SASS 视图和源标记支持。

  • 通过在插入/删除行的另一侧添加空行,改进了 源比较 差异可视化。

  • 现在可以直接从导航下拉列表中打开源页面 列选择器

  • 增加了更新 源页面配置文件 的支持。

  • 添加了 启动详细信息 工具窗口,用于显示有关较大工作负载(如 OptiX 命令列表)中各个启动的信息。

  • 资源 工具窗口、启动统计信息部分和报告标头中增加了对 CUDA 绿色上下文的支持。

  • 现在可以在指标详细信息窗口中查询属性指标。

  • 资源 工具窗口中增加了显示 CUDA 图内核节点是否为设备端可更新的支持。

NVIDIA Nsight Compute CLI

  • 改进了有关 NVTX 表达式和命令行输出的文档,当潜在的不正确表达式导致未分析任何工作负载时。

  • 改进了在使用 --target-processes-filer 选项时对无效表达式的检查。

已解决的问题

  • 修复了在 GH100 上进行分析时,L1 缓存实现的屋顶线值丢失的问题。

  • 修复了收集指令级 SASS 指标时出现的多个“启动失败”错误。

  • 修复了对于某些工作负载,实时寄存器 值过高的问题。

  • 修复了折叠多文件视图时源页面上的滚动问题。

  • 修复了当上下文切换跟踪不可用时,时间轴中不显示 PM 采样数据的问题。

  • 修复了添加基线时内存图表中的显示问题。

  • 修复了添加基线时崩溃的问题。

  • 修复了并非所有配置数据都可用时时间轴视图中的崩溃问题。

  • 修复了选择重置应用程序数据时,应用程序历史记录并非始终被删除的问题。

  • 修复了指标兼容性文档中的错误。

1.1.10. 2021.2.9 版本更新

NVIDIA Nsight Compute

  • 澄清了在当前芯片上无法收集屋顶线图表的所有指标的情况。

1.1.11. 早期版本

2023.3.1 版本更新

常规

  • 切换为使用 OpenSSL 版本 1.1.1w。

  • 改进了规则 IssueSlotUtilization 及其子规则的加速估计。

  • 更新了位于 extras/samples/ 的示例的报告文件和文档。

已解决的问题

  • 修复了在使用 范围重放 时,PM 采样 期间上下文切换数据的收集。

  • 修复了当提供的请求指标为无效正则表达式时,NVIDIA Nsight Compute 可能崩溃的问题。

  • 改进了仅分析单个进程且指定了 --target-processes all 的情况下 NVIDIA Nsight Compute 的性能。

  • 修复了源页面上报告的寄存器计数过高的问题。

  • 修复了可能导致在通过 PerfWorks 收集 SW 计数器时发生 GPU 故障的错误。

  • 修复了摘要页面上运行时改进值显示不正确的基线值的问题。

2023.3 版本更新

常规

  • NVIDIA Nsight Compute 现在支持通过在固定间隔定期采样 GPU 的性能监视器 (PM) 来收集许多指标。结果可以在 时间轴 上可视化。

  • 增加了 Windows 10 WSL(OS 版本 19044 及更高版本)上的 WSL 分析支持。对于系统内存超过 1 TB 的系统,Windows 10 WSL 上不支持 WSL 分析。

  • 规则输出被优先处理,以提高估计加速的准确性。摘要 页面现在在选择结果行时显示最可操作的优化建议。

  • 改进了收集期间和应用规则时不可用指标的处理和报告。

  • 添加了 instructionMix 示例 CUDA 应用程序和文档,以展示如何使用 NVIDIA Nsight Compute 分析和识别由于指令混合不平衡导致的性能瓶颈。请参阅 extras/samples/instructionMix 下的 README.TXT 文件、示例代码和文档。

NVIDIA Nsight Compute

  • 增加了使用 源比较 并排查看两个分析结果的源文件的支持。这使您可以快速识别源差异并了解指标值的变化。

  • 摘要 页面现在是打开报告时的默认页面。可以在 选项 对话框中启用以前的行为。

  • 摘要原始 页面上,所有/选定行的值会自动聚合在适用指标的列标题中。选定的单个单元格聚合在底部状态栏中。

  • 报告标头 中的 应用过滤器 按钮启动的过滤器对话框中添加了 启动名称设备 选项。

  • 增加了对 源视图配置文件 的支持,该配置文件持久化源页面配置,并允许您将其重新应用于其他报告。

  • 指标详细信息 工具窗口现在支持通过在搜索中使用 chip:<chipname> 标记来查询当前报告之外的指标。

  • 资源 工具窗口中增加了对 CUDA 图边缘数据(例如端口和依赖类型)和 CUDA 图条件句柄 的支持。

  • 加速结构查看器资源 工具窗口现在支持 OptiX 不透明度微映射。

NVIDIA Nsight Compute CLI

  • 跟踪和分析所有子进程 (--target-processes all) 现在是 ncu 的默认设置。

  • 改进了请求但不可用指标的报告。默认情况下,节文件中请求的指标被认为是可选的,并且只会显示警告。

已解决的问题

  • 在 Linux ppc64le 上,支持跟踪使用 system() 启动的子进程。

  • 改进了在源页面上跟随 SASS 导航链接的行为。

  • 修复了当节点与非当前 CUDA 上下文关联时,在图分析模式下分析 CUDA 图的问题。

  • 修复了分层屋顶线部分中 L2 带宽计算中的问题。

2023.2.2 版本更新

已解决的问题

  • 修复了在多个 GPU 上分析 CUDA 图形时可能发生的崩溃。

  • 修复了 C2C 接口的检测机制,即 metric c2clink__present。此修复需要显示驱动程序与此版本或任何更新的驱动程序一起发布。

2023.2.1 版本更新

已解决的问题

  • 修复了在网络文件系统 (NFS) 上定位临时目录时应用程序重放期间发生的崩溃。

  • 改进了 C2C 接口的检测机制。添加了检测到的配置缓存以减少开销。

2023.2 版本更新

常规

  • 扩展了规则系统,以显示通过解决相应的性能瓶颈可以实现的潜在加速估计。这些加速有助于确定适用规则的优先级,并首先关注具有最高潜在性能提升的优化策略。

  • 添加了对规则的支持,以突出显示单个源代码行。具有高冗余扇区计数的全局/本地内存访问以及具有许多 bank 冲突的共享访问的行将被自动检测和突出显示。

  • 添加了在 NvRules API 中查询指标属性的功能。

  • 添加了通过 NvRules API 创建实例化指标的支持。

  • 对于 Linux aarch64 平台上的 Orin+ 移动芯片,添加了内存控制器通道 (MC Channel) 单元的指标 (mcc__*) 支持,该单元连接到 DRAM。

NVIDIA Nsight Compute

  • 为通过地址或偏移量引用其他指令的指令添加了到“源代码页面的 SASS 视图”的超链接。这使得可以快速跳转到分支的目标指令。

  • 改进了“指标详细信息”工具窗口中的搜索栏。搜索字符串现在匹配指标名称的任何部分,并且匹配结果以排序顺序显示。

  • 在使用基线时,添加了指标值变化的比例的可视指示。 “详细信息页”的表格单元格中的背景条允许快速识别哪些指标值增加或减少最多。可以在“基线”工具窗口中配置配色方案。

  • 在“摘要页”上添加了对规则切换按钮的支持。允许隐藏所选内核启动的规则输出的底部窗格。

  • 添加了对允许用户使用 “指标/属性”分析选项“摘要页”上配置属性的支持。

  • “摘要页”上添加了百分比条。

NVIDIA Nsight Compute CLI

  • 添加了在使用 --target-processes all 时跟踪使用 posix_spawn(p) 启动的子进程的支持。

  • 添加了在使用 --target-processes all 时跟踪在 Windows 和 Linux (aarch64, x86_64) 上使用 system() 启动的子进程的支持。

已解决的问题

  • 修复了在 Windows 上打印 Unicode 字符时 NVIDIA Nsight Compute CLI 输出中的表格对齐问题。

  • 修复了从折叠视图切换到展开视图后“源代码页”中的视图损坏问题。

  • 修复了某些 SASS 指令缺少工具提示描述的问题。

  • 修复了使用 CTRL+C 从“资源”工具窗口复制时可能发生的崩溃。

  • 修复了在“节”工具窗口中恢复节时可能发生的崩溃。

2023.1.1 版本更新

NVIDIA Nsight Compute

  • 添加了新的配置选项,用于设置“源代码”页面的默认视图模式和精度。

已解决的问题

  • 添加了在拦截对 dlopen 的调用时对 DT_RUNPATH 属性的支持。修复了应用程序或库依赖于 DT_RUNPATH 在由 NVIDIA Nsight Compute 启动时找不到所有动态库的问题。

  • 改进了自定义附加指标与所选指标集之间的交互。添加自定义指标不再强制切换到自定义指标集。

  • 添加了在导入源代码时优雅地跳过访问权限不足的文件夹的功能。

  • 修复了分层屋顶线图中 L1 和 L2 缓存带宽峰值计算错误的问题。

  • 修复了使用函数 optixModuleCreateFromPTX 加载的模块未显示在资源工具窗口的Optix: 模块表格中的问题。

  • 修复了从 OptiX 拦截库查询函数指针时对已弃用函数的处理。

  • 修复了有时无法在工具窗口中轻松选择节或规则的问题。

  • 修复了重置应用程序数据导致某些设置无法正确重置的问题。

  • 修复了连续多次执行重置应用程序数据时 NVIDIA Nsight Compute 可能发生的崩溃。

  • 修复了为非内核结果保存或加载基线时发生的崩溃。

  • 修复了在单遍图形分析中,执行 CUDA 图形时写入的内存未正确恢复的问题。

  • 修复了为具有未修补内核函数的模块收集 SW 计数器时可能发生的内存泄漏。

2023.1 版本更新

常规

  • 添加了对 CUDA 工具包 12.1 的支持。

  • 添加了一种新的 app-range 重放模式,通过多次重新启动整个应用程序来分析范围,而无需 API 捕获。

  • 添加了 sharedBankConflicts 示例 CUDA 应用程序和文档,以展示如何使用 NVIDIA Nsight Compute 来分析和识别导致低效共享内存访问的共享内存 bank 冲突。请参阅 extras/samples/sharedBankConflicts 下的 README.TXT 文件、示例代码和文档。

  • Jupyter notebook 示例可在 Nsight 培训 github 存储库中找到。

  • 高级 Python 报告接口的等效功能现在在规则文件中可用。

NVIDIA Nsight Compute

  • 添加了在交互式分析活动中分析单个指标的支持。在“指标选择”工具窗口中添加了一个新的指标输入字段。

  • 可以直接从菜单中打开远程系统上的文件。

  • 菜单、“分析活动”“指标选择”工具窗口中与指标和节相关的条目已重命名,使其更加清晰。

  • 可以在适用的系统上收集 CPU 和 GPU NUMA 拓扑指标。拓扑信息显示在一个新的“NUMA 亲和性”节中。

  • 为“详细信息”页面添加了上下文感知建议,以根据所选的分析选项提供建议。

  • 添加了对重新解析源代码文件的支持,在“源代码”页面上。

  • 未发出的 warp 停顿原因已从“源代码计数器”节表格中删除,并在“源代码”页面上默认隐藏。用户应默认关注常规 warp 停顿原因,仅在需要区分时检查未发出的采样。

  • 添加了搜索丢失的 CUDA 源代码文件的支持,以使用“源代码查找”选项“交互式分析活动”中永久导入到报告中。

  • “源代码页”现在默认以百分比形式显示指标值。添加了新的按钮以支持在不同值模式之间切换。

NVIDIA Nsight Compute CLI

  • 添加了对在当前工作目录或用户目录中使用配置文件来设置默认 ncu 参数的支持。有关更多详细信息,请参阅“常规选项”

  • 添加了 --range-filter命令行选项,该选项允许选择已启用的分析范围的子集。

  • 添加了新的 --source-folders命令行选项,该选项允许递归搜索丢失的 CUDA 源代码文件以永久导入到报告中。

已解决的问题

  • 修复了大型报告在“摘要”和“原始数据”页面上的性能问题。

  • 改进了对文件名中非 ASCII 字符的支持。

  • 修复了“源代码”页面的“源代码”和 PTX 视图中程序集分析信息延迟更新的问题。

  • 修复了使用 Python 报告接口时可能发生的崩溃。

2022.4.1 版本更新

常规

  • 改进了 NvRules API 的文档。

  • python 报告接口静态链接 libstdc++。

已解决的问题

  • 修复了在 CUDA 图形上传上启用分析的问题。

  • 修复了指标实例单位转换期间的格式问题。

  • 修复了可能导致应用程序重放期间崩溃的问题。

  • 修复了可能导致 python 报告接口崩溃的问题。

  • 修复了指标参考文档和描述中的拼写错误。

2022.4 版本更新

常规

  • 添加了对 CUDA 工具包 12.0 的支持。

  • 添加了对分析 CUDA 图形 作为完整工作负载而不是作为单个内核节点的支持。在活动中使用图形分析选项启用此功能。与范围重放结果类似,在分析图形时,选定的指标不可用。

  • 添加了对在 Windows Subsystem for Linux (WSL2) 上进行分析的支持。 有关更多详细信息,请参阅“系统要求”

  • 已弃用的 nv-nsight-cunv-nsight-cu-cli 别名已移除,取而代之的是 ncu-uincu

NVIDIA Nsight Compute

  • “源代码页”现在在后台异步加载反汇编和静态分析结果。

  • 添加了一个新的“指标详细信息”工具窗口,用于检查指标信息,例如原始值、单位、描述或实例值。打开工具窗口并在“详细信息”“原始数据”页面上选择一个指标,或直接在工具窗口的搜索栏中查找聚焦报告中的任何指标。

  • 在“源代码页”PTX 视图中,源名称将显示为逗号分隔的文件列表。

  • “下一个触发器”过滤器中添加了基于 NVTX 的过滤的灵活性,类似于命令行。过滤器现在可以通过添加 nvtx-include:nvtx-exclude: 前缀来使用 nvtx-include 和 nvtx-exclude 表达式。

  • NVTX 视图现在显示有效负载类型。

  • 简化了“分析活动”生成的命令行。

  • 减少了重新运行“分析活动”所需的步骤数。

  • 改进了就地重命名“基线”的方式。

  • “资源”工具窗口现在显示 CUDA 函数和模块的 CUDA 动态并行状态。

  • OptiX 可遍历句柄现在可以导出为 Graphviz DOT 或 SVG 文件,以便从“资源”工具窗口进行可视化。

  • 所有 OptiX 构建、实例和几何体标志都可以在“加速结构查看器”中查看。

  • 为“加速结构查看器”添加了 OptiX 特定的高亮过滤器。

  • 为“加速结构查看器”添加了对用户指定的索引步幅的支持。

NVIDIA Nsight Compute CLI

  • 添加了新选项 --graph-profiling graph 以启用分析完整 CUDA 图形作为单个工作负载。

  • 添加了新选项 --filter-mode per-launch-config 以启用为每个 GPU 启动参数单独过滤内核启动。

  • 添加了使用新的 --print-details命令行选项在详细信息页面上打印节主体项目指标的支持。

  • 添加了使用新的 --print-metric-name命令行选项在详细信息页面上选择在“指标名称”列中显示内容的支持。

  • 移除了已弃用的选项:--units--fp--summary--kernel-base

  • 添加了使用新的 --page session 选项在会话页面上打印启动、会话、进程和设备属性的支持。

  • 为应用程序重放模式添加了 --kill yes 支持。

已解决的问题

  • 修复了在转置“原始数据”页面表格后,NVIDIA Nsight Compute 可能崩溃的问题。

  • 修复了导致关闭报告文档因挂起的源代码分析而延迟的问题。

  • 修复了对使用旧版本 OptiX 应用程序的分析支持。

  • 修复了 OptiX 模块输入对于 IR 和内置模块的显示。

2022.3 版本更新

常规

  • 添加了对 CUDA 工具包 11.8 的支持。

  • 添加了对 Ada GPU 架构的支持。

  • 添加了对 Hopper GPU 架构的支持。

  • 添加了对 OptiX 7.6 的支持。

  • 添加了 uncoalescedGlobalAccesses 示例 CUDA 应用程序和文档,以展示如何使用 NVIDIA Nsight Compute 分析器来分析和识别未合并的内存访问,这些访问会导致低效的 DRAM 访问。 请参阅 extras/samples/uncoalescedGlobalAccesses 下的 README、示例代码和文档。

  • 在文档中添加了“指标参考”,其中列出了无法通过 --query-metrics 获取的指标。

  • 降低了收集基于 SASS 修补的指标的开销。

  • 多实例 GPU (MIG) 配置上,NVIDIA Nsight Compute 无法再锁定时钟。 用户应使用 nvidia-smi 外部锁定时钟。

NVIDIA Nsight Compute

  • 包装脚本 nv-nsight-cu 已弃用,取而代之的是 ncu-ui,并将在未来的版本中移除。

  • “源代码页”支持范围重放结果。

  • 在“计算工作负载分析”节中添加了第二个图表,以避免混合含义不同的指标。

  • NVIDIA Nsight Compute 现在跟踪使用 optixAccelRelocate 创建的可遍历句柄。

  • NVIDIA Nsight Compute 现在跟踪从其他句柄更新创建的可遍历句柄。

  • “加速结构查看器”现在报告不支持的输入。

  • “加速结构查看器”现在支持打开多个可遍历句柄。

  • “加速结构查看器”现在对显示的元素使用 OptiX 命名。

NVIDIA Nsight Compute CLI

  • 包装脚本 nv-nsight-cu-cli 已弃用,取而代之的是 ncu,并将在未来的版本中移除。

  • 添加了新选项 --filter-mode per-gpu 以启用在每个 GPU 上单独过滤内核启动。

  • 添加了新选项 --app-replay-mode relaxed,即使内核启动的数量在应用程序重放过程中不一致,也可以为有效的内核生成分析结果。

  • 添加了关于支持的环境变量的文档节。

  • 提高了在命令行加载现有报告时的性能。

已解决的问题

  • 修复了在“源代码”页面上解析文件时出现的问题。

  • 修复了在分析 OptiX 应用程序时出现的问题。

  • 修复了由句柄值冲突引起的 OptiX 可遍历句柄管理中的问题。

  • 修复了“加速结构查看器”中导致查看 AABB 缓冲区时显示无效内存的问题。

2022.2.1 版本更新

已解决的问题

  • 修复了导致“详细信息”页面上的图表不显示某些工具提示的问题。

  • 修复了 L1TEX 内存表格中 LDGSTS(访问)流量的访问字节数报告不正确的问题。

  • 修复了在一次解析多个源代码文件后,导致“源代码”页面上出现空白视图的问题。

  • 修复了由于数据压缩配置不匹配而无法通过 SSH 连接到远程计算机的问题。

  • 修复了可能无法在同一类型芯片的多个设备上分析内核的问题。该故障发生在尝试在第二个设备上进行分析时。

2022.2 版本更新

常规

  • 添加了对 CUDA 工具包 11.7 的支持。

  • 提高了分析和指标查询的性能。

  • 添加了 Linux (aarch64 sbsa) 作为受支持的主机平台

  • NVIDIA Nsight Compute CLI 存储了命令行参数,这些参数可以在“会话”报告页面中查看。

  • 添加了一个 API 来查询 Python 报告NvRules 接口的版本。

  • 添加了一个 API 来查询 Python 报告NvRules 接口中的 PTX。

NVIDIA Nsight Compute

  • “加速结构查看器”允许检查使用 OptiX API 构建的加速结构,以进行调试和性能优化。

  • “源代码页”列选择器现在支持启用或禁用指标组。请注意,默认情况下不再启用所有指标,以使视图更易于使用。

  • “资源”工具窗口现在链接到CUDA资源类型的确切目标资源实例。

  • “资源”工具窗口现在显示 CUDA 图形的实例化节点。

  • “资源”工具窗口现在显示CUDA 模块的加载状态和已加载函数的数量。

  • “资源”工具窗口现在显示适用实例化图形节点的图形节点启用状态。

  • “资源”工具窗口现在显示实例化内核图形节点的图形节点优先级。

  • 在基于 NVTX 的过滤器的“下一个触发器”过滤器中添加了正则表达式支持。如果指定了 regex: 前缀,则“下一个触发器”过滤器现在将 NVTX 配置视为正则表达式。

  • 在报告的“过滤结果”对话框中添加了正则表达式支持。

  • 添加了键盘快捷键以在报告中的页面之间导航。

  • “节/规则信息窗口”非交互式分析活动之间,选择集和节的行为现在保持一致。

  • 现在可以直接从欢迎对话框中打开报告。

NVIDIA Nsight Compute CLI

  • 添加了在范围重放模式下收集基于采样的 warp 停顿的支持。

  • NVTX 过滤中添加了正则表达式支持。

  • 查询指标时会显示指标类型。

已解决的问题

  • 降低了非交互式远程分析会话连接到主机 UI 的开销。

  • 修复了折叠或在结果之间切换时,源代码页面状态持久化的问题。

  • 修复了在分析内核时终止 NVIDIA Nsight Compute CLI 时,锁定的 GPU 时钟未重置的问题。

  • 修复了从“详细信息”页面表格中选择和复制文本的问题。

  • 修复了在 macOS 上在 UI 中打开报告文件的问题。

  • 修复了“冻结 API”选项的问题。

2022.1.1 版本更新

常规

  • 如果范围名称为空,则基于 NVTX 域/范围过滤内核启动或分析结果现在会将有效负载字段中的已注册字符串考虑在内。

  • 为比率指标添加了后缀 .max_rate 的支持。

已解决的问题

  • 修复了在反汇编“源代码页”的内核 SASS 代码期间发生的崩溃。

  • 修复了 NVIDIA Nsight Compute UI 退出时发生的崩溃。

  • 修复了启用 CPU 调用堆栈收集时分析期间发生的挂起。

  • 修复了在“范围重放”期间获取内存检查点之前,缺少刷新 UVM 缓冲区的问题。

  • 如果 CUDA 上下文具有任何设备映射内存分配,则修复了在“范围重放”期间的内存跟踪。

  • 修复了 NVIDIA Ampere GPU 的“占用率计算器”中最大可用共享内存大小的问题。

  • 修复了从分析报告打开“占用率计算器”时,内核的共享内存使用量初始化不正确的问题。

2022.1 版本更新

常规

  • 添加了对 CUDA 工具包 11.6 的支持。

  • 添加了对 GA103 芯片的支持。

  • 添加了一种新的“范围重放”模式,用于分析多个并发内核的范围。 范围重放在 NVIDIA Nsight Compute CLI 和非交互式分析活动中可用。

  • 添加了一条新规则,用于检测非融合浮点指令。

  • “未合并的内存访问”规则现在在动态表格中显示结果。

  • Unix 域套接字和 Windows 命名管道分别用于 x86_64 Linux 和 Windows 上主机和目标进程之间的本地连接。

  • NvRules API 现在支持使用不同的函数名称库(例如,demangled)查询操作名称。

NVIDIA Nsight Compute

  • 打开报告时,现在会自动选择默认报告页面

  • 在“内存分析”节的“L2 缓存”表格中添加了对 ECC(错误纠正码)操作的覆盖。

  • 在“内存分析”节中添加了一个新的“L2 驱逐策略”表格。

  • 当输入更改时,“占用率计算器”现在会自动更新。

  • 为“源代码”页面添加了新的指标“线程执行的指令数”

  • 为“源代码”页面中的“寄存器依赖项”列添加了工具提示,以便更方便地识别关联的寄存器。

  • 改进了“分析活动”连接对话框中节和集的选择。

  • NVLink 利用率显示在“NVLink 表格”节中。

  • NVLink 链接根据测量的吞吐量进行着色。

NVIDIA Nsight Compute CLI

  • --kernel-regex--kernel-regex-base 选项不再受支持。备用选项分别是 --kernel-name--kernel-name-base,已在 2021.1.0 中添加。

  • 添加了使用新的 --resolve-source-file命令行选项--page source 输出中解析 CUDA 源代码文件的支持。

  • 添加了新选项 --target-processes-filter 以按名称过滤正在分析的进程。

  • CPU 堆栈跟踪显示在 NVIDIA Nsight Compute CLI 输出中。

已解决的问题

  • 修复了“源代码”页面上非 SASS 视图中聚合平均指令执行指标的计算。

  • 修复了原子指令在“内存分析”表格中同时计为加载和存储的问题。

2021.3.1 版本更新

已解决的问题

  • 修复了在某些情况下,具有相同名称和启动配置的内核在应用程序重放期间与错误的分析结果相关联的问题。

  • 修复了报告格式的二进制向前兼容性问题。

  • 修复了应用程序在进程关闭期间调用 CUDA API 时出现的问题。

  • 修复了分析使用 pre-CUDA API 3.1 上下文的应用程序时出现的问题。

  • 修复了在“源代码”页面上解析文件时发生的崩溃。

  • 修复了打开具有大型嵌入式 CUBIN 的报告时 UI 挂起的问题。

  • 修复了在 UI 已启动的目标上进行远程分析时出现的问题。

2021.3 版本更新

常规

  • 添加了对 CUDA 工具包 11.5 的支持。

  • 添加了一条新规则,用于检测 L1TEX 缓存和 L2 缓存中的低效内存访问模式。

  • 添加了一条新规则,用于检测系统或对等内存的高使用率。

  • NvRules API 添加了新的 IAction::sass_by_pc 函数。

  • 基于Python 的报告接口现在也适用于 Windows 和 macOS 主机。

  • 在新“屋顶线”节集中添加了分层屋顶线节文件。

  • 添加了收集 CPU 调用堆栈信息的支持。

NVIDIA Nsight Compute

  • 添加了新的远程分析SSH 连接和身份验证选项以及本地 SSH 配置文件。

  • 添加了一个“占用率计算器”,可以直接从分析报告打开或作为新活动打开。它提供了与 CUDA 占用率计算器 电子表格相同的功能。

  • 添加了新的“基线”工具窗口来管理(隐藏、更新、重新排序、保存/加载)基线选择。

  • “源代码页”视图现在支持多行/单元格选择和复制/粘贴。不同的颜色用于突出显示选择和相关的行。

  • “源代码页”上的搜索编辑现在支持 Shift+Enter 以反向搜索。

  • 可以配置“内存工作负载分析图表”以显示吞吐量值而不是传输的字节数。

  • “分析”活动现在支持 --devices 选项。

  • “NVLink 拓扑”图显示每个 NVLink 的指标。

  • 添加了一个新的工具窗口,显示在交互式分析活动期间当前线程暂停位置的 CPU 调用堆栈。

  • 如果启用,分析报告的“调用堆栈/NVTX”页面会显示所选内核启动的捕获的 CPU 调用堆栈。

NVIDIA Nsight Compute CLI

  • 添加了使用新的 --page source--print-source命令行选项打印源代码/指标内容的支持。

  • 添加了新选项 --call-stack 以启用收集每个分析内核启动的 CPU 调用堆栈。

已解决的问题

  • 修复了 memory_* 指标无法与 --metrics 选项一起收集的问题。

  • 修复了“详细信息”页面上节标题表格不支持选择和复制/粘贴的问题。

  • 修复了折叠内容时“源代码页”的问题。

  • 修复了当对新的分析结果应用规则时,UI 可能会崩溃的问题。

  • 修复了 PC 采样指标在Profile Series中不可用的问题。

  • 修复了如果系统未配置非环回地址,本地分析无法工作的问题。

  • 修复了远程启动应用程序的终止问题。在 QNX 上,现在支持终止通过远程启动分析的应用程序。现在支持取消远程启动的分析活动。

2021.2.8 版本更新

常规

  • 更新 Python 库至 3.10.5 版本。

2021.2.7 版本更新

常规

  • 为 L4T 构建启用了带有随机 canary 值的栈金丝雀。

2021.2.6 版本更新

已解决的问题

  • 修复了在分析多进程应用程序时,按下 ctrl+c 后导致 QNX 系统挂起的问题。

2021.2.5 版本更新

已解决的问题

  • 改进了移动目标 GPU 上性能监视器预留的处理。

2021.2.4 版本更新

已解决的问题

  • 修复了阻止在 NVIDIA GA10b 芯片上远程交互式分析内核的问题。

2021.2.3 版本更新

常规

  • 增加了对 NVIDIA GA10b 芯片的支持。

已解决的问题

  • 改进了 QNX 上部署 stock section 和 rules 文件失败时的错误消息。

2021.2.2 版本更新

常规

  • 为即将发布的 GRID/vGPU 版本,更改了对 NVIDIA 虚拟 GPU (vGPU) 分析的支持。

已解决的问题

  • 修复了在分析 shell 脚本时,使用 --target-processes all 选项在 QNX 上出现挂起的问题。

2021.2.1 版本更新

常规

已解决的问题

  • 修复了内存分配资源视图中的链接无法正常工作的问题。

  • 修复了 NVTX 状态可能在交互式分析活动之间未正确重置的问题。

  • 修复了当从不同的 GPU 架构打开基线时,UI 可能会崩溃的问题。

2021.2 版本更新

常规

  • 增加了对 CUDA 工具包 11.4 的支持。

  • 增加了对 OptiX 7.3 版本的支持。

  • 为即将发布的 GRID/vGPU 版本,增加了对 NVIDIA 虚拟 GPU (vGPU) 上进行分析的支持。

  • 新增了一个 基于 Python 的报告接口,用于从 Python 脚本与报告文件进行交互。

  • 新增了一条规则,当选择了采样指标但未收集到采样数据时,警告用户。

  • 在“光速”部分中,将SOL重命名为吞吐量

  • 重命名了页面上使用的几个 memory_* 指标,以更好地反映测量值。有关更多详细信息,请参阅源页面文档。

NVIDIA Nsight Compute

  • 增加了在独立源查看器中打开cubin 文件的支持,而无需分析应用程序。

  • 移动了所有规则的输出,即使 section 的主体折叠,输出也可见。规则输出的可见性可以通过报告头中的新按钮切换。

  • 当不明确时,分析器报告头现在显示每个基线的报告名称。

  • 规则可以定义重点指标,这些指标对于触发其结果输出最为重要。指标按结果消息提供,其中包含其他信息,例如底层条件和阈值。

  • 内存表在包含派生指标计算的单元格中显示工具提示。

  • 新增了知识库服务,在指标名称和描述的工具提示中显示更全面的背景信息。

  • 在“源计数器”热点表中点击链接,会自动在“源”页面中选择相应的指标。

  • 源页面 的 SASS 视图中,新增了用于可视化寄存器依赖性的列。

  • SASS 视图中的函数现在按名称排序。

  • 在交互式分析活动中,增加了对 OptiX 7.x 资源跟踪的支持。资源工具窗口将显示有关实例化的 optixDeviceContexts, optixModules, optixProgramGroups, optixPipelines and optixDenoiser 对象的信息。

  • 增加了对新的 CUDA 图形内存分配 API 的支持。

  • 提高了命令行参数和 API Stream 窗口中Next Trigger过滤器在处理正则表达式输入时的一致性。只有当字符串以 regex: 为前缀时,Next Trigger 过滤器现在才将内核/API 名称视为正则表达式。

  • 在选项对话框中增加了选择字体设置的功能。

  • 在选项对话框中增加了配置摘要页面上显示的指标的功能。

  • 所选的热图颜色标度现在也适用于内存图表

  • ncu-ui 脚本现在检查是否缺少库依赖项,例如 OpenGL 或 Qt

NVIDIA Nsight Compute CLI

已解决的问题

  • 修复了在使用 --page raw --csv --units auto 时,NVIDIA Nsight Compute CLI 中的性能问题。

  • 修复了 SSH 密码密钥不再持久保存在项目文件中的问题。

  • 修复了连接对话框中还原按钮的状态。如果当前设置与默认设置不同,该按钮现在支持恢复默认设置。

  • 修复了完整的 GPU 名称可以在 macOS 上的 NVLINK 拓扑图中显示的问题。

  • 修复了折叠“源”视图会重置所选指标的问题。

  • 修复了已执行函数的过滤视图和未过滤视图之间,相关行可能不同的问题。

  • 修复了在 macOS dock 中显示两个应用程序图标的问题。

  • 提高了 HiDPI 感知能力。

2021.1.1 版本更新

常规

  • 更新 OpenSSL 库至 1.1.1k 版本。

NVIDIA Nsight Compute

  • 除了主机名之外,远程源解析现在还可以使用 IP 地址来查找必要的 SSH 目标。

NVIDIA Nsight Compute CLI

  • 增加了在使用 --import 从现有报告文件导入数据时,对现有内核过滤命令行选项的支持。

  • 选项 -k 不再被视为已弃用的选项 --kernel-regex

已解决的问题

  • 修复了无法分析使用 CUDA 图形互操作 API 共享信号量的应用程序中的内核的问题。

  • 修复了 GA10x 芯片上写入共享内存的 L1TEX 表中的 wavefront 指标。

  • 修复了在同一会话中从单次模式切换到收集多次模式后,导致交互式分析活动数据收集不完整的问题。

  • 修复了当所有函数都折叠时,“源”页面缩略图中显示的值。

  • 修复了导致一个应用程序的 NVTX 命名 API 设置的名称应用于同一 NVIDIA Nsight Compute 实例的所有后续会话的问题。

  • 修复了在“源”页面上的源视图中单击时,水平滚动条的行为。

  • 修复了“源”页面上列选择器中多行条目的外观。

  • 修复了“连接”对话框上重置按钮的启用状态。

  • 修复了当窗口大小在“源”页面上变得很小时,NVIDIA Nsight Compute 可能崩溃的问题。

  • 修复了当找不到 section/rules 文件的相对路径时,NVIDIA Nsight Compute 可能崩溃的问题。

  • 修复了在删除基线后,NVIDIA Nsight Compute 可能崩溃的问题。

2021.1 版本更新

常规

  • 增加了对 CUDA 工具包 11.3 的支持。

  • 增加了对 OptiX 7 API 的支持。

  • 用于在 section 文件中进行过滤的 GpuArch 枚举值已从架构名称重命名为计算能力。

  • 现在可以通过 NvRules API 访问 NVTX 状态。

  • Occupancy section 添加了一条规则。

NVIDIA Nsight Compute

  • 内存池资源视图中,增加了对新的 CUDA 异步分配器属性的支持。

  • 在 NVLink section 中,增加了一个拓扑图表和链接属性表。

  • 当选择新指标时,“源”页面上选定的指标列会滚动到视图中。

  • 用户可以在选项对话框中选择热图颜色标度。

NVIDIA Nsight Compute CLI

  • 增加了基于文件的应用程序重放作为新的默认应用程序重放模式。基于文件的重放使用临时文件来保存重放数据,而不是在内存中分配它们。这使所需的内存占用量保持接近恒定,与分析内核的数量无关。用户可以使用 --app-replay-buffer 选项在缓冲区模式之间切换。

  • CLI 输出现在显示 NVTX 颜色和消息信息。

  • --kernel-regex--kernel-regex-base> 选项已弃用,分别由 --kernel-name--kernel-regex-base 替换。

  • 所有支持正则表达式的选项都需要在参数前提供 regex: 作为前缀,以按正则表达式匹配,例如 <option> <regex:expression>

已解决的问题

  • 修复了基线在评论页面上未正确更新的问题。

  • 修复了可以使用有效负载命名的 NVTX 范围在 NVTX 过滤 表达式中使用的问题。

  • 修复了在终止目标应用程序时,MacOSX 主机中发生的崩溃。

  • NVLINK(nvl*) 指标现在已重新添加。

2020.3.1 版本更新

常规

  • 增加了对 LDSM 指令级指标的支持。

NVIDIA Nsight Compute

  • LDSM 指令级指标显示在页面和内存表中。

  • 改进了收集Profile Series的报告和文档。

  • 页面中冻结的列会自动滚动到视图中。

已解决的问题

  • 修复了分析多线程应用程序时出现的问题。

  • 修复了当使用重置应用程序数据时,NVIDIA Nsight Compute 不会自动重启的问题。

  • 修复了使用 libstdc++ 的目标应用程序的问题。

  • 修复了在多个 Nsight Compute 实例中收集单次指标时出现的问题。

  • 修复了在 UI 的分析活动中使用内核 ID并将启动捕获计数设置为非零时出现的问题。

  • 修复了阻止同一 Linux 系统上的不同用户在共享实例模式下使用 NVIDIA Nsight Compute 的问题。

  • 修复了阻止在 UI 中使用 NVTX 信息正确重命名资源的问题。

2020.3 版本更新

常规

  • 在 section 文件中增加了对派生指标的支持。派生指标可用于基于现有指标和常量创建新指标。有关详细信息,请参阅自定义指南

  • 在 UI 和命令行中新增了一个导入源 (--import-source) 选项,以便在可用时将源文件永久导入报告中。

  • 新增了一个 section,在受支持的系统上显示选定的NVLink指标。

  • 启动统计 section 中新增了一个 launch__func_cache_config 指标。

  • 源计数器 section 中新增了分支效率指标,包括 smsp__sass_average_branch_targets_threads_uniform.pct 以替换 nvprof 的 branch_efficiency,以及指令级指标 smsp__branch_targets_threads_divergentsmsp__branch_targets_threads_uniformbranch_inst_executed

  • 如果内核重放开始将 GPU 内存暂存到 CPU 内存或文件系统,则会显示警告。

  • Section 和 rule 文件被部署到用户主目录中的版本化目录,以便更轻松地编辑这些文件,并防止修改基本安装。

  • 由于数据收集期间可能导致应用程序挂起,因此移除了对 NVLINK(nvl*) 指标的支持。这些指标将在未来版本的驱动程序/工具中重新添加。

NVIDIA Nsight Compute

  • 增加了对Profile Series的支持。Series 允许您使用一系列可配置的参数分析内核,以分析每种组合的性能。

  • 资源工具窗口中新增了一个分配视图,显示所有当前内存分配的状态。

  • 资源工具窗口中新增了一个内存池视图,显示所有当前内存池的状态。

  • 内存图表中增加了对对等内存的覆盖。

  • 页面现在显示从 L1 或 L2 请求的过多扇区数,例如,由于非合并内存访问。

  • 页面上的列现在可以水平滚动。

  • 内核持续时间 gpu__time_duration.sum 已作为列添加到摘要页面。

  • 当应用程序中并非所有内核都被分析时,提高了应用程序重放的性能。

NVIDIA Nsight Compute CLI

  • 新增了一个 --app-replay-match 选项,用于选择在应用程序重放过程中匹配内核实例的机制。

  • 如果在没有 --nvtx 的情况下使用 --nvtx-include/exclude,则会显示错误。

已解决的问题

  • Raw 页面上的Grid Size列现在显示 CUDA 网格大小,就像启动统计 section 一样,而不是组合的网格和块大小。

  • 分支解析 warp 停顿原因已添加到 PC 采样指标组和Warp 状态统计 section。

  • API Stream 工具窗口根据所选的函数名称模式显示内核名称。

  • 修复了在页面上进行热图选择后,可能会显示不正确的行的问题。

  • 修复了内存图表中系统内存的指标使用不正确的问题。以前,报告的是从系统内存请求的所有 L2 内存,而不是仅报告 L2 中未命中的部分。

2020.2.1 版本更新

已解决的问题

  • 修复了 UI 中与自动分析相关的几个问题。

  • 修复了使用应用程序重放分析不同 GPU 架构上的内核时的指标收集问题。

  • 修复了与分析大型进程树相关的性能问题。

  • 修复了在与基线进行比较时,占用率图表无法正确呈现的问题。

  • 修复了对于 LDGSTS 指令,页面上未显示内存指标的问题。

  • 修复了摘要Raw 页面上的自动排序。

  • 修复了在导入或打印报告时,导致 NVIDIA Nsight Compute CLI 消耗过多内存的问题。

  • 长内核名称现在在详细信息页面源热点表中被省略。

  • 修复了资源工具窗口中的函数名称被不同方式反解的问题。

2020.2 版本更新

常规

  • 增加了对计算能力为 8.6 的 NVIDIA Ampere GPU 和 CUDA 工具包 11.1 的支持。

  • 增加了对应用程序重放的支持,以跨多个应用程序运行收集指标结果,而不是重放单个内核。

  • 新增了 launch__device_id 指标。

  • 增加了对计算能力为 7.0、7.5 和 8.0 的 GPU 的 NVLink (nvl*) 指标的支持。

  • 分析指南中增加了内存图表和表格的文档。

NVIDIA Nsight Compute

  • 更新了菜单和工具栏布局。

  • 在屋顶线图表上增加了对缩放和平移的支持。

  • 资源工具窗口显示当前的 CUDA 流属性。

  • 内存图表显示链接和端口利用率的热图。

  • 源计数器 section 中的热点表现在也以百分比形式显示值。

  • 现在 macOS 主机可以按需解析远程 CUDA-C 源代码。

  • 摘要Raw 页面中的指标列现在可排序。

  • 新增了一个选项,用于设置API Stream工具窗口中显示的最近 API 调用的数量。

NVIDIA Nsight Compute CLI

  • CLI 输出现在显示 NVTX 有效负载信息。

  • CSV 输出现在显示 NVTX 状态。

  • 新增了一个 --replay-mode 选项,用于选择多次重放内核启动的机制。

  • 新增了一个 --kill 选项,用于在所有请求的内核都被分析后终止应用程序。

  • 新增了一个 --log-file 选项,用于决定打印工具输出的输出流。

  • 新增了一个 --check-exit-code 选项,用于决定是否应检查子应用程序退出代码。

已解决的问题

  • 发生错误后,分析进度对话框不再自动关闭。

  • 进程间锁现在自动为所有用户授予写权限。

  • 所有项目扩展都在默认对话框过滤器中启用。

  • 修复了远程分析期间使用 tcsh 的目标的处理。

  • 修复了 Windows 上带引号的应用程序参数的处理。

2020.1.2 版本更新

常规

  • 用于 Mac 的 NVIDIA Nsight Compute 安装程序现在已代码签名和公证。

  • 禁用了执行规则时 Python 缓存的创建,以避免权限问题和签名冲突。

已解决的问题

  • 修复了 NVIDIA Nsight Compute CLI 的启动器脚本,即使 uname -p 不可用也不会再失败。

  • 修复了函数 cuDeviceGetLuid 的 API 参数捕获。

2020.1.1 版本更新

常规

  • 增加了对 NVIDIA GA100/SM 8.x GPU 架构的支持

  • 传递给 NVIDIA Nsight Compute CLI 上的 --metrics 或相应分析活动选项的指标,如果需要,会自动扩展到所有第一级子指标。有关更多详细信息,请参阅 --metrics 文档。

  • 新增了用于检测 NVIDIA Ampere 架构上使用稀疏数据压缩的低效率的规则。

  • 收集结果的 NVIDIA Nsight Compute 目标的版本显示在会话页面中。

  • 新增了 launch__grid_dim_[x,y,z]launch__block_dim_[x,y,z] 指标。

NVIDIA Nsight Compute

  • 当自动分析时,API 错误时中断功能得到了改进。

NVIDIA Nsight Compute CLI

  • 分析后会打印报告输出文件的完整路径。

  • 在 nvprof 指标比较 表中添加和更正了指标。

已解决的问题

  • 文档化了 breakdown: 指标前缀。

  • 修复了 NVTX 过滤器表达式中转义域分隔符的处理。

  • 修复了小块大小的占用率图表的问题。

  • 修复了在选项对话框中选择默认报告页面时出现的问题。

  • 修复了将报告页面导出为图像时,滚动条可能会与内容重叠的问题。

2020.1 版本更新

常规

  • 增加了对 NVIDIA GA100/SM 8.x GPU 架构的支持

  • 移除了对 Pascal SM 6.x GPU 架构的支持

  • Windows 7 不再是受支持的主机或目标平台

  • 新增了一条规则,用于报告作为源计数器 section 一部分的非合并内存访问

  • 增加了对报告名称占位符 %p、%q、%i 和 %h 的支持

  • 内核分析指南已添加到文档中

NVIDIA Nsight Compute

  • UI 命令已从 nv-nsight-cu 重命名为 ncu-ui。旧名称保留以实现向后兼容性。

  • 增加了对屋顶线分析图表的支持

  • 在 section 主体中添加了链接的热点表,以指示源代码中的性能问题

  • 在规则结果中添加了 section 导航链接,以便快速跳转到引用的 section

  • 新增了一个选项,用于选择如何在 UI 中显示内核名称

  • 为 L1/TEX 缓存和 L2 缓存新增了内存表。旧表仍然可用以实现向后兼容性,并已移动到包含已弃用 UI 元素的新 section 中。

  • 内存表现在将指标名称显示为工具提示

  • 源解析现在在从磁盘选择文件时考虑文件属性

  • 配置文件中的结果现在可以按 NVTX 范围进行过滤

  • “源”页面现在支持即使对于单个文件也折叠视图

  • UI 将分析器错误消息显示为可关闭的横幅,以提高可见性

  • 改进了分析器报告头中的基线名称控件

NVIDIA Nsight Compute CLI

  • CLI 命令已从 nv-nsight-cu-cli 重命名为 ncu。旧名称保留以实现向后兼容性。

  • 在 GV100 和更新的芯片上查询的指标按字母顺序排序

  • 现在可以在同一系统上并发运行 NVIDIA Nsight Compute CLI 的多个实例,例如,用于分析单个 MPI 秩。分析的内核使用系统范围的文件锁在所有进程之间串行化。

已解决的问题

  • 更多 C++ 内核名称可以被正确反解

  • 修复了分析使用 pytorch > 19.07 的应用程序时出现的 free(): invalid pointer 错误

  • 修复了分析需要 PAMI GPU hooks 的 IBM Spectrum MPI 应用程序的问题 (--smpiargs="-gpu")

  • 修复了在计算 sass__inst_executed_per_opcode 时,第一个内核指令被遗漏的问题

  • 减少了内核重放期间刷新缓存产生的多余 DRAM 写入流量

  • 计算工作负载分析 section 在 GV11b GPU 上显示 IMMA 管道

  • 在使用触控板时,配置文件现在可以在 MacOS 上正确滚动

  • 分析活动的相对输出文件名现在使用文档目录,而不是当前工作目录

  • 修复了 Windows 上 ~ 的路径扩展

  • 内存访问信息现在在“源”页面上针对 RED 汇编指令正确显示

  • 修复了用户 PYTHONHOMEPYTHONPATH 环境变量会被 NVIDIA Nsight Compute 拾取,从而导致区域设置编码问题。

2019.5.3 版本更新

常规

  • 更多 C++ 内核名称可以被正确反解

2019.5.2 版本更新

常规

  • 缺陷修复

2019.5.1 版本更新

常规

  • 增加了对 Nsight Compute Visual Studio 集成的支持

2019.5 版本更新

常规

  • 增加了section 集合以减少默认开销,并使配置用于分析的指标集合更加容易

  • 减小了安装包的大小

  • 增加了对 CUDA Graphs Recapture API 的支持

  • NvRules API 现在支持访问实例指标的相关 ID

  • 在光速 section 中为 Volta+ GPU 添加了SOL SMSOL 内存的细分表

NVIDIA Nsight Compute

  • 在“源”页面热图中增加了一个 snap-select 功能,以帮助导航大型文件

  • 增加了对 Linux x86_64 目标按需通过 SSH 加载远程 CUDA-C 源文件的支持

  • 当悬停指标名称时,“详细信息”页面上的图表在工具提示中提供更好的帮助

  • 提高了滚动或折叠时“源”页面的性能

  • Warp 状态和计算管道的图表现在按值排序

NVIDIA Nsight Compute CLI

  • 增加了对 GPU 缓存控制的支持,请参阅 --cache-control

  • 增加了对在命令行输出中设置内核名称基数的支持,请参阅 --kernel-base

  • 增加了对列出 --chips 可用名称的支持,请参阅 --list-chips

  • 提高了在 Windows 上使用 --target-processes all 时的稳定性

  • 减少了在具有许多内核的应用程序中,小指标集的分析开销

已解决的问题

  • 减少了多次反解内核名称造成的开销

  • 修复了内核名称在 CUDA Graph Nodes 资源窗口中未被反解的问题

  • 连接对话框更好地禁用了不支持的组合或警告无效条目

  • 修复了 Volta+ GPU 上指标 thread_inst_executed_truesmsp_not_predicated_off_thread_inst_executed 派生的问题

  • 修复了计算 GV100 上的理论占用率时出现的问题

  • 在“源”页面热图上选择条目不再选择相应的源行,以避免丢失当前选择

  • 修复了“源”页面热图的当前视图指示器以使其行准确

  • 修复了在“摘要”页面上比较来自 Pascal 和更高版本架构的指标时出现的问题

  • 修复了在没有非常量指标的情况下,无法收集表示 Volta+ 上常量值的指标的问题

2019.4 版本更新

常规

  • 增加了对 Linux PowerPC 目标平台的支持

  • 降低了分析开销,尤其是在未收集源指标的情况下

  • 降低了未分析内核的开销

  • 提高了远程启动期间的部署性能

  • 尝试在不支持的 GPU 上进行分析时,现在会显示“不支持的 GPU”错误消息

  • 添加了对 %i 顺序编号占位符的支持,以生成唯一的报告文件名

  • 添加了对 Volta 及更新的 GPU 上的 smsp__sass_* 指标的支持

  • 如果内核未使用共享内存,launch__occupancy_limit_shared_mem 现在报告设备块限制

NVIDIA Nsight Compute

  • Profile 活动显示用于启动 ncu 的命令行

  • Source 页面上的热图现在在其工具提示中显示表示的指标

  • Details 页面上的 Memory Workload Analysis Chart 现在支持基线

  • 应用规则时,状态栏中会显示一条消息,显示新规则结果的数量

  • Visual Profiler Transition Guide 已添加到文档中

  • 连接对话框活动选项已添加到文档中

  • 如果在未启用自动分析的情况下恢复应用程序,则会显示警告对话框

  • 暂停应用程序现在在工具栏控件中具有即时反馈

  • File 菜单中添加了 Close All 命令

NVIDIA Nsight Compute CLI

  • --query-metrics 选项现在仅显示指标基本名称,以加快指标查询速度。 新选项 --query-metrics-mode 可用于显示每个基本指标的有效后缀。

  • 添加了对使用 @ 运算符传递响应文件以通过文件指定命令行选项的支持

已解决的问题

  • 修复了附加时 Session 页面中报告错误的执行文件名的问题

  • 修复了图表标签在 Details 页面上被省略显示的问题

  • 修复了添加基线时导致缓存命中率显示不正确的问题

  • 修复了在 Pascal GPU 上为使用 PyTorch 的应用程序收集 sass__*_histogram 指标时发生的非法内存访问

  • 修复了尝试在 Volta 及更新的 GPU 上收集所有 smsp__* 指标时出现的问题

  • 修复了分析多上下文应用程序时出现的问题

  • 修复了连接对话框中的分析启动/停止设置未正确传递到交互式分析活动的问题

  • 修复了某些 smsp__warp_cycles_per_issue_stall* 指标在 Pascal GPU 上返回负值的问题

  • 修复了指标名称在 --page details 非 CSV 命令行输出中被截断的问题

  • 修复了如果连接端口被另一个具有更高权限的应用程序使用,目标应用程序可能会崩溃的问题

2019.3.1 版本更新

NVIDIA Nsight Compute

  • 添加了在 Help 菜单中使用 Send Feedback 发送错误报告和功能建议的功能

已解决的问题

  • 修复了对于块不是 32 个线程倍数的网格,理论占用率的计算问题

  • 修复了拦截通过 Python 的 subprocess.Popen 类启动的子进程的问题

  • 修复了 NVTX 推送/弹出范围未在 NVIDIA Nsight Compute CLI 中的子线程中显示的问题

  • 修复了 Source 页面上指标查找的性能下降问题

  • 修复了规则中关于 IMC 停顿原因的描述

  • 修复了在比较不同架构的报告时,内存表中基线值未正确计算的情况

  • 修复了“已执行指令混合”图表中基线值计算不正确的问题

  • 修复了在 NvRules API 中访问实例化的指标的问题

  • 修复了一个可能导致在交互式分析活动中收集不必要指标的错误

  • 修复了在分析的目标应用程序退出时可能发生的崩溃

  • 将 GPU Speed Of Light 部分中 SOL FB 的底层指标切换为由 dram__throughput.avg.pct_of_peak_sustained_elapsed 而不是 fbpa__throughput.avg.pct_of_peak_sustained_elapsed 驱动

2019.3 版本更新

常规

  • 改进的性能

  • 缺陷修复

  • 内核启动上下文和流作为指标报告

  • PC 采样配置选项作为指标报告

  • 与目标的连接的默认基本端口已更改

  • Section 文件支持多个命名的 Body 字段

  • NvRules 允许用户使用任何可转换的数据类型查询指标

NVIDIA Nsight Compute

  • 支持使用内核的 NVTX 上下文过滤内核启动

  • 支持选择连接端口范围的新选项

  • Profile 活动支持配置 PC 采样参数

  • Details 页面上的 Section 支持选择单个主体

NVIDIA Nsight Compute CLI

  • 支持从特定 NVTX 上下文步进到内核启动

  • 支持新的 --port--max-connections 选项

  • 支持新的 --sampling-* 选项以配置 PC 采样参数

  • Section 文件错误通过 --list-sections 报告

  • 如果某些 section 文件无法加载,则会显示警告

已解决的问题

  • –summary 选项适用于包含无效指标的报告

  • 完整进程可执行文件名针对 QNX 目标报告

  • 项目系统现在可以正确存储已打开报告的状态

  • 修复了 PTX 语法高亮

  • 修复了在 NVIDIA Nsight Compute 中手动和自动分析之间切换时出现的问题

  • NVIDIA Nsight Compute 中的源页面现在可以处理来自多个进程的结果

  • NVIDIA Nsight Compute 详细信息页面上的图表对数字使用正确的本地化

  • NVIDIA Nsight Compute 不再要求系统区域设置设置为英语

2019.2 版本更新

常规

  • 改进的性能

  • 缺陷修复

  • 内核启动上下文和流作为指标报告

  • PC 采样配置选项作为指标报告

  • 与目标的连接的默认基本端口已更改

  • Section 文件支持多个命名的 Body 字段

  • NvRules 允许用户使用任何可转换的数据类型查询指标

NVIDIA Nsight Compute

  • 支持使用内核的 NVTX 上下文过滤内核启动

  • 支持选择连接端口范围的新选项

  • Profile 活动支持配置 PC 采样参数

  • Details 页面上的 Section 支持选择单个主体

NVIDIA Nsight Compute CLI

  • 支持从特定 NVTX 上下文步进到内核启动

  • 支持新的 --port--max-connections 选项

  • 支持新的 --sampling-* 选项以配置 PC 采样参数

  • Section 文件错误通过 --list-sections 报告

  • 如果某些 section 文件无法加载,则会显示警告

已解决的问题

  • –summary 选项适用于包含无效指标的报告

  • 完整进程可执行文件名针对 QNX 目标报告

  • 项目系统现在可以正确存储已打开报告的状态

  • 修复了 PTX 语法高亮

  • 修复了在 NVIDIA Nsight Compute 中手动和自动分析之间切换时出现的问题

  • NVIDIA Nsight Compute 中的源页面现在可以处理来自多个进程的结果

  • NVIDIA Nsight Compute 详细信息页面上的图表对数字使用正确的本地化

  • NVIDIA Nsight Compute 不再要求系统区域设置设置为英语

2019.1 版本更新

常规

  • 支持 CUDA 10.1

  • 改进的性能

  • 缺陷修复

  • Volta GPU 上的分析现在使用与 Turing GPU 上相同的指标名称

  • Section 文件支持描述

  • 默认 sections 和 rules 目录已重命名为 sections

NVIDIA Nsight Compute

  • 在选项对话框中添加了新的分析选项

  • Details 页面在 section 标题中显示规则结果图标

  • Section 描述显示在详细信息页面和 sections 工具窗口中

  • Source 页面支持折叠多个源文件或函数以显示聚合结果

  • Source 页面热图颜色标度已更改

  • 无效的指标结果在 profiler 报告中突出显示

  • 加载的 section 和 rule 文件可以从 sections 工具窗口打开

NVIDIA Nsight Compute CLI

  • 支持在 Linux 和 Windows x86_64 目标上分析子进程

  • 如果未指定输出文件,NVIDIA Nsight Compute CLI 将使用临时文件

  • 支持新的 --quiet 选项

  • 支持使用新的 --clock-control 选项设置 GPU 时钟控制模式

  • 启用 --nvtx 后,Details 页面输出显示 NVTX 上下文

  • 支持使用新的 --nvtx-include--nvtx-exclude 选项,根据内核启动的 NVTX 上下文对其进行过滤以进行分析

  • 为聚合分析结果添加了新的 --summary 选项

  • 添加了选项 --open-in-ui,以在 NVIDIA Nsight Compute 中直接打开使用 NVIDIA Nsight Compute CLI 收集的报告

已解决的问题

  • 安装目录脚本使用绝对路径

  • OpenACC 内核名称已正确反混淆

  • Profile 活动报告文件支持相对路径

  • Source 视图可以一次解析所有适用的文件

  • UI 字体颜色已改进

  • Details 页面布局和标签省略问题已解决

  • Turing 指标在 Summary 页面上正确报告

  • 所有基于字节的指标在缩放单位时都使用 1000 的因子,以遵循 SI 标准

  • CSV 导出正确对齐具有空条目的列

  • 修复了 GV11b 上 double_precision_fu_utilization 的指标计算

  • 修复了不正确的“selected”PC 采样计数器值

  • SpeedOfLight 部分对 Elapsed Cycles 使用“max”而不是“avg”周期指标

1.2. 已知问题

安装

  • 安装程序可能不会在安装期间显示所有补丁级别的版本号。

  • NVIDIA Nsight Compute 的 .run 安装程序的帮助中列出的一些命令行选项仅影响存档提取,而不影响安装阶段。 要将命令行选项传递给嵌入式安装程序脚本,请在 -- 之后以 -- -<option> 的形式指定这些选项。 安装程序脚本的可用选项为

    -help               : Print help message
    -targetpath=<PATH>  : Specify install path
    -noprompt           : No prompts. Implies acceptance of the EULA
    

    例如,仅指定选项 --quiet 会提取安装程序存档,而不会向控制台输出任何内容,但在安装期间仍会提示用户交互。 要在没有任何控制台输出或任何用户交互的情况下安装 NVIDIA Nsight Compute,请指定 --quiet -- -noprompt

  • 使用 SDK 管理器安装 NVIDIA Nsight Compute 工具后,需要手动将其二进制路径添加到您的 PATH 环境变量。

  • 另请参阅 系统要求 以获取更多安装说明。

启动和连接

  • 对于多种组合,不支持在远程目标/平台上启动应用程序。 有关详细信息,请参阅 平台支持。 使用命令行 ncu --mode=launch 在远程系统上手动启动应用程序,然后使用 UI 或 CLI 进行连接。

  • 在 NVIDIA Nsight Compute 连接对话框中,只能为一个目标平台指定远程系统。 从其当前目标平台中删除连接,以便能够将其添加到另一个平台。

  • 通过 SSH 加载 CUDA 源需要配置远程连接,并且连接的主机名/IP 地址与目标(如报告会话详细信息中所示)匹配。 例如,首选 my-machine.my-domain.com,而不是 my-machine,即使后者解析为相同。

  • 有关远程连接的其他问题在 远程连接 的文档中讨论。

  • NVIDIA Nsight Compute 和启动的目标应用程序之间的本地连接可能在某些配置为仅支持 IPv6 的 ppc64le 或 aarch64 (sbsa) 系统上不起作用。 在这些平台上,可以设置 NV_COMPUTE_PROFILER_LOCAL_CONNECTION_OVERRIDE=uds 环境变量以使用 Unix Domain Sockets 而不是 TCP 进行本地连接,以解决此问题。 在 x86_64 Linux 上,默认使用 Unix Domain Sockets,但可以使用 NV_COMPUTE_PROFILER_LOCAL_CONNECTION_OVERRIDE=tcp 强制进行本地 TCP 连接。

分析和指标

  • 不支持分析 32 位进程。

  • 不支持分析在 SLI 组中设备上执行的内核。 在这种情况下,会显示“不支持的 GPU”错误。

  • 在同一设备上存在其他上下文(例如 X 服务器或辅助 CUDA 或图形应用程序)时分析内核可能会导致 L2/FB(设备内存)相关指标的指标值发生变化。 具体而言,来自非分析上下文的 L2/FB 流量无法从指标结果中排除。 要完全避免此问题,请在没有辅助上下文访问同一设备的 GPU 上分析应用程序(例如,Linux 上没有 X 服务器)。

  • 在当前版本中,在同一 MIG 计算实例上执行任何其他 GPU 工作时分析内核可能会导致所有单元的指标值发生变化。 NVIDIA Nsight Compute 强制目标应用程序内的 CUDA 启动序列化,以确保这些内核不会相互影响。 有关更多详细信息,请参阅 序列化。 但是,通过目标进程中的其他 API 发出的 GPU 工作或由在同一 MIG 计算实例中同时运行的非目标进程创建的工作负载将影响收集的指标。 请注意,在其他 MIG 计算实例中运行 CUDA 进程是可以接受的,因为它们不会影响分析的 MIG 计算实例。

  • 在 Linux 内核设置 fs.protected_regular=1(例如,某些 Ubuntu 20.04 云服务提供商实例)中,root 用户可能无法访问 进程间锁定文件。 有关解决方法,请参阅 FAQ

  • 分析最多支持 32 个设备实例,包括 MIG 分区的实例。 分析第 33 个或更高的设备实例将导致不确定的数据。

  • 启用某些指标可能会导致 GPU 内核运行时间超过驱动程序的 watchdog 超时限制。 在这些情况下,驱动程序将终止 GPU 内核,从而导致应用程序错误,并且分析数据将不可用。 请在分析此类长时间运行的 CUDA 内核之前禁用驱动程序 watchdog 超时。

  • NVIDIA 虚拟 GPU (vGPU) 上不支持收集设备级指标,例如 NVLink 指标 (nvl*)。

  • 从 CUDA 11.4 和 R470 TRD1 驱动程序版本开始,NVIDIA Nsight Compute 在 vGPU 环境中受支持,这需要 vGPU 许可证。 如果在 20 分钟后未获得许可证,则从 GPU 报告的性能指标数据将不准确。 这是因为 vGPU 环境中的一项功能会降低性能,但会保留指定的功能 here

  • 不支持在 NVIDIA 实时迁移的虚拟机 上进行分析,并且可能导致未定义的行为。

  • 不支持启用多进程服务 (MPS) 的分析。

  • 当目标 GPU 配置为在任何 机密计算 模式下运行时,不支持分析。

  • 仅在 CUDA 12.7 或更高版本的驱动程序中支持使用设置 CU_FORCE_PTX_JIT=1 分析大多数指标。

  • 当使用 Range ReplayApplication Range Replay 进行分析时,如果多个 CUDA Green Contexts 处于活动状态且属于同一设备上下文,则范围结果将包含在所有 Green Contexts 上聚合的计数器值。 如果 Green Contexts 使用重叠的 SM 掩码,则即使对于 Green-Context 可归因指标 <../ProfilingGuide/index.html#cuda-green-contexts>`__ 也是如此。

  • NVLink Topology 部分不支持使用 NVSwitch 的配置。

  • NVIDIA Nsight Compute 不支持每个 NVLink 指标。

  • NVIDIA Nsight Compute 不支持 Logical NVLink Throughput 表格。

  • 设置降低的 NVLink 带宽模式不会影响 NVLink 指标的报告峰值。 所有峰值和相应的百分比都是根据未降低的 NVLink 带宽计算的。 在分析时使用 nvidia-smi 重新配置 NVLink 带宽模式可能会导致工具行为未定义。

  • 不支持分析可以启动设备图或属于设备可启动图的 CUDA 图内核节点。 请改用 Graph Profiling 模式。

  • Graph Profiling 模式下的分析在由图启动的流句柄指定的上下文中执行。 仅分析在此上下文中执行的内核节点。

  • 在早于 530.x 的 CUDA 驱动程序上,如果系统有多个物理 NVIDIA GPU,则不支持在 Windows Subsystem for Linux (WSL) 上进行分析。 这不受设置 CUDA_VISIBLE_DEVICES 的影响。

  • 通过 PerfWorks 收集软件计数器当前强制加载分析内核模块中的所有函数。 这会增加目标应用程序在进程生命周期剩余时间内的主机和设备内存占用。

  • 收集 Profile Series 时不支持 PM 采样。

  • 即使应用了上下文切换过滤,使用 PM 采样 在多个过程中收集的结果也可能无法在时间轴中完美对齐。

  • 对于使用 Work ID 功能收集的结果,设备上启动的集群、块、warp 和线程计数可能低于配置的值。 依赖于此类计数的指标将受到相应影响。

  • 在 Windows 上,在 MCDM 模式下,不支持通过 NVIDIA 控制面板更改对 GPU 性能计数器的访问。 有关更多详细信息,请参阅 ERR_NVGPUCTRPERM

  • 在 Blackwell GPU 上不支持收集 NVLink 芯片到芯片 (C2C) 指标。

兼容性

  • 在 std 输入/输出流上调用阻塞函数的应用程序可能会导致分析器停止,直到阻塞函数调用解决为止。

  • 由于 cuDF 中的问题,NVIDIA Nsight Compute 可能会在版本 0.6 和 0.7 中挂起使用 RAPIDS 的应用程序。

  • 不支持分析通过 clone() 启动的子进程。

  • 尚不支持分析使用 cuLaunchCooperativeKernelMultiDevice 启动的 Cooperative Groups 内核。

  • 在 Linux 系统上,当分析 bsd-csh 脚本时,将不会打印原始应用程序输出。 作为一种解决方法,请使用不同的 C-shell,例如 tcsh

  • 当在 GPU 分区上进行分析时,尝试使用 --clock-control 选项设置 GPU 时钟将失败。 请使用 nvidia-smi(与 NVIDIA 显示驱动程序一起安装)来控制整个 GPU 的时钟。 当 GPU 被分区时,这将需要管理权限。

  • 在 Linux aarch64 上,如果未设置 HOME 环境变量,则 NVIDIA Nsight Compute 将无法工作。

  • 如果应用程序启动 Cooperative Groups 内核,则 NVIDIA Nsight Compute 2020.1.0 到 2020.2.1 版本与 CUDA 驱动程序版本 460+ 不兼容。 分析将失败并显示错误“UnknownError”。

  • 在 Windows Server 2016 上收集 CPU 调用堆栈信息在某些情况下可能会挂起 NVIDIA Nsight Compute。 目前,唯一的解决方法是不指定选项 --call-stack 来跳过此类系统上的 CPU 调用堆栈收集。

  • 当分析脚本时,--target-processes all 可能会以实用程序可执行文件为目标,例如 xargsunamels。 为避免分析这些文件,请相应地使用 --target-processes-filter 选项。

  • 在移动平台上,应用程序重放模式不支持 --kill 选项。

  • NVIDIA Nsight Compute 可能会在 Windows 10 上显示 Unicode 名称和路径的无效字符。 作为一种解决方法,请使用第三方终端模拟器,例如 Git bash。

  • CPU 调用堆栈收集可能会导致使用 gcc 13.2 编译的设备函数的 CUDA 应用程序崩溃。

用户界面

  • NVIDIA Nsight Compute 中的 API 统计信息过滤器不支持单位。

  • 解析源文件时,仅考虑文件大小属性。 当前忽略时间戳。

  • 在 API Stream View 更新时,终止或断开 Interactive Profiling 活动中的应用程序可能会导致崩溃。

  • 有关 Acceleration Structure Viewer 的限制,请参阅 OptiX 库支持部分

  • 在 Linux 上从以前版本的 NVIDIA Nsight Compute 更新后,文件加载对话框可能不允许列调整大小和排序。 作为一种解决方法,可以编辑 ~/.config/QtProject.conf 文件以从 [FileDialog] 部分中删除 treeViewHeader 条目。

1.3. 支持

有关支持的平台和 GPU 的信息。

1.3.1. 平台支持

Host 表示 UI 可以在该平台上运行。 Target 表示我们可以在该平台上检测应用程序以进行数据收集。 在目标系统上使用检测启动的应用程序可以从大多数主机平台连接。 在一个系统上收集的报告可以在任何其他系统上打开。

表 1. NVIDIA Nsight Compute 支持的平台

主机

目标

Windows

Windows*、Linux (x86_64)

Windows Subsystem for Linux (WSL2)

Windows Subsystem for Linux (WSL2),作为 Linux (x86_64) 软件包的一部分。

Linux (x86_64)

Windows*、Linux (x86_64)、Linux (aarch64 sbsa)

Linux (ppc64le)

Linux (aarch64 sbsa)

Linux (aarch64 sbsa)

Linux (x86_64) (Drive SDK)

Windows*、Linux (x86_64)、Linux (aarch64)、QNX

macOS 11+ (x86_64, arm64)

Windows*、Linux (x86_64)

Linux (aarch64 l4t, Drive OS Linux)

Linux (aarch64 l4t, Drive OS Linux)

QNX

QNX

标有 * 的目标平台不支持从相应主机进行远程启动。 远程启动意味着可以从主机 UI 在目标系统上启动应用程序。 相反,必须从目标系统启动应用程序。

不支持分析 32 位进程。

1.3.2. GPU 支持

表 2. NVIDIA Nsight Compute 支持的 GPU 架构

架构

支持

Maxwell

Pascal

Volta GV100

Volta GV11b

Turing TU1xx

NVIDIA GA100

NVIDIA GA10x

NVIDIA GA10b

NVIDIA AD10x

NVIDIA GH100

NVIDIA GB10x

NVIDIA GB20x

NVIDIA Nsight Compute 中使用的大多数指标与 PerfWorks Metrics API 的指标相同,并遵循记录的 指标结构。 nvprof 中使用的指标与其在 NVIDIA Nsight Compute 中的等效指标之间的比较可以在 NVIDIA Nsight Compute CLI 用户手册 中找到。

1.3.3. 库支持

NVIDIA Nsight Compute 可用于分析 CUDA 应用程序,以及通过 NVIDIA 或第三方库使用 CUDA 的应用程序。 对于大多数此类库,其行为预计与直接使用 CUDA 的应用程序相同。 但是,对于某些库,NVIDIA Nsight Compute 具有某些限制、替代行为,或者需要在分析之前执行非默认设置步骤。

OptiX

NVIDIA Nsight Compute 支持分析 OptiX 应用程序,但有一些限制。

  • 内部内核

    OptiX 启动的某些不包含用户定义代码的内核被赋予通用名称 NVIDIA internal。 这些内核会显示在 NVIDIA Nsight Compute UI 的 API Stream 中,并且可以在 UI 以及 NVIDIA Nsight Compute CLI 中进行分析。 但是,没有 CUDA-C 源代码、PTX 或 SASS 可用于它们。

  • 用户内核

    OptiX 启动的内核可以包含用户定义的代码。 OptiX 在 API Stream 中使用自定义名称标识这些内核。 此名称以 raygen__(对于“光线生成”)开头。 这些内核会显示在 API Stream 中,并且可以在 UI 以及 NVIDIA Nsight Compute CLI 中进行分析。 Source 页面显示用户定义的 CUDA-C 源代码、PTX 和 SASS。 内核的某些部分,包括包含 OptiX 内部代码的设备函数,在 Source 页面中不可用。

  • SASS

    当 SASS 信息在分析报告中可用时,某些指令可能在 Source 页面中不可用,并显示为 N/A

OptiX 可遍历句柄的 Acceleration Structure Viewer 当前具有以下限制

  • macOS 上不支持 Acceleration Structure Viewer

  • 不支持使用多级实例查看实例加速结构。

  • 不支持将运动可遍历对象应用于加速结构。

以下功能集按 OptiX API 版本支持

OptiX API 版本

内核分析

API 拦截

资源跟踪

6.x

7.0 - 9.0

仅当在应用程序的环境中将 OPTIX_FORCE_DEPRECATED_LAUNCHER 变量设置为 CBL1 时,交互式分析活动才支持 OptiX 应用程序。

1.3.4. 系统要求

Linux 和 WSL

在所有 Linux 平台上,NVIDIA Nsight Compute CLI 需要 GLIBC 版本 2.15 或更高版本。 在 x86_64 上,NVIDIA Nsight Compute UI 需要 GLIBC 版本 2.17 或更高版本。 在 Linux (aarch64 sbsa) 上,NVIDIA Nsight Compute UI 需要 GLIBC 版本 2.26 或更高版本。

NVIDIA Nsight Compute UI 需要安装多个软件包才能启用 Qt。 请参阅 Qt for X11 Requirements。 当执行缺少依赖项的 ncu-ui 时,会显示一条错误消息,其中包含有关缺少软件包的信息。 请注意,即使您的系统中可能缺少多个软件包,也一次只会显示一个软件包。 对于选定的操作系统,以下命令在 X11 上安装 NVIDIA Nsight Compute 所需的软件包

  • Ubuntu 18.04

    apt install libopengl0 libxcb-icccm4 libxcb-image0 libxcb-keysyms1 libxcb-render-util0 libxcb-xkb1 libxkbcommon-x11-0

  • Ubuntu 20.04

    apt install libopengl0 libxcb-icccm4 libxcb-image0 libxcb-keysyms1 libxcb-render-util0 libxcb-xinerama0 libxcb-xkb1 libxkbcommon-x11-0

  • RHEL 8.6

    yum install libglvnd-opengl libxcb libxkbcommon-x11

在 Windows Subsystem for Linux (WSL) 上的性能分析仅在 WSL 版本 2 中受支持。在 Windows 10 WSL 上,操作系统内部版本号为 19044 及更高版本,且 NVIDIA 显示驱动程序版本为 545 或更高版本时,支持性能分析。对于系统内存超过 1 TB 的 Windows 10 WSL 系统,不支持性能分析。在 Windows 11 WSL 上,当 NVIDIA 显示驱动程序版本为 525 或更高版本时,支持性能分析。

Linux (x86_64) NVIDIA Nsight Compute 软件包可以使用,并且应直接安装在 WSL2 中。只要可以通过 SSH 访问,从 WSL2 进行远程性能分析与常规 Linux (x86_64) 主机和目标的工作方式相同。必须在 Windows 主机的 NVIDIA 控制面板中启用对 NVIDIA GPU 性能计数器的访问。另请参阅 CUDA on WSL User Guide

Windows

仅 Windows 10 和 11 受支持作为主机和目标。

Visual Studio 2019 可再发行组件包不会由 NVIDIA Nsight Compute 安装程序自动安装。解决方法是手动安装 x64 版本的“Microsoft Visual C++ Redistributable for Visual Studio 2019”。安装程序链接在 Visual Studio 的主下载页面上:https://www.visualstudio.com/downloads/,或者直接从以下链接下载:https://go.microsoft.com/fwlink/?LinkId=746572

注意事项

注意事项

所有 NVIDIA 设计规范、参考板、文件、图纸、诊断程序、列表和其他文档(统称为“材料”,单独或合并)均按“原样”提供。NVIDIA 不对这些材料作任何明示、暗示、法定或其他形式的保证,并且明确声明不承担任何关于不侵权、适销性和适用于特定用途的默示保证。

所提供的信息被认为是准确且可靠的。但是,NVIDIA 公司对使用此类信息造成的后果,或因使用此类信息而可能导致的侵犯第三方专利或其他权利的行为不承担任何责任。在 NVIDIA 公司的任何专利权下,未通过暗示或其他方式授予任何许可。本出版物中提到的规格如有更改,恕不另行通知。本出版物取代并替换先前提供的所有其他信息。未经 NVIDIA 公司的明确书面批准,NVIDIA 公司产品不得用作生命维持设备或系统中的关键组件。

商标

NVIDIA 和 NVIDIA 徽标是 NVIDIA 公司在美国和其他国家/地区的商标或注册商标。其他公司和产品名称可能是与其相关的各自公司的商标。