時enqueueNDRangeKernel被一再呼籲應該叫什麼其他的OpenCL功能?重複enqueueNDRangeKernel的通話OpenCL中
我一直沒能找到一個教程,顯示以這種方式使用enqueueNDRangeKernel和我的編碼嘗試不幸導致未處理的異常錯誤。以前也有類似的問題,但答覆似乎並不適用於我的情況。
我現在有一個循環,我稱之爲的OpenCL功能,按以下順序:
- setArg
- enqueueNDRangeKernel
- enqueueMapBuffer
- enqueueUnmapMemObject
我打電話setArg因爲在每次調用enqueueNDRangeKernel之前,內核的輸入都會發生變化。我調用enqueueMapBuffer和enqueueUnmapMemObject,因爲內核的輸出在主機代碼中使用。內核第一次運行正常(輸出是正確的),但在循環的第二遍期間,調用enqueueMapBuffer時出現未處理的異常錯誤。
我使用以下設置:
- 英特爾OpenCL的SDK與CL_DEVICE_TYPE_CPU(英特爾i7處理器上)
- 的Visual Studio 2010 IDE在Windows 7
- 主機代碼是用C++與OpenCL C++綁定。
謝謝。