Quantcast
Channel: Sam的技术Blog
Viewing all articles
Browse latest Browse all 158

OpenCL知识汇总

$
0
0
作者: Sam (甄峰)  sam_code@hotmail.com

之前做OpenCV移植时,注意到OpenCV可以选择Cuda或者OpenCL. 知道他们是不同阵营对GPU支持库。但对他们的结构和组成,并不了解。当前需要做以下工作:
A. 判断现有平台是否支持OpenCV。
B. 现在总结资料学习之。



1. OpenCL程序构成:
OpenCL最终控制到GPU,所以一定会有Kernel层代码。从底到上来说:
A. Kernel GPU Driver。 (buildIn 或者Modules)
B. 应用层动态库和对应头文件。(libOpenCL.so)
C. 应用程序。 

各个部分的获取和产生:
A. Kernel GPU Driver.
首先查看芯片技术手册,确认GPU型号。到对应GPU厂商查看是否支持OpenCL Driver.
如:ARM Mali-G51
https://developer.arm.com/products/software/mali-drivers/midgard-kernel

Imagination PowerVR: Series 5XT,SGX544
等都支持OpenCL. 

下载对应Driver.并加入Kernel Source Tree编译。

但此类工作还是留给芯片提供商自己搞定比较合适。

B. 应用层动态库:
或者动态库的方式有以下几种:
1. 如果用户为OpenCL专业人士,且有对应GPU相关文档和优化手册(ARM, Imagination相对容易获取, 高通的需要授权用户才可以)。 
可以利用:
https://github.com/KhronosGroup?utf8=&q=opencl&type=&language=
的资源,自行连接GPU Driver. 写出 动态库。

2. 从GPU芯片厂商下载:
ARM:
https://developer.arm.com/products/software/mali-drivers/user-space
ARM和Imagination可能的名称分别为:
libmali.so 和libPVROCL.so。

3. 最安全的做法:
SOC厂商获取。



 

Viewing all articles
Browse latest Browse all 158

Trending Articles