1

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

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

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

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

1 回答 1

2

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

NPP 本质上是一个无状态 API。但是,要将流与 NPP 一起使用,您需要nppSetStream为后续操作设置默认流。文档的第 2 页上提到了一些关于在流中使用 NPP 以及在切换流时推荐的同步实践的注意事项。

于 2017-01-22T17:00:24.453 回答