无法将GMP与NVCC一起使用

时间:2013-10-16 01:11:25

标签: cuda gmp nvcc

当我尝试在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计算,只是主机。

1 个答案:

答案 0 :(得分:4)

  1. 创建一个用主编译器编译的.cpp模块,和 在那里包含您的GMP代码。

  2. 创建一个单独的.cu模块,使用nvcc编译,并包含 你的CUDA代码。

  3. 将它们链接在一起。