NPP:重叠计算和数据传输

时间:2017-01-22 16:52:10

标签: cuda npp

CUDA允许使用 cuMemcpy 异步函数和重叠计算和数据传输。但NPP(Performance Primitives)是否可能?

一点背景。我正在尝试使用NPP图像调整大小功能(在我们的例子中它是 nppiResize_8u_C3R )。我正在使用固定内存并使用 cuMemcpy2DAsync_v2 每个线程流成功将数据传输到GPU。问题是 nppiResize_8u_C3R 和所有其他计算函数不接受流。

当我运行Nvidia Visual Profiler时,我会看到下一个:

  1. 固定内存允许我更快地传输数据 - 约6.524 GB / s。
  2. 与计算并行执行memcpy的时间百分比为0%。

1 个答案:

答案 0 :(得分:2)

  

问题[原文如此]是nppiResize_8u_C3R和所有其他计算函数都不接受流。

NPP从根本上说是一种无状态API。但是,要使用带NPP的流,可以使用nppSetStream为后续操作设置默认流。关于在流切换流时使用NPP和推荐的同步实践,文档的第2页提到了几个注意事项。