能否将NPP函数(更具体的npps(https://docs.nvidia.com/cuda/npp/group__npps.html)称为设备函数?
如果创建全局函数,我可以在内部调用npps函数作为nppsMaxIndx_32f
(以计算向量的最大值)吗?
示例: 我有100个向量,每个向量有10000个浮点数,如果在宿主代码中这样做,则必须对npp函数进行100次调用
如果我创建一个包含100个线程的全局函数,并在内部为每个向量调用npp函数,以便它们同时启动,这行得通吗? nppsMaxIndx_32f
可以称为设备功能吗?
我尝试过,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
但是,在没有线程同步的情况下在主机代码中进行调用将几乎同时调用它们,而无需等待上一个线程完成,但这只能在不需要先前数据进行计算的情况下才能执行。