2012-01-09 12 views
0

[更新]compiler.SourceModule(kernel_code)からの警告メッセージを出力するにはどうすればよいですか? @flipchartの助けを借りて、私はNVCCトラフPyCUDAに正しいパラメータを渡すことができましたが、コンパイラの警告にアクセスする場所はまだ分かりません。PyCUDAのすべてのNVCC警告を表示

[元の質問]

直接1は、コンパイラスイッチ-Wallを使用することができますNVCCを使用*。どのようにピカダでこれを保管しますか?

私は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'

ソースの問題は、私はfloatからintにinexplicit変換を見落としているので、私は、一日のデバッグを費やしていること、です。 * Warnings from system-header with "--compiler-options -Wall" since CUDA 3.0

答えて

5

-Wallオプション

nvccコンパイラオプションではなく、サポートするコンパイラ(g++またはcl.exe)に渡される1。オプション--compiler-options -Wallを渡して、nvccにそのオプションがサポートコンパイラ用であることを示す必要があります。あなたのpythonのコードでは:

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

PyCudaは、それ以外の場合は好きではないnvcc引用符で全体を包み込み、リスト項目として指定された各オプションを望んでいるようです。

+0

まだ 'nvcc fatal:Unknown option '-compiler-options -Wall''が表示されます。「-Wall」はここには表示されません:http://camolab.googlecode.com/svn-history/r18/ trunk/mycode/cuda/nvcc-help.txt – Framester

+1

'compiler-options'の前に2つのハイフンが必要です:' --compiler-options'。 '-Wall'はそこにはリストされません。なぜなら、' nvcc'オプションではないからです。私が私の答えで言ったように。 'nvcc'は対応するコンパイラにそのパラメータを渡します – flipchart

+0

不正確です。 '' --compiler-options -Wall''を渡すと、エラーメッセージにハイフンが1つしか表示されません。エラーメッセージで2つのハイフンを取得するには、関数呼び出しで3番目のハイフンを追加する必要があります。なぜそれが起こるのか分かりません。 – Framester

関連する問題