2014-05-12 68 views

回答

1

一般和通常在運行時處理clEnqueueWriteBuffer/clEnqueueReadBuffer命令副本發生。然而,如果你使用特定的標誌組合來創建內存對象,那麼運行時可以選擇更快地複製內存(比如在創建之後)或更高版本(比如在運行內核之前按需複製內存,需求,因爲它需要它)。供應商文檔通常表明他們是否對這些標誌有特殊的優勢。

一對夫婦的「有趣」的變化:

  • 共享內存(英特爾Ingrated顯卡的GPU,AMD的APU和CPU驅動程序):您可以分配一個緩衝區和從未將其複製到設備,因爲該設備可以訪問主機內存。
  • 按需分頁:某些獨立GPU可以在內核讀取或寫入內容時通過PCIe複製緩衝區內存。

這些都是OpenCL緩衝區的「高級」使用。你應該從「常規」緩衝區開始,如果他們不做你所需要的,你就可以開始工作。

This post很好地描述了額外的標誌。