【发布时间】:2012-06-07 18:00:21
【问题描述】:
我正在尝试对 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) 我当然尝试在堆栈溢出和谷歌上搜索如何正确设置选项的示例,但我找不到任何。 如果我不尝试设置任何选项,则调用成功并且代码正常运行。
【问题讨论】:
-
不应该将
options作为指针传递,而将optionValues作为指向指针的指针传递? -
您是否尝试过使用内联 PTX 代替?
标签: cuda