2012-07-17 32 views
2

我的應用程序在openCL內核中進行圖像處理,並將輸出寫入到openGL紋理中進行顯示。openCL clEnqueueNDRangeKernel失敗;不返回列出的錯誤類型

我正在創建上下文,命令隊列,編譯程序並創建內核,採樣器和2D圖像對象而沒有錯誤。一切都運行良好,沒有報告的錯誤,直到我嘗試排隊內核執行:

errNum = clEnqueueNDRangeKernel(commandQueue, kernel, 2, NULL, globalWorkSize, localWorkSize, 0, NULL, NULL); 

此調用返回-1000值。

根據clEnqueueNDRangeKernel的在線manpage,有幾個值errNum可以設置爲(在cl.h頭文件中定義)。這些值都不匹配-1000。

有關此錯誤的任何想法?


我在Nvidia NVS 4200M GPU上運行,如果這是相關的。

+0

我認爲errNum是一個cl_int類型?全球和當地的工作組規模是多少? – 2012-07-17 15:13:36

+0

平臺? OpenCL SDK的選擇? – James 2012-07-17 15:14:43

+0

@James:聽起來他正在使用NVIDIA OpenCL實現與GPU設備。 milky_joe,你是否也可以發佈內核? – Ani 2012-07-17 15:26:11

回答

0

我不完全確定,但是您可能會看到底層的CUDA庫(負面?)CUDA_ERROR_UNKNOWN(以前是999,但可能已經碰到了1000),這些庫是nvidia的OpenCL實現小豬 - 在頂部。我看到一個CUDA_ERROR_INVALID_VALUE錯誤彈出(在我的ErrorCode枚舉中的第一個值處查看here),這就是我懷疑這一點的原因。

0

我假設你正在使用cl gl interop? 看到cl_gl.h:

#define CL_INVALID_GL_SHAREGROUP_REFERENCE_KHR -1000 
相關問題