我的AR之旅

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

OpenCL是什么,查了半天没看懂,能简单明了的告诉我是干什么的有什么功能吗

妞妞和蛋蛋同享 | 浏览 12285 次 |举报
推荐于2016-02-16 13:35:35 最佳答案
 
OpenCL和OpenGL是两个不同的API
OpenGL是3D API
OpenCL是GPU通用运算API

要理解什么是OpenCL,首先要明确一下什么叫API(应用程序接口)。

API是已经开发好的一些函数。

举个简单的例子。

比如编写一个程序,其中有一个步骤要将运算的内容输出到打印机上。那么为了这个步骤,得写一大堆程序,包括如何调用打印机的驱动,为硬件分配I/O地址等等。相当繁锁。

OK,现在这个程序写好了,要开发第二个程序了。结果发现,第二个程序中,也有一个步骤是要把内容打印出来的。那么就没必要再把程序重新写一遍了,直接把第一个程序中这个函数复制过来就好了。

久而久之,大家干脆把一些常用的函数给独立出来,就是API。这样,所有软件,无论是WORD、WPS、PHOTOSHOP还是其他软件,都不需要费事单独去写这段代码了,直接从API里调用就好。这样一来,不仅开发过程简化了,程序本身也更精练了。

那么OpenGL或DirectX是什么呢?是负责3D图形处理的API,包括各种光照、纹理、烟雾、阴影等效果。程序员在开发游戏的时候,只要考虑什么时候、在哪个位置,加上什么样的烟雾,就可以了。而不必考虑究竟要怎样去编写代码,才能实现烟雾效果的问题。

OpenCL呢?是显卡作通用浮点运算的API。比如视频转码,原来这个工作都是CPU来做的。现在显卡运算能力比较强,这个工作完全可以交给显卡来做。那究竟怎样调用显卡呢?这个工作不需要再由程序员考虑了,因为已经有一个现成的接口了,程序员只要管好转码的算法,然后直接调用OpenCL中现成的指令,这个工作就自动由CPU转交到GPU了。

说得有点复杂,也不是很严谨,但大概意思就是这样的,不知道题主看明白了没。
posted on 2017-03-30 16:35  我的AR之旅  阅读(3706)  评论(0编辑  收藏  举报