1、一個指標不治本的解決方法:
在代碼中添加一行:#pragmawarning( disable : 4996 )
錯誤消失,程序能夠運行,但後續步驟會出錯
2、程序出錯原因:
通過查詢本機OpenCL平臺可以看到,本機有兩個OpenCL平臺,一個爲1.2版本,另一個爲2.0版本的。而對於函數clCreateImage2D在1.1版本中可以正常使用,而在1.2版本中已經被集成爲clCreateImage函數,沒有2D和3D之分。注意到1.2版的OpenCL平臺是系統自帶的,而2.0版本的OpenCL是我當時安裝的AMD APP。
3、錯誤解決方法:
創建OpenCL圖像對象的幾個必要的步驟:
創建並填充圖像格式描述符à創建圖像描述符à使用memset函數將圖像描述符結構體清零à填充圖像描述符中的幾個必要項à創建圖像對象
(本次程序出錯在於沒有進行圖像描述符結構體清零)
具體代碼如下:
參考書目《OpenCL異構並行計算 原理、機制與優化實踐》