NVIDIA Visual Profiler:内核边界数据不足



我正试图了解为什么我的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

此测试是在配备英特尔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--从开始的配置文件关闭/主

我也从一开始就尝试过分析,但它导致了下面相同的问题。

以下命令用于启动可视化探查器:

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

Visual探查器引导我完成几个步骤;执行内核分析";程序告诉我:

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

这种详细的评测在我的GPU上不可用吗?(可能是因为这是一张玩家卡(

默认情况下,

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

根据文档,建议将nvprof--analysis-metrics开关用于此类用途。

在探查器文档中,--analysis-metrics被引用了大约6次,所以您可能只想在它上搜索,以查看所有关于它的引用或建议。

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

相关内容

  • 没有找到相关文章

最新更新