PTX コードの JIT コンパイルを試しています。コードはコンパイルおよび実行されますが、生成元の cuda C に比べて非常に遅いです。
cuda C から生成された PTX コードの実行が遅い理由を実験しようとしています (両方とも compute_20/sm_20 をターゲットにしています)。呼び出し cuModuleLoadDataEx でオプションを設定して、compute_20/sm_20 をターゲットにしていることを確認したかったのですが、オプションを渡すことができないようです正しく。現在私は持っています
CUjit_option options[] = {
CU_JIT_TARGET
}
CUjit_target_enum target = CU_TARGET_COMPUTE_20
void *optionValues[] = {
&target
};
int32_t err = cuModuleLoadDataEx(&hModule, ptxSrc, 1, options, optionValues);
しかし、呼び出しは1(cudaErrorMissingConfiguration)を返しますもちろん、スタックオーバーフローとGoogleの両方で、オプションを正しく設定する方法の例を検索しようとしましたが、見つかりません。オプションを設定しなければ、呼び出しは成功し、コードは正しく実行されます。