将 cuda 与 gmp 链接

Ant*_*rer 5 cuda gmp

我正在尝试将 cuda 与 GNU 多精度库 (gmp) 一起使用。当我将 mpf_init() 之类的 gmp 指令添加到设备代码中时,出现以下编译器错误: tlgmp.cu(37): error: Calling a host function("__ gmpf_init") from a __ device__ /__ global__ function("histo" ) 不允许。

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

Rob*_*lla 5

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

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

另一种选择可能是研究CUMP 库

另一种选择可能是研究xmp 库

另一种选择可能是调查Campary 图书馆