大規模なプロジェクトの一環として、奇妙に一貫したバグに出くわしました。これは理解できませんが、典型的な「ブラック ボックス」バグです。で実行するとcuda-gdb python -m pycuda.debug prog.py -args
、正常に実行されますが、遅くなります。pycuda.debug をドロップすると壊れます。一貫して、複数カーネル実行のまったく同じ時点で。
説明する; 私は(現在3つの)カーネルを持っており、異なるグリッドとブロックの配置で使用され、より大きな最適化問題の「スライス」を解決しています。これらは厳密に言えば、機能するかどうかのどちらかです。関数自体には「ここにいくつかのデータがあります」としか言われず、データの内容以外には、入力データが分割されているかどうかにかかわらず、反復回数などの何もわからないためです。ではなく、この時点までは完璧に機能します。
基本的に、デバッグ シンボルを GDB に公開する pycuda.debug なしでは何が起こっているのかわかりませんが、pycuda.debug で問題を確認することもできません。
pycuda は実際に何をするので、カーネル コードで何を探すべきかがわかりますか?