cuda - 如何在 Linux 中使用 NVIDIA Nsight 分析 PyCUDA 代码?

标签 cuda profiling profiler nvidia

这个问题和How to profile PyCuda code with the Visual Profiler?几乎一样除了适用于 Linux 的带有 CUDA 5 的新 NVIDIA Nsight IDE 之外。

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

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

这里完全是 IDE 菜鸟(主要是命令行),如果我的问题不包含关键信息,抱歉。 Ubuntu 11.10、PyCUDA 2012.1。

Nsight screenshot

示例.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 Edition 目前不支持调试 PyCUDA 应用程序。

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

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

我没有安装 pycuda,因此分析您的脚本按预期失败...

关于cuda - 如何在 Linux 中使用 NVIDIA Nsight 分析 PyCUDA 代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13188049/

相关文章:

python - 在Python中测量多线程代码的处理时间

java - 在Java中查找每个语句的执行计数

c++ - 我的机器上 OpenCV 算法的 GPU 版本比 CPU 版本慢?

ubuntu - libcudart.so 的路径是什么?

cuda - Geforce 9500 GT 可以运行 CUDA Toolkit 5.0 吗?

c++ - 英特尔引脚 : measuring empty instrumentation overhead

c# - 在 C# 中显式释放内存

c - 在 C 文件中使用 float4

java - 是否有 MSDN 成员(member)资格可以获得的 Java Profiler?

oracle - 在 Oracle 中捕获/捕获存储过程调用(带参数)的快速方法?