最近我在一些開發板上看到OpenCL EP支持,比如odroid XU。我所知道的一件事就是OpenCL EP適用於ARM處理器,但其功能會與主要基於桌面的OpenCL不同。OpenCL和OpenCL Embedded profile之間的主要區別
2
A
回答
2
的主要區別列舉如下(爲的OpenCL 1.2):
64位整數支持是可選的。
支持3D圖像是可選的。
支持2D圖像陣列寫入是可選的。如果內嵌配置文件支持
cles_khr_2d_image_array_writes
擴展名,則支持寫入2D圖像數組。上有可用的信道的數據類型爲圖像和圖像陣列的一些限制(特別是,與信道的數據類型的
CL_FLOAT
和CL_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嵌入式配置文件,首先列舉此配置文件暗示的限制。
相關問題
- 1. OpenCV和OpenCL之間的區別
- 2. OpenCL - 緩衝區和全局內存之間的區別
- 3. OpenCL中的圖像和緩衝區之間有什麼區別?
- 4. openCL中由CPU和GPU處理的數據之間的區別
- 5. OpenCL:__constant內存和const之間的區別__global內存
- 6. OpenCV庫中的Mali OpenCL SDK和OpenCL有什麼區別
- 7. OpenCL函數length()和fast_length()之間有什麼區別?
- 8. 行和列主要在opencl和pyopencl
- 9. Ruby和C之間的主要區別
- 10. ToolBar和CollapsingToolBar之間的主要區別
- 11. $ locationStartChange和$ routeStartChange之間的主要區別
- 12. wx.lib.sheet和wx.Grid之間的主要區別
- 13. IIS6和IIS7之間的主要區別
- 14. PHP和Servlet之間的主要區別
- 15. PHP和ASP之間的主要區別
- 16. Go和Ruby之間的主要區別
- 17. OpenCL主機同步要求
- 18. 安裝管理器下載的WAS Liberty Profile和WAS之間的主要區別
- 19. CUDA和OpenCL之前的GPGPU
- 20. OpenCL中本地和全局內存區別有什麼區別?
- 21. OpenMP與OpenCL的區別在於GPGPU?
- 22. OpenCL子緩衝區主機指針
- 23. OpenCL和間接遞歸
- 24. OpenCL - 工作組之間的通信
- 25. Snow Leopard中.profile和.bash_profile之間的區別
- 26. Opencl和HD5850
- 27. nslookup,主機和resolveip之間的區別?
- 28. void main和int之間的區別主
- 29. OpenCL中的int和cl_int有什麼區別?
- 30. openCL - 處理數組和標量的區別