《OpenCL編程指南》第三章知識點整理(未完待續)

第三章 平臺、上下文和設備

1opencl平臺

cl_intclGetPlatformIDs(cl_uint num_entries,cl_platform_id * platforms,cl_uint *num_platforms)

功能一:查詢可用平臺數,需要將platforms設爲NULL,將num_entries設爲0.

判斷出錯的兩個條件:函數返回值不等於CL_SUCCESS,或者,獲取到的平臺數小於等於0.

進行錯誤處理,輸出錯誤原因爲找不到平臺。

功能二:查詢可用平臺列表,需要將num_entries設置爲查詢到的平臺數,將num_platforms設爲NULL

(注意:每次獲取到的OpenCL平臺及設備的ID列表中的各個ID號均不同。)

判斷出錯的條件:函數返回值不等於CL_SUCCESS.

進行錯誤處理,輸出錯誤原因爲找不到平臺。

相關代碼如下:

cl_intclGetPlatformInfo(cl_platform_id platform,cl_platform_info param_name,size_tparam_value_size,void * param_value,size_t * param_value_size_ret)

功能一:查詢返回信息字符串的大小,需要將param_value_sizeparam_value的值分別置爲0NULL

判斷出錯的條件:函數返回值不等於CL_SUCCESS.

進行錯誤處理,輸出錯誤原因爲找不到平臺的某個指定信息。

功能二:查詢指定信息,需要將param_value_size設置爲查詢到的信息字符串的大小,將param_value_size_ret設置爲NULLparam_value將返回查詢到的信息。

判斷出錯的條件:函數返回值不等於CL_SUCCESS.

進行錯誤處理,輸出錯誤原因爲找不到平臺的某個指定信息。

相關代碼如下:

本機所有平臺及其相關信息如下:

2opencl設備

(各個平臺可能會分別關聯一組計算設備,應用程序將利用這些計算設備執行代碼;平臺與設備之間的區別在於,平臺對應計算機中安裝的SDK開發包,而設備對應計算機中的硬件CPU或者GPU,而對於含有一個CPU和一個GPU的異構計算機來說,安裝在計算機上的所有軟件平臺均關聯到了所有OpenCL硬件,當查詢電腦上的所有平臺以及對應的設備時,顯示如下所示:

兩個平臺均關聯了電腦上唯一的CPU和唯一的GPU設備。

經程序測試,opencl的默認設備爲GPU

cl_intclGetDeviceIDs(cl_platform_id platform,cl_device_type device_type,cl_uintnum_entries,cl_device_id * devices,cl_uint * num_devices)

功能一:查詢設備數

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章