Прежде всего, я не хочу делать
clang++ axpy.cu -o axpy --cuda-gpu-arch=<GPU arch> \
-L<CUDA install path>/<lib64 or lib> \
-lcudart_static -ldl -lrt -pthread
, что описано в официальном документе .Потому что я должен оптимизировать код на стороне хоста с помощью своего пользовательского прохода.
У меня есть два файла битовых кодов, связанных с кодом хоста и устройства:
clang++ -c -emit-llvm --cuda-device-only -O1 a.cu -o a.device.bc
clang++ -c -emit-llvm --cuda-host-only -O1 a.cu -o a.host.bc
, и оптимизировать код хоста с помощью пользовательского прохода:
opt -load=... a.host.bc -o a.host.opt.bc
Теперь я могу создать объектный файл из файла битового кода хоста, выполнив следующую команду:
clang++ -c a.host.opt.bc -o a.host.opt.o
Но проблема заключается в том, чтобы сделать исполняемый файл из
a.device.bc
файл битового кода и a.host.opt.o
объектный файл.
Но я не могу найти решения по этой проблеме.
Как сделать исполняемый файл cuda из этих двух файлов?(Основная проблема - обработать файл a.device.bc
)