如何使用clang用设备和主机代码编译cuda代码?

时间:2019-07-03 06:23:43

标签: cuda clang llvm

首先,我不想做

clang++ axpy.cu -o axpy --cuda-gpu-arch=<GPU arch>  \
    -L<CUDA install path>/<lib64 or lib>              \
    -lcudart_static -ldl -lrt -pthread

,在the official document中有描述。因为我必须使用自定义通行证来优化主机端代码。

我有两个与主机和设备代码有关的位代码文件:

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文件)

0 个答案:

没有答案