3

NPP 功能,更具体的 npps ( https://docs.nvidia.com/cuda/npp/group__npps.html ) 可以作为设备功能调用吗?

如果我创建一个全局函数,我可以在内部调用 npps 函数nppsMaxIndx_32f(以计算向量的最大值)吗?

示例:我有 100 个向量,每个向量有 10000 个浮点数,如果我在主机代码中执行此操作,我必须对 npp 函数进行 100 次调用

如果我创建一个 100 个线程的全局函数并在内部为每个向量调用 npp 函数以便它们同时启动,这会起作用吗?nppsMaxIndx_32f可以作为设备函数调用吗?

4

1 回答 1

1

这是不可能的——NPP 功能是仅主机功能。尝试会产生错误:

functions.cu(237): error: calling a __host__ function("nppsMaxIndx_32f") from a 
__global__ function("computeMax") is notallowed

functions.cu(237): error: identifier "nppsMaxIndx_32f" is undefined in device code

但是,在没有 GPU 同步的情况下在主机代码中进行调用将几乎同时调用它们而无需等待前一个完成,但这只有在不需要调用顺序和重叠数据的情况下才能安全地完成调用是完全独立的。

于 2018-10-24T23:46:13.480 回答