问题标签 [nvvp]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
docker - 如何在不使用 ctrl-c 的情况下停止运行 TensorRT 服务器(用于使用 nvprof 进行分析)
我正在运行 nvprof 来分析 TensorRT 服务器-客户端模型的 GPU 使用情况。这就是我正在做的事情:
在启用了 TensorRT 的 docker 容器内的终端 1 上运行 nvprof,
nvprof --profile-all-processes -o results%p.nvvp
在与第一步相同的 docker 容器中在终端 2 上运行 TensorRT 服务器
作为前两个步骤,在不同的 docker 容器中请求终端 3 上的服务。
当第三步完成时,客户端正常存在,但服务器和 nvprof 保持运行。所以很自然地,我用 ctrl-c 关闭了 TensorRT 服务器。当我这样做时,在终端 1(运行 nvprof)上,它告诉我应用程序出现内部分析错误,并且生成的输出文件上没有任何时间线信息。(它只有 380KB 大,而其他文件运行的持续时间大致相同,2-3 分钟,至少大约几 MB)
似乎用 ctrl-C 结束 TensorRT 服务器是问题所在,所以我尝试给 nvprof 一个超时选项,即nvprof --profile-all-processes -o results%p.nvvp --timeout 200
在第一步中(200 秒足以完成整个过程)但这确实使 nvprof 提高此消息:Execution timeout, stopping the application...
,它实际上并没有停止 TensorRT 服务器。
基本上,我想知道是否有任何方法可以在不使用 ctrl-C 的情况下正常停止正在运行的 TensorRT 服务器退出,或者是否有使用 nvprof 和 TensorRT 一起解决此问题的解决方法。
任何帮助或朝着正确的方向推动将不胜感激。谢谢!
PS原始问题大约3小时前在这里发布。
cuda - NVIDIA Visual Profiler:内核边界数据不足
我试图了解为什么我的 CUDA 内核的性能相对较低,我希望通过 NVIDIA 分析器得到一些答案。
我的 CUDA 程序是一个大型应用程序的“简化”版本,它隔离和运行有问题的内核。该程序多次启动内核,以测量其执行时间作为多次启动的平均值。在计时循环之后,发出从设备到主机的内存副本,以确保所有内核调用都已完成。该程序是用 CUDA C++ 编写的。
这就是我构建程序的方式:
此测试是在配备 Intel CPU 和 NVIDIA GeForce GTX 1070 的 PC 上完成的。操作系统是 Ubuntu 20.04,带有来自 NVIDIA 网站的新安装的 CUDA 11 以及驱动程序 450.51.06:
以下命令用于生成分析文件:
sudo /usr/local/cuda-11.0/bin/nvprof -o main.nvvp --profile-from-start off ./main
我也尝试从一开始就进行分析,但它会导致下面的相同问题。
以下命令用于启动可视分析器:
nvvp -vm /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java main.nvvp
视觉分析器引导我完成几个步骤,当涉及到“执行内核分析”时,程序告诉我:
内核边界数据不足。无法收集计算内核的计算、内存和延迟范围所需的数据
我的 GPU 上没有这种详细的分析吗?(可能是因为是玩家卡)
cuda - CUDA Profiler 中“flop_count_sp”和“inst_fp_32”指标的含义
根据分析器用户指南:
flop_count_sp:非谓词线程执行的单精度浮点运算数(加法、乘法和乘法累加)。每个乘法累加操作都会为计数贡献 2。该计数不包括特殊操作。
inst_fp_32:非谓词线程(算术、比较等)执行的单精度浮点指令数
我有一个带有探查器输出的内核,可以添加到以下内容:
鉴于这些指标中的数字,我想知道这里的操作是什么,指令是什么?似乎 afma
是一个指令,但是两个操作。而add
andmul
是一个指令和一个操作。由于 SASS 程序集由分析器计算。是否有任何指令不计为操作?或相反亦然。我只想知道 nvprof 和 nvvp 指标的上下文。
另外,当我们谈论 TFLOP/s 的峰值性能时,OP
这里对应于我猜的操作?如果我想估计诸如计算到全局内存访问(CGMA)之类的东西,我应该使用flop_count_sp
而不是inst_fp_32
计算部分吗?提前致谢。
java - NVIDIA Visual Profiler 在启动时崩溃
我正在使用 NVIDIA 的 Visual Profiler (nvvp) 在 Pascal GPU 上分析内核(因为Nsight Compute 不支持这些内核) - 在 Devuan GNU/Linux 4 系统上使用 CUDA 11.4。
当我运行时nvvp
,它立即崩溃,说:
为什么会发生这种情况,我该如何规避/修复此错误?
编辑:在我的系统上,默认的 JAVA VM 是:openjdk 17-ea 2021-09-14。如果我使用不同的已安装 vm,例如/usr/lib/jvm/java-11-openjdk-amd64/bin/java
,我会得到相同的错误。来自https://jdk.java.net/archive/的 Java 16 的 JDK 也不会改变任何事情。添加--illegal-access=permit
有人向我建议的内容 - 也没有帮助。
windows - 探查器(nvvp 和 nvprof)不显示“页面错误”信息
我正在分析NVIDIA 开发人员论坛上的CUDA 初学者统一内存中提供的测试代码。
代码:
问题:作者提供的分析结果显示了有关“页面错误”的信息,但是当我运行nvprof
和nvvp
分析器时,我没有得到任何有关页面错误的信息。是否有任何标志或需要明确设置的东西才能获取该信息?
我的 nvprof 输出:
我的 nvvp 分析结果: