У меня есть код PTX, который не загружается. Я запускаю это на 650M, с OSX. Другие примеры CUDA работают нормально в системе, но при загрузке модуля всегда получается ошибка 209: CUDA_ERROR_NO_BINARY_FOR_GPUОшибка Cuda CUDA_ERROR_NO_BINARY_FOR_GPU
Что мне не хватает?
.version 3.1
.target sm_20, texmode_independent
.address_size 64
// .globl examples_2E_mandelbrot_2F_calc_2D_mandelbrot_2D_ptx
.entry examples_2E_mandelbrot_2F_calc_2D_mandelbrot_2D_ptx(
.param .u64 .ptr .global .align 8 examples_2E_mandelbrot_2F_calc_2D_mandelbrot_2D_ptx_param_0,
.param .f64 examples_2E_mandelbrot_2F_calc_2D_mandelbrot_2D_ptx_param_1,
.param .f64 examples_2E_mandelbrot_2F_calc_2D_mandelbrot_2D_ptx_param_2,
.param .f64 examples_2E_mandelbrot_2F_calc_2D_mandelbrot_2D_ptx_param_3
)
{
.reg .pred %p<396>;
.reg .s16 %rc<396>;
.reg .s16 %rs<396>;
.reg .s32 %r<396>;
.reg .s64 %rl<396>;
.reg .f32 %f<396>;
.reg .f64 %fl<396>;
ld.param.u64 %rl0, [examples_2E_mandelbrot_2F_calc_2D_mandelbrot_2D_ptx_param_0];
mov.b64 func_retval0, %rl0;
ret;
}
GT650M - sm_30 gpu. Что произойдет, если вы измените '.target sm_20' на' .target sm_30'? Или, может быть, я должен спросить, как вы создали этот код ptx? –
Код генерируется через llvm. Я сократил код до уровня, который вы видите выше. Я пробовал целевые модели sm_10, sm_13, sm_30 и sm_35. Все так же. Переключение с .entry на .func позволяет загружать модуль, но тогда (конечно) я не могу найти функцию. –
, т. Е. CuModuleGetFunction возвращает CUDA_ERROR_NOT_FOUND –