Python 如何使用可视化分析器分析PyCuda代码?
当我创建新会话并告诉可视化探查器启动python/pycuda脚本时,我收到以下错误消息:Python 如何使用可视化分析器分析PyCuda代码?,python,profiling,cuda,pycuda,Python,Profiling,Cuda,Pycuda,当我创建新会话并告诉可视化探查器启动python/pycuda脚本时,我收到以下错误消息:程序“”的执行运行#1失败,退出代码:255 以下是我的偏好: 启动:python”/pathtopycudafile/mysuperkernel.py“ 工作目录:“/pathtopycudafile/mysuperkernel.py” 参数:[empty] 我在Ubuntu 10.10下使用CUDA 4.0。64位。分析编译的示例是有效的 p、 我知道有这么一个问题,但似乎是一个无关的问题 最小示例
程序“”的执行运行#1失败,退出代码:255
以下是我的偏好:
- 启动:
python”/pathtopycudafile/mysuperkernel.py“
- 工作目录:
“/pathtopycudafile/mysuperkernel.py”
- 参数:
[empty]
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))
pycuda.autoinit.context.detach()
示例设置
错误消息
指定compute profiler可执行文件的方式有问题。如果我在您发布的代码顶部添加一行hash-bang:
#!/usr/bin/env python
然后授予python文件可执行权限,compute profiler会毫无怨言地运行代码,我得到以下结果:
您可以使用两种方法 启动脚本解释器
Launch python
Arguments "/pathtopycudafile/mysuperkernel.py"
启动可执行脚本
Launch "/pathtopycudafile/mysuperkernel.py"
Arguments [blank]
mysuperkernel.py must be executable (chmod +x)
mysuperkenrel.py must have a #! to specify the path to the interpreter
请参见@talonmies answer这一点也不无关,答案正是我们需要做的。CUDA上下文需要在执行结束时显式销毁,以便刷新保存配置文件数据的缓冲区并将其写入磁盘。我总是在可执行文件中用hash-bang分析python代码,只要在退出之前调用
pycuda.autoinit.context.detach()
。可能是@talonmies的重复,我在脚本末尾添加了pycuda.autoinit.context.detach(),但仍然会出现相同的错误消息。'Execution run#1 of program''失败,退出代码:255'在你的问题中发布一个最小的复制案例,有人可能有时间来看看它。