【问题标题】:How to profile PyCUDA code with NVIDIA Nsight in Linux?如何在 Linux 中使用 NVIDIA Nsight 分析 PyCUDA 代码?
【发布时间】:2012-11-02 01:32:47
【问题描述】:

这个问题与How to profile PyCuda code with the Visual Profiler? 几乎相同,只是关于带有 CUDA 5 for Linux 的新 NVIDIA Nsight IDE。

我有一个 PyCUDA Python 脚本,我想使用精美的 Nsight 对其进行分析。

我设置了一个构建外部工具配置,指向示例脚本(具有可执行权限,包括在下面)。然后我可以运行它,并在控制台中查看打印输出。然后我进入 Profile 模式并单击 Run -> Profile---我在控制台中看到打印输出,但看不到分析器信息。当我在 Nsight 中运行 C/CUDA 程序时,如何获得时序图和占用计算器以及 NVIDIA 对我的代码的建议?

这里的总 IDE 菜鸟(主要是命令行),如果我的问题不包括关键信息,对不起。 Ubuntu 11.10,PyCUDA 2012.1。

example.py:

#!/usr/bin/env python
import pycuda.autoinit
import pycuda.driver as drv
import numpy

from pycuda.compiler import SourceModule

mod = SourceModule("""
__global__ void multiply_them(float *dest, float *a, float *b)
{
  const int i = threadIdx.x;
  dest[i] = a[i] * b[i];
}
""")

multiply_them = mod.get_function("multiply_them")

a = numpy.random.randn(400).astype(numpy.float32)
b = numpy.random.randn(400).astype(numpy.float32)

dest = numpy.zeros_like(a)
multiply_them(
        drv.Out(dest), drv.In(a), drv.In(b),
        block=(400,1,1), grid=(1,1))

print "error:", numpy.sum(numpy.abs(dest - a*b).ravel())
print "Done"
#pycuda.autoinit.context.detach() # seems to break PyCUDA 2012.1

【问题讨论】:

  • 如果您从命令行运行 nvvp 然后输入命令以这种方式运行您的 pyCUDA 应用程序(在可视化分析器启动向导/对话框中)会发生什么?只是想了解这是 Eclipse 问题还是视觉分析器问题。
  • nvvp 是我需要的!它能够分析我的代码并向我展示我想看到的一切。我将使用 nvvp 而不是 nsight。

标签: cuda profiling profiler nvidia


【解决方案1】:

Nsight Eclipse 版目前不支持调试 PyCUDA 应用程序。

你可以尝试一件事(我自己没有尝试过):

  1. 在主菜单上,选择运行->配置文件配置...
  2. 输入您的 Python 解释器(例如 '/usr/bin/python')作为“C/C++ 应用程序”
  3. 在“项目”列表中指定任何现有项目。
  4. 在“参数”选项卡上指定脚本文件的路径。
  5. 按右下角的“个人资料”。

我没有安装 pycuda,所以分析你的脚本失败了...

【讨论】:

    【解决方案2】:

    我使用nvvp 来获取时间线和程序分析。只需chmod 755 脚本并在顶部添加#!/usr/bin/env python 并将其提供给nvvp。

    【讨论】:

      猜你喜欢
      • 2011-07-16
      • 2014-08-30
      • 2011-10-15
      • 2014-11-11
      • 2016-11-10
      • 2012-09-14
      • 1970-01-01
      相关资源
      最近更新 更多