cuLaunchKernel functionのNVidiaドキュメントによれば、CUDA 3.2以降でコンパイルされたカーネルには、パラメータリストに関する情報が含まれています。この情報をプログラムでCU関数ハンドルから取得する方法はありますか?カーネルのCU関数ハンドルから引数の数と各引数のサイズをバイト単位で知る必要があります。上記のNVidiaのドキュメントでは、この情報が存在すると言っていますが、この情報にアクセスするためのプログラム的な方法を示すCUDAドキュメントのどこにも触れていません。CUDA 4.0+カーネルのパラメータリスト情報を取得するにはどうすればよいですか?
もう少し説明を追加する:私はミドルウェアシステムを使って作業しています。そのフロントサイドライブラリは、ターゲットシステム上のlibcuda(ドライバAPIライブラリ)を置き換えます。その後、GPGPUリソースが使用されている別のホスト上のデーモンとして背面が実行され、そのマシン上の実際のlibcudaが呼び出されます。 cuLaunchKernelでこれを行う他のミドルウェアソリューションもありますので、間違いなく可能です。また、cuLaunchKernelに渡すポインタからパラメータを解析する方法を知るために、CUDA自身もこの情報を使用します。
編集:元々、このメタデータが誤って紹介されたCUDAバージョンがありました。 cuLaunchKernel documentationによれば、4.0ではなく3.2であった。
CUfunctionはカーネルで、接頭辞は__global__です。 CUfunctionの議論の大きさが必要ですか?あなたがカーネルを持っているなら、それを見つけることができます。 – ahmad
はい、私は引数のサイズが必要です。私はカーネルのソースを持っておらず、ハンドル(cuModuleGetFunction()の前の呼び出しから返されたものと思われます)。具体的には、引数の数と各引数のサイズが必要です。 – reirab