CUDAにはたくさんのドキュメントとガイドがありますが、私が見つけられなかったのは、コンパイルするが、「不特定の起動失敗」などの不可解で漠然としたエラーメッセージを受け取るカーネルを診断する方法の説明です。通常の「これらのブロック/グリッド構造は意味がありますか?」等
どういうわけかcubinファイルを傍受し、メモリ構造などの静的分析を行うことはできますか?私の許しを許してください、しかし私はどこにも決定的な、ばかガイドを見つけることができません。
みなさん、良い週末をお過ごしください。
私が探しているもの
- cubin中間ファイルを分離する方法
- 何が起こっているのかを理解するために後でそれをどうするか、具体的には、コードがハードウェア要件に違反していないか、またはどこかで1つずつエラーがないかどうかを確認するためにレジスタとメモリ構成を行います。
後でこれに遭遇する人のために(私は数ヶ月後に自分のクエリに表示され続けるSO質問を作成する習慣があるようです...)CUDA-Memcheckは、「エラーのチェック」ハンドラーよりもはるかに興味深い応答を提供します。例えば
========= Error: process didn't terminate successfully
========= Invalid __global__ write of size 4
========= at 0x00000040 in decomp
========= by thread (1,0,0) in block (0,0,0)
========= Address 0x00101024 is out of bounds
=========
========= ERROR SUMMARY: 1 error
そのエラーメッセージを説明する必要さえありません...