如何在Linux中使用NVIDIA Nsight评测PyCUDA代码?

如何在Linux中使用NVIDIA Nsight评测PyCUDA代码?,cuda,profiling,profiler,nvidia,Cuda,Profiling,Profiler,Nvidia,这个问题几乎与使用CUDA5 for Linux的新NVIDIA Nsight IDE相同 我有一个PyCUDA Python脚本,我想使用fancy Nsight对其进行分析 我设置了一个Build External Tools配置,指向下面包含的具有可执行权限的示例脚本。然后我可以运行它,并在控制台中查看打印输出。然后我进入概要模式并单击Run->Profile——我在控制台中看到打印输出,但没有可见的概要信息。在Nsight中运行C/CUDA程序时,如何获得计时图、占用率计算器以及NVID

这个问题几乎与使用CUDA5 for Linux的新NVIDIA Nsight IDE相同

我有一个PyCUDA Python脚本,我想使用fancy Nsight对其进行分析

我设置了一个Build External Tools配置,指向下面包含的具有可执行权限的示例脚本。然后我可以运行它,并在控制台中查看打印输出。然后我进入概要模式并单击Run->Profile——我在控制台中看到打印输出,但没有可见的概要信息。在Nsight中运行C/CUDA程序时,如何获得计时图、占用率计算器以及NVIDIA对代码的建议

这里主要是命令行,如果我的问题没有包括关键信息,很抱歉。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

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

有一件事你可以试试,尽管我自己没有试过:

在主菜单上,选择运行->配置文件配置。。。 以C/C++应用程序的形式输入Python解释器,例如“/usr/bin/Python” 指定项目列表中的任何现有项目。 在“参数”选项卡上,指定脚本文件的路径。 按右下角的Profile。
我没有安装pycuda,因此分析脚本的过程按预期失败…

我使用nvvp获取时间线和程序分析。只需chmod755脚本并添加一个/usr/bin/env python位于顶部,并将其交给nvvp。

如果从命令行运行nvvp,然后在visual profiler启动向导/对话框中输入命令以那样运行pyCUDA应用程序,会发生什么?只是想了解这是eclipse问题还是VisualProfiler问题。我需要的是nvvp!它能够分析我的代码,并向我展示我想看到的一切。我将使用nvvp而不是nsight。