当我尝试在OS X 10.8上使用c++
编译以下代码时,它运行正常 - 没有编译错误。
#include <gmpxx.h>
int main(int argc, const char * argv[]) { }
然而,当我尝试对nvcc
做同样的事情时,我会遇到很多错误:
/usr/local/Cellar/gcc47/4.7.3/gcc/lib/gcc/x86_64-apple-darwin12.5.0/4.7.3/../../../../include/c++/4.7.3/limits(1405): error: identifier "__int128" is undefined
/usr/local/Cellar/gcc47/4.7.3/gcc/lib/gcc/x86_64-apple-darwin12.5.0/4.7.3/../../../../include/c++/4.7.3/limits(1421): error: function call is not allowed in a constant expression
...
如何将GMP与NVCC / CUDA一起使用?为了澄清,我不打算在设备上执行GMP计算,只是主机。
答案 0 :(得分:4)
创建一个用主编译器编译的.cpp
模块,和
在那里包含您的GMP代码。
创建一个单独的.cu
模块,使用nvcc
编译,并包含
你的CUDA代码。
将它们链接在一起。