【问题标题】:NVIDIA Visual Profiler: Insufficient kernel bounds dataNVIDIA Visual Profiler:内核边界数据不足
【发布时间】:2020-12-08 03:36:52
【问题描述】:

我正在尝试了解为什么我的 CUDA 内核的性能相对较低,我希望通过 NVIDIA 分析器得到一些答案。

我的 CUDA 程序是一个大型应用程序的“简化”版本,用于隔离和运行有问题的内核。该程序多次启动内核,以测量其执行时间作为多次启动的平均值。在计时循环之后,发出从设备到主机的内存副本,以确保所有内核调用都已完成。该程序是用CUDA C++编写的。

这就是我构建程序的方式:

main.o: main.cu
    nvcc -res-usage -arch=sm_61  -c $<

main: main.o stopwatch.o
    g++ -o $@ $^ -lcudart -L/usr/local/cuda-11.0/lib64

此测试是在配备 Intel CPU 和 NVIDIA GeForce GTX 1070 的 PC 上完成的。操作系统是 Ubuntu 20.04,带有来自 NVIDIA 网站的新安装的 CUDA 11 以及驱动程序 450.51.06:

nvidia-smi:

+-----------------------------------------------------------------------------+
| NVIDIA-SMI 450.51.06    Driver Version: 450.51.06    CUDA Version: 11.0     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|                               |                      |               MIG M. |
|===============================+======================+======================|
|   0  GeForce GTX 1070    On   | 00000000:01:00.0  On |                  N/A |
| 28%   38C    P8     8W / 151W |    317MiB /  8111MiB |      3%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+

以下命令用于生成分析文件:

sudo /usr/local/cuda-11.0/bin/nvprof -o main.nvvp --profile-from-start 关闭 ./main

我也尝试从一开始就进行分析,但它会导致以下相同的问题。

以下命令用于启动可视分析器:

nvvp -vm /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java main.nvvp

Visual profiler 会引导我完成几个步骤,当涉及到“执行内核分析”时,程序会告诉我:

内核边界数据不足。计算计算所需的数据, 无法收集内核的内存和延迟范围

我的 GPU 上没有这种详细的分析吗? (可能是因为是玩家卡)

【问题讨论】:

  • 您可能想尝试添加--analysis-metrics 开关。见here。此外,由于您使用的是--profile-from-start off,我假设您的代码中有一些分析器 API 命令。
  • @RobertCrovella 甜蜜!那解决了它。分析器现在显示内核分析。
  • 有人可以添加一个简短的答案来解释未来访问者的解决方案吗?

标签: cuda nvprof nvvp


【解决方案1】:

nvprof 默认情况下只会在它生成的输出文件中捕获少量信息。当输出文件导入nvvp 时,这足以生成应用程序时间线,但不足以启用nvvp 的所有不同功能。

根据documentation,建议将--analysis-metrics 开关用于nvprof

--analysis-metrics 在分析器文档中被提及大约 6 次,因此您可能只想搜索它以查看其使用的所有参考或建议。

请注意,--analysis-metrics 可以捕获大量信息。对于大型、复杂的应用程序,它可能会大大增加分析器处理数据的时间。因此,如果您明确知道要查找哪些数据,则可能希望指定特定的指标。但是,如果没有--analysis-metrics,导入文件时各种nvvp 分析工具可能无法正常工作。

【讨论】:

    猜你喜欢
    • 2023-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-23
    • 1970-01-01
    • 2021-12-04
    • 2017-09-30
    • 2013-08-31
    相关资源
    最近更新 更多