发布网友 发布时间:2022-04-24 20:57
共7个回答
热心网友 时间:2022-04-11 23:24
OpenCL是GPU通用运算API。是显卡作通用浮点运算的API。比如视频转码,原来这个工作都是CPU来做的。现在显卡运算能力比较强,这个工作完全可以交给显卡来做。
要调用显卡,这个工作不需要再由程序员考虑了,因为已经有一个现成的接口了,程序员只要管好转码的算法,然后直接调用OpenCL中现成的指令,这个工作就自动由CPU转交到GPU了。
OpenCL是一个为异构平台编写程序的框架,此异构平台可由CPU,GPU或其他类型的处理器形成。OpenCL由一门用于编写kernels (在OpenCL设备上运行的函数)的语言(基于C99)和一组用于定义并控制平台的API组成。OpenCL提供了基于任务分割和数据分割的并行计算机制。
OpenCL类似于另外两个开放的工业标准OpenGL和OpenAL,这两个标准分别用于三维图形和计算机音频方面。OpenCL扩展了GPU用于图形生成之外的能力。OpenCL由非盈利性技术组织Khronos Group掌管。
扩展资料
API之主要目的是提供应用程序与开发人员以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。提供API所定义的功能的软件称作此API的实现。API是一种接口,故而是一种抽象。
应用程序接口(英语:Application Programming Interface,简称:API),又称为应用编程接口,就是软件系统不同组成部分衔接的约定。由于近年来软件的规模日益庞大,常常需要把复杂的系统划分成小的组成部分,编程接口的设计十分重要。程序设计的实践中,编程接口的设计首先要使软件系统的职责得到合理划分。良好的接口设计可以降低系统各部分的相互依赖,提高组成单元的内聚性,降低组成单元间的耦合程度,从而提高系统的维护性和扩展性。[1]
参考资料来源 OpenCL_百度百科
热心网友 时间:2022-04-12 00:42
全称Open Computing Language,开放运算语言,是第一个面向异构系统通用目的并行编程的开放式、免费标准,也是一个统一的编程环境。
用于软件开发人员为高性能计算服务器、桌面计算系统、手持设备编写高效轻便的代码。
广泛适用于多核心处理器(CPU)、图形处理器(GPU)、Cell类型架构以及数字信号处理器(DSP)等其他并行处理器,在游戏、娱乐、科研、医疗等各种领域都有广阔的发展前景。
你可以这样理解,把写程序当成做饭,你需要做蛋炒饭,OpenCL就相当于鸡蛋,炒饭。你不必把母鸡养大,然后等它下蛋,你也不必去种地,等大米成熟。无论你想做蛋炒饭,西红柿炒鸡蛋,直接拿来用就好了。
程序员在写程序时,会遇见写重复代码的情况,一段代码比较常见,需要经常用到它,那就把它单独拿出来,用的时候,直接放进去就好了,不用再重新写,大大减少了工作量。
扩展资料
在这里汇总一些OpenCL的基本概念,包括设备、核函数、主机、平台等,把这些概念跟CUDA类比,理解起来就很容易了。
设备(Device): GPU及其显存组成的计算系统。
核函数(Kernel): 是在设备程序上执行运算的入口函数,在主机上调用。
SIMT(Single Instruction Multi Thread): 单指令多线程,GPU并行运算的主要方式,很多个多线程同时执行相同的运算指令,当然可能每个线程的数据有所不同,但执行的操作一致。
工作项(Work-item): 跟CUDA中的线程(Threads)是同一个概念,N多个工作项(线程)执行同样的核函数,每个Work-item都有一个唯一固定的ID号,一般通过这个ID号来区分需要处理的数据。
工作组(Work-group):跟CUDA中的线程块(Block)是同一个概念,N多个工作项组成一个工作组,Work-group内的这些Work-item之间可以通信和协作。
ND-Range: 跟CUDA中的网格是同一个概念,定义了Work-group的组织形式。
主机(Host): CPU及其内存组成的计算系统。
品台(Platform): 主机和OpenCL管理框架下的若干个设备构成了一个品台,所有GPU操作都限定这这个选择的Platform上运行。OpenCL编程的第一步就是选择并初始化一个平台。
上下文(Context): 定义了整个OpenCL的运行环境,包括Kernel、Device、内存管理和指令队列等。
指令队列(Command-Queue): 一些需要在设备上执行的OpenCL指令的集合。
参考资料来源:百度百科-OpenCL
热心网友 时间:2022-04-12 02:16
OpenCL和OpenGL是两个不同的API。热心网友 时间:2022-04-12 04:08
做异构计算的。你可以把异构理解为对设备进行抽象。就像我们编程会对类和方法进行封装抽象一样。这个东西可以对设备进行抽象,就是说不管你是gpu啦,cpu啦,还是说你接入了一些fpga、dsp这样的设备;他都可以通过标准化配置,把他们视为一个组(group),然后给其中一个设备分配控制权(通常是cpu来担任此角色),协同一起进行计算。热心网友 时间:2022-04-12 06:16
最直白就是英伟达是cuda加速,AMD可以用opencl加速,opencl出来之前,win平台a卡渲染视频基本就是费,就是cpu累死,显卡也只能围观热心网友 时间:2022-04-12 08:40
OpenGL吧. 图形运算接口 和DirectX类似。 但是现在大部分游戏都是用DirectX来渲染的. OpenGL现在更多用于专业绘图 图形站。 一部分游戏还是会用到 . 目前DirectX是民用主流就是了.