2013-10-18 47 views
0

在OpenCL中有很多呼叫這樣創建對象openCL函數返回的對象究竟是什麼?

clCreateProgramWithSource創建程序對象的上下文,並 加載由文本字符串字符串 陣列到程序對象中指定的源代碼。

我的問題是這個對象究竟是什麼,作爲計算機科學的對象有many definitions

我想了解更低級別的源代碼字符串究竟發生了什麼,程序對象究竟是什麼,它包含了什麼?

回答

0

在這種情況下,對象意味着一個cl_program結構的實例。然而,從OpenCL的頭cl.h

typedef struct _cl_program *  cl_program; 

cl_program只是一個指向_cl_program結構。爲什麼? OpenCL是一個開放的標準,所有的實現都需要特定的庫開發人員來實現特定硬件的標準(例如Intel CPU)。

+0

是否有可能看到結構的內容?或者它是二進制形式的? – gpuguy

+0

它們駐留在編譯庫內的二進制形式。如果您尋求一般指導,請查看開源實現。 –

0

它是實現定義的,並且沒有聲明爲您檢查它們的結構。

在給定的實現中,這些句柄可能是指向內部定義結構的指針,或者它們可能是索引到這些項目的集合中。你不知道,如果你知道它,它可能會改變驅動程序更新。這就是爲什麼它們是不透明類型的原因,所以實現可以做任何它喜歡的內容,只是返回一個句柄給你的代碼。