私は他のアプリでこれを行いましたが、何らかの理由で現在のアプリでは機能しません。
これは、Cuda4.2を使用してVS2010で動作するコードスニペットです。問題を解決せずに、VS内とVS外の両方でptxファイルをコンパイルしました。
CUmodule Module = NULL;
int rc7 = cuModuleLoad(&Module, CubinName); // needs bin
if (rc7 == 0) {
rc = cuModuleGetFunction( &cuF_makeProcFrame, Module, "makeProcFrame" );
}
rc=500を取得しています-関数が見つかりません。
テキストエディタでptxファイルを開くと、次のように表示されます。
.entry _Z13makeProcFrame14cudaPitchedPtriiii(
.param .align 4 .b8 _Z13makeProcFrame14cudaPitchedPtriiii_param_0[16],
.param .u32 _Z13makeProcFrame14cudaPitchedPtriiii_param_1,
.param .u32 _Z13makeProcFrame14cudaPitchedPtriiii_param_2,
.param .u32 _Z13makeProcFrame14cudaPitchedPtriiii_param_3,
.param .u32 _Z13makeProcFrame14cudaPitchedPtriiii_param_4
)
そして最後に、CUDAコード自体に次の行があります。
__global__ void makeProcFrame(
cudaPitchedPtr YProcBasePtr,
int numFrames,
int width,
int height,
int lineBytes
)
関数が見つからずにエラーが返される理由を誰かに教えてもらえますか?
編集:コンパイル用のバッチファイルは次のとおりです。
"C:\ Program Files \ NVIDIA GPU Computing Toolkit \ CUDA \ v4.2 \ bin \ nvcc.exe" -gencode = arch = compute_20、code = sm_20 -ccbin "C:\ Program Files(x86)\ Microsoft Visual Studio 10.0 \ VC \ bin "-I" C:\ Program Files \ NVIDIA GPU Computing Toolkit \ CUDA \ v4.2 \ include "-O -G --machine 32 --maxrregcount = 0 -ptx -o =" filterKernelHand.ptx " filterKernel.cu