这个问题与如何使用 Visual Profiler 分析 PyCuda 代码几乎相同?除了用于 Linux 的带有 CUDA 5 的新 NVIDIA Nsight IDE。
我有一个 PyCUDA Python 脚本,我想使用精美的 Nsight 对其进行分析。
我设置了一个构建外部工具配置,指向示例脚本(具有可执行权限,包括在下面)。然后我可以运行它,并在控制台中查看打印输出。然后我进入 Profile 模式并单击 Run -> Profile---我在控制台中看到打印输出,但看不到分析器信息。当我在 Nsight 中运行 C/CUDA 程序时,如何获得时序图和占用计算器以及 NVIDIA 对我的代码的建议?
这里的总 IDE 菜鸟(主要是命令行),如果我的问题不包含关键信息,对不起。Ubuntu 11.10,PyCUDA 2012.1。
例子.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