2

我正在尝试确定我的 GPU 代码中出现减速的位置。我已经验证了代码本身可以正确运行(它不会抛出任何错误、输出正确、干净地完成等)。当我尝试在 Visual Profiler 中分析代码时,它似乎运行正常,将正确的中间输出转储到标准输出。正在使用 GPU(我已经检查了 cuda-gdb 并printf()从我的内核中转储 s)。完成所有代码后,Visual Profiler 会报告 viper 已终止可执行文件。但是,不会生成时间线。相反,主窗口显示了 0、10、20、25 微秒,它们全部“折叠”在彼此之上。当我告诉 Visual Profiler 运行所有分析选项时,它会顺利运行 24 次,但仍然没有生成时间线。

我在带有 GeForce 460 的 Ubuntu x86_64 上使用 CUDA 4.2,驱动程序版本 295.41。

4

2 回答 2

2

当视觉分析器无法生成时间线时,通常是因为它无法找到分析所需的组件。该组件是一个位于 /usr/local/cuda/lib64 中的共享库,名为 libcuinj.so。那条路径在你的 LD_LIBRARY_PATH 上吗?您如何启动 Visual Profiler?/usr/local/cuda/bin/nvvp 中的脚本应该为您正确设置路径。

4.2版本的visual profiler在找不到这个共享库的时候,并没有很好的报错。即将发布的 5.0 版本的可视化分析器在这方面有更好的错误报告。

于 2012-08-01T23:51:47.117 回答
0

我不知道在 Linux 下是否也一样,但在 Windows 下的 Nsight 中,有两种基本类型的 profiling 可以运行。“应用程序跟踪”和“配置文件”。只有在应用程序跟踪下,您才能获得时间表。应用程序跟踪记录进行 CUDA 和内核调用时的时间戳。Profile 设置提供了分析内核的选项。它从 GPU 读取硬件计数器并生成与一个或多个内核相关的性能信息(并且没有时间线)。

于 2012-07-31T21:56:30.963 回答