Могу ли я использовать функцию PTX, содержащуюся в файле PTX, в качестве функции внешнего устройства, чтобы связать ее с другим файлом .cu, который должен вызывать эту функцию?
Это еще один вопрос от CUDA — свяжите ядра вместе где сама функция не содержится в файле .cu, но у меня скорее есть функция PTX, которую нужно как-то связать.
Вы можете загрузить файл, содержащий код PTX в своем собственном коде, из файловой системы: cuModuleLoad
а также cuModuleGetFunction
следующее:
CUmodule module;
CUfunction function;
const char* module_file = "my_ptx_file.ptx";
const char* kernel_name = "my_kernel_name";
err = cuModuleLoad(&module, module_file);
err = cuModuleGetFunction(&function, module, kernel_name);
Вы также можете передать код PTX драйверу CUDA напрямую в виде строки, см. Передача программы PTX непосредственно в драйвер CUDA.
Других решений пока нет …