Can I use a PTX function contained in a PTX file as an external device function to link it to another .cu file which should call that function?
This is another question
You can load the file containing PTX code in your own code from the filesystem by cuModuleLoad
and cuModuleGetFunction
as follows:
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);
You can also pass the PTX code to the CUDA driver directly as a string, see Passing the PTX program to the CUDA driver directly.