2017-01-22 198 views
0

CUDA允許使用cuMemcpy異步函數和重疊計算和數據傳輸。但是NPP(Performance Primitives)有可能嗎?NPP:重疊計算和數據傳輸

有點背景。我試圖利用GPU使用NPP圖像調整大小功能(在我們的例子中,它是nppiResize_8u_C3R)。我使用固定內存並使用cuMemcpy2DAsync_v2每個線程流成功地將數據傳輸到GPU。問題是nppiResize_8u_C3R和所有其他計算功能不接受流。

當我運行Nvidia的視覺探查我看到了未來:

  1. 固定的內存可以讓我更快的傳輸數據 - 〜6.524 GB /秒。
  2. memcpy與compute並行執行的時間百分比爲0%。

回答

2

的問題[原文]是nppiResize_8u_C3R和所有其他計算功能不接受流。

NPP從根本上說是一個無狀態的API。但是,要使用帶有NPP的流,請使用nppSetStream爲後續操作設置默認流。在文檔的第2頁中提到了關於在切換流時使用NPP流和建議的同步做法的幾點注意事項。

+0

使用* nppSetStream *可以獲得性能提升嗎?我試過了,但沒有成功。我有一種感覺,NPP並非針對併發或重疊場景而設計的,而要利用GPU,我需要直接使用CUDA驅動程序API。 –