用gmp链接cuda

时间:2012-11-17 19:11:09

标签: cuda gmp

我正在尝试使用cuda和GNU多精度库(gmp)。当我将gmp指令(如mpf_init())添加到我的设备代码时,我得到此编译器错误:tlgmp.cu(37):错误:从__ device__ / __ global__函数调用主机函数(“__ gmpf_init”)(“histo” )是不被允许的。

是否可以重新定义gmp指令,以便它们可以在设备代码中使用?

1 个答案:

答案 0 :(得分:3)

GMP库是为主机编译的,因此不能直接在设备代码中使用。这就是你所看到的错误的直接原因。

由于它是一个开源库,因此可能需要花费一些精力来完成代码并创建自己的版本,该版本具有适当的__device__装饰器(以及可能的其他更改),以满足您需要的各种功能。然而,这可能需要大量的工作。

另一种选择可能是调查CUMP library