大家好,小百来为大家解答以上的问题。openclash,opencl这个很多人还不知道,现在让我们一起来看看吧!
1、OpenCL和OpenGL是两个不同的API。
2、OpenGL是3D API。
3、OpenCL是GPU通用运算API。
4、要理解什么是OpenCL,首先要明确一下什么叫API(应用程序接口)。
5、API是已经开发好的一些函数。
6、举个简单的例子。
7、比如编写一个程序,其中有一个步骤要将运算的内容输出到打印机上。
8、那么为了这个步骤,得写一大堆程序,包括如何调用打印机的驱动,为硬件分配I/O地址等等。
9、相当繁锁。
10、OK,现在这个程序写好了,要开发第二个程序了。
11、结果发现,第二个程序中,也有一个步骤是要把内容打印出来的。
12、那么就没必要再把程序重新写一遍了,直接把第一个程序中这个函数复制过来就好了。
13、久而久之,大家干脆把一些常用的函数给独立出来,就是API。
14、这样,所有软件,无论是WORD、WPS、PHOTOSHOP还是其他软件,都不需要费事单独去写这段代码了,直接从API里调用就好。
15、这样一来,不仅开发过程简化了,程序本身也更精练了。
16、那么OpenGL或DirectX是什么呢?是负责3D图形处理的API,包括各种光照、纹理、烟雾、阴影等效果。
17、程序员在开发游戏的时候,只要考虑什么时候、在哪个位置,加上什么样的烟雾,就可以了。
18、而不必考虑究竟要怎样去编写代码,才能实现烟雾效果的问题。
19、OpenCL呢?是显卡作通用浮点运算的API。
20、比如视频转码,原来这个工作都是CPU来做的。
21、现在显卡运算能力比较强,这个工作完全可以交给显卡来做。
22、那究竟怎样调用显卡呢?这个工作不需要再由程序员考虑了,因为已经有一个现成的接口了,程序员只要管好转码的算法,然后直接调用OpenCL中现成的指令,这个工作就自动由CPU转交到GPU了。
23、说得有点复杂,也不是很严谨,但大概意思就是这样的,不知道题主看明白了没。
本文到此分享完毕,希望对大家有所帮助。