2013-08-30 43 views

回答

2

的主要區別列舉如下(爲的OpenCL 1.2):

  • 64位整數支持是可選的。

  • 支持3D圖像是可選的。

  • 支持2D圖像陣列寫入是可選的。如果內嵌配置文件支持cles_khr_2d_image_array_writes 擴展名,則支持寫入2D圖像數組。

  • 上有可用的信道的數據類型爲圖像和圖像陣列的一些限制(特別是,與信道的數據類型的CL_FLOATCL_HALF_FLOAT圖像僅支持CL_FILTER_NEAREST採樣濾波器模式)

  • 上有侷限性採樣器尋址模式可用於圖像和圖像陣列。

  • 您可能需要考慮一些浮點舍入更改。

  • 浮點加法,減法和乘法將始終正確舍入,其他操作(例如除法和平方根)具有不同的精度。還有很多其他浮點事物也要注意。

  • 整數數據類型和浮點整數之間的轉換精度有限(但也有例外)。

總之,這裏的主要區別在於浮點精度。換句話說,嵌入的配置文件不需要遵循IEEE 754浮點規範,如果您正在進行大量依賴於它的數值計算,那麼這可能是個問題。從規格報價:

的要求,這個鬆弛堅持IEEE基本浮點運算754所要求 ,雖然非常不可取的,是 對於那些對硬件的嚴格很多要求 嵌入式設備提供靈活性地區預算。

還有未在第10條提及,但值得一提的事:在桌面配置文件中必須有可用編譯OpenCL內核編譯器,嵌入的配置文件無需提供一個。這可以通過clGetDeviceInfo文件,其中規定可以看出:

CL_DEVICE_COMPILER_AVAILABLE: Return type: cl_bool 

Is CL_FALSE if the implementation does not have a compiler available 
to compile the program source. Is CL_TRUE if the compiler is available. 
This can be CL_FALSE for the embededed (sic) platform profile only. 

對於OpenCL的嵌入式Profile規範的完整和詳細清單,啓動你的PDF閱讀器,下載的OpenCL規範(你是哪個版本開發),並找到相關部分。

2

標準中的第10部分回答你的問題。本部分完全致力於OCL嵌入式配置文件,首先列舉此配置文件暗示的限制。