zoukankan      html  css  js  c++  java
  • OpenCL和OpenGL是什么

    https://www.cnblogs.com/wangchaoqun1997/p/6646878.html

    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了。

    说得有点复杂,也不是很严谨,但大概意思就是这样的,不知道题主看明白了没。
  • 相关阅读:
    021.day21 反射 Class类 反射常用操作
    020.day20 线程概述 多线程优缺点 线程的创建 线程常用方法 生命周期 多线程同步
    019.day19 缓冲流 对象流 标准输入输出流
    018.day18 map集合如何实现排序 File类 IO流 字节流 字符流 编码
    017.day17 Map接口 克隆 treeSet集合排重缺陷
    016.day16 HashSet TreeSet 比较器Comparable Comparator
    015.day15
    014.day14
    013.day13
    线程
  • 原文地址:https://www.cnblogs.com/idyllcheung/p/12563912.html
Copyright © 2011-2022 走看看