我正在尝试对 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) 我当然尝试过在堆栈溢出和谷歌上搜索如何正确设置选项的示例,但我找不到任何东西。如果我不尝试设置任何选项,则调用成功并且代码正确运行。