我正在寻找帮助开始涉及CUDA的项目.我的目标是有一个项目,我可以在本机g ++编译器中编译,但使用CUDA代码.我知道我必须在nvcc编译器中编译我的CUDA代码,但根据我的理解,我可以以某种方式将CUDA代码编译成cubin文件或ptx文件.
这是我的问题:
假设如下:
好吧,我有一个非常令人不安的CUDA 5.0问题,关于如何正确地链接事物.我真的很感激任何帮助!
使用CUDA 5.0的可分离编译功能,我生成了一个静态库(*.a).当通过nvcc运行时,这与其他*.cu文件很好地链接,我已经多次这样做了.
我现在想要获取一个*.cpp文件,并使用g ++或其他方法将其链接到此静态库中的主机代码,但不是nvcc.如果我尝试这个,我会遇到编译错误
对__cudaRegisterLinkedBinary的未定义引用
我正在使用两者-lcuda并且据-lcudart我所知,库的顺序正确(含义-lmylib -lcuda -lcudart).我不认为这是一个问题.也许我错了,但我觉得我错过了一步,我需要对我的静态库(设备链接?)做一些其他事情才能使用g ++.
我错过了至关重要的事吗?这甚至可能吗?
奖金问题:我希望最终结果是一个动态库.我怎样才能做到这一点?