

机器学习与计算机视觉(opencl编程)
source link: https://feixiaoxing.blog.csdn.net/article/details/105901264
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

机器学习与计算机视觉(opencl编程)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】
因为学习cuda的原因,所以最近一段时间对GPU编程比较感兴趣。大家都知道,cuda是属于nvidia公司的产品,那么我就在想,对于其他公司开发的GPU产品,他们是怎么做的?结果就是opencl编程。
1、opencl编程
opencl支持nvidia、ati、arm等多个gpu,也可以在嵌入式设备上完成。
2、opencl的编译环境
大部分安装了gpu的编程环境,比如说cuda sdk,就可以开发opencl编程了。
3、最简单的opencl代码
https://github.com/giobauermeister/OpenCL-test-apps/blob/master/cl_sample_timer/cl_sample_timer.c
4、编译opencl代码的时候需要注意什么
在链接的时候添加OpenCL.lib即可
5、查询opencl设备信息
可以参考这个链接,https://www.cnblogs.com/mtcnn/p/9411861.html
用到的api主要就是两个,clGetPlatformIDs & clGetPlatformInfo
6、opencl和cuda的相同之处
opencl和cuda结构上差不多,一部分api代码都是在cpu运行的,只有kernel部分的代码才是在gpu上运行的。当然除了c语言之外,opencl和cuda都是支持python的,将kernel代码传给python就可以了,使用起来不复杂。
7、opencl和cuda的关系
opencl&cuda有点类似于opengl&direct x的关系。对于跨平台来说,opencl更好,但是cuda的生态更棒。本身cuda除了cudnn之外,还提供了很多的第三方库,这些对于需要数学库移植的同学来说太方便了。
8、个人怎么学习使用
如果是在nvidia的环境开发,那么多多使用cuda,总归没有错的。但是如果arm系列的gpu,opencl基本上是你唯一的选择。不然,你只能使用neon指令去加速一些特殊的算法了。
9、opencl & opencv
现在很多朋友使用opencl加速opencv的效果不明显,建议可以自己编写opencv算法、测试高分辨率图片、用很多图片来测试算法,看看原因出在哪里。另外测试的时候多让图像在gpu保存,不要在cpu和gpu之间搬来搬去,这样很浪费时间。
当然,现在除了opencl,也有一种并发框架,类似于openmp,它就是openacc,https://www.openacc.org/get-started
参考代码链接在这https://yq.aliyun.com/articles/71262,内容如下
目前soc上面的dsp、fpga、gpu、nn其实都是可以用来数据计算的。只不过因为功耗、习惯、技术积累的原因,通常我们只使用其中的一种技术。这个时候,就要适当多了解一下其他硬件编程技术。不管从哪方面讲,opencl&cuda都是非常不错的,既满足了并发的要求,而且学习难度上也小很多。dsp&fpga太小众了,nn也是每一家都有自己的方案,自己能控制的可能只剩下GPU编程这一种了。
安装了cuda之后,就可以opencl编程,比如https://blog.csdn.net/liu798675179/article/details/53240803。
Recommend
-
12
机器学习与计算机视觉(FPGA的图像处理方法)
-
14
机器学习与计算机视觉(计算机视觉的嵌入式平台)
-
6
机器学习与计算机视觉(slam技术)
-
11
机器学习与计算机视觉(第一个卷积神经网络)
-
39
机器学习与计算机视觉(keras和mnist)
-
17
机器学习与计算机视觉(被忽视的isp图像处理)
-
15
机器学习与计算机视觉(深度学习)
-
6
机器学习与计算机视觉(darknet编译)
-
14
机器学习与计算机视觉(移动端深度学习优化框架)
-
11
三星招聘|计算机视觉、机器学习岗位研究员(校招/社招/实习) ...
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK