0

当我尝试c++在 OS X 10.8 上编译以下代码时,它工作正常 - 没有编译错误。

#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 计算,只是在主机上执行。

4

1 回答 1

4
  1. 创建一个.cpp您使用主机编译器编译的模块,并在其中包含您的 GMP 代码。

  2. 创建一个单独的.cu模块来编译nvcc,并在其中包含您的 CUDA 代码。

  3. 将它们链接在一起。

于 2013-10-16T03:11:33.340 回答