0

[更新]如何输出警告信息compiler.SourceModule(kernel_code)?在@flipchart 的帮助下,我能够通过 PyCUDA 将正确的参数传递给 NVCC,但我仍然不知道在哪里访问编译器警告。

[原问题]

直接使用 NVCC 可以使用编译器开关-Wall*. 如何在 pycuda 中存档?

我试过mod = compiler.SourceModule(kernel_code,options=['-Wall'])了,但错误消息指出:

pytools.prefork.ExecError: error invoking 'nvcc --cubin -Wall -arch sm_11 -I/usr/local/lib/python2.6/dist-packages/pycuda-0.94.2-py2.6-linux-x86_64.egg/pycuda/../include/pycuda kernel.cu': status 255 invoking 'nvcc --cubin -Wall -arch sm_11 -I/usr/local/lib/python2.6/dist-packages/pycuda-0.94.2-py2.6-linux-x86_64.egg/pycuda/../include/pycuda kernel.cu': nvcc fatal : Unknown option 'Wall'

源问题是,我花了一整天的时间调试,因为我忽略了从floatto的不明确转换int

*自 CUDA 3.0 以来,带有“--compiler-options -Wall”的系统头警告

4

1 回答 1

5

-Wall选项不是nvcc编译器选项,而是传递给支持编译器(g++cl.exe)的选项。您需要传入选项--compiler-options -Wall以指示nvcc该选项适用于支持的编译器。在你的python代码中:

mod = compiler.SourceModule(kernel_code,options=['--compiler-options','-Wall'])

PyCuda似乎希望将每个选项指定为列表项,否则它将整个内容用nvcc不喜欢的引号括起来。

于 2012-01-10T03:21:23.160 回答