2014-03-30 69 views
0

我在opencl中引用一個變量時遇到了麻煩,因爲沒有明確的例子表明這是否可以完成。如何在opencl中引用變量?

我有一個變量,「double foo」,我有一個指針「double * fooptr」。我想讓指針保存foo的地址。 OpenCL有可能嗎?

double foo=//some value 
double* fooptr; 
fooptr=&foo; 

我可以在OpenCL中做到這一點嗎?

+0

是的,它的工作原理。你試過了嗎? OpenCL C中不允許的指針是函數指針。 – Dithermaster

+0

我還沒有嘗試過,但聽起來不錯,我會用這個方案編寫內核。 – jas

+0

是的,這是有效的。非常感謝。 – jas

回答

0

指針在OpenCL中工作,但不能將指針從主機代碼傳遞到客戶端代碼(在CL設備上運行的代碼)。這很有意義,因爲你的GPU顯然不能引用CPU的內存,因爲它有自己的專用內存 - 它具有完全不同的地址空間。

你在哪裏試圖執行此操作?它應該在你的內核代碼中運行良好。