本文目录一览

1,Gpu编程和opengl编程区别是什么新手不懂

现在GPU编程可以理解为利用shader来控制gpu的渲染输出。DirectX和OGL都可以进行shader编程。现在Nvdia的CUDA计算也是一种gpu编程

Gpu编程和opengl编程区别是什么新手不懂

2,请问关于几个GPU编程的概念问题

不是一个概念, 可编程流水线是后来产生的,当然也是现在最推崇的,其优点类似于微指令相对于硬布线的优势。 固定管线编程,类似于硬布线,具有高效,但是设计更加复杂;而可编程流水线,编程自由度高,就像C语言相对于汇编一样,效率降低,却更容易操作。 所以虽然固定管线编程效率高,却不能作为发展方向,而可编程流水线的自由度更能突显他的优势, 以上为本人经过gpu编程后的理解,也无人指导,不能完全确定正确,但是至少在编程上是没问题的。 http://www.cnblogs.com/zy776/archive/2007/03/21/683065.html 里面有些介绍
他们不完全是一个相同的概念 可编程流水线在效率上会比固定管线效率高多了 因为他可以自由分配运算的单元, 不同固定管线的都固定了导致有些空闲而有些过于繁忙导致的性能低下

请问关于几个GPU编程的概念问题

3,GPU和GPU编程是什么从什么地方入手

我不明白你所谓的GPU编程是什么意思。GPU是图形处理器,就是显卡上面的那个最大的黑色方块。里面集成了一套系统的运算指令(应该是类似汇编一类的低级语言编译的),没听说过中国有人做这个指令集的。最多是调用相关指令集(这个都少见的很)。个人理解,C++很难实现,语言级别太高,C的话理论上可以,但是估计也不会有人用C语言做这个。然后劝你一句,如果你说的GPU和我说的是一个的话,还是学点别的吧。
GPU 指的是显卡。近年来,显卡的运算能力远超 CPU。苹果公司更是推出了 2013 新款 Mac Pro,里面装有两块 AMD FirePro D 系列显卡,用于提供高达 7 TeraFlops 的计算能力,堪比上世纪末的超级计算机。从什么地方入手:OpenCL。OpenCL 是苹果公司在 2010 年左右,随 MacOSX 10.6 推出的一个并行计算 API。目的就是为了充分利用计算机硬件中,CPU 和 显卡 的全部计算能力。并且已被 Khronos Group 和 OpenGL(3D 游戏图形渲染 API)一并标准化,成为跨平台的标准。
现在gpu编程可以理解为利用shader来控制gpu的渲染输出。directx和ogl都可以进行shader编程。现在nvdia的cuda计算也是一种gpu编程

GPU和GPU编程是什么从什么地方入手

4,GPU是什么GPU编程是什么

GPU是相对于CPU的一个概念,由于在现代的计算机中(特别是家用系统,游戏的发烧友)图形的处理变得越来越重要,需要一个专门的图形的核心处理器。 GPU的作用 GPU是显示卡的“心脏”,也就相当于CPU在电脑中的作用,它决定了该显卡的档次和大部分性能,同时也是2D显示卡和3D显示卡的区别依据。2D显示芯片在处理3D图像和特效时主要依赖CPU的处理能力,称为“软加速”。3D显示芯片是将三维图像和特效处理功能集中在显示芯片内,也即所谓的“硬件加速”功能。显示芯片通常是显示卡上最大的芯片(也是引脚最多的)。现在市场上的显卡大多采用NVIDIA和ATI两家公司的图形处理芯片。 于是NVIDIA公司在1999年发布GeForce 256图形处理芯片时首先提出GPU的概念。GPU使显卡减少了对CPU的依赖,并进行部分原本CPU的工作,尤其是在3D图形处理时。GPU所采用的核心技术有硬体T&L、立方环境材质贴图和顶点混合、纹理压缩和凹凸映射贴图、双重纹理四像素256位渲染引擎等,而硬体T&L技术可以说是GPU的标志。 简单说GPU就是能够从硬件上支持T&L(Transform and Lighting,多边形转换与光源处理)的显示芯片,因为T&L是3D渲染中的一个重要部分,其作用是计算多边形的3D位置和处理动态光线效果,也可以称为“几何处理”。一个好的T&L单元,可以提供细致的3D物体和高级的光线特效;只大多数PC中,T&L的大部分运算是交由CPU处理的(这就也就是所谓的软件T&L),由于CPU的任务繁多,除了T&L之外,还要做内存管理、输入响应等非3D图形处理工作,因此在实际运算的时候性能会大打折扣,常常出现显卡等待CPU数据的情况,其运算速度远跟不上今天复杂三维游戏的要求。即使CPU的工作频率超过1GHz或更高,对它的帮助也不大,由于这是PC本身设计造成的问题,与CPU的速度无太大关系。 GPU最大的优势在于其提供的并行运算。通俗点,就是增加了处理图形计算的计算单元。

5,运用GPU编程做边缘检测

GPU概念 GPU英文全称Graphic Processing Unit,中文翻译为“图形处理器”。GPU是相对于CPU的一个概念,由于在现代的计算机中(特别是家用系统,游戏的发烧友)图形的处理变得越来越重要,需要一个专门的图形的核心处理器。 GPU的作用 GPU是显示卡的“心脏”,也就相当于CPU在电脑中的作用,它决定了该显卡的档次和大部分性能,同时也是2D显示卡和3D显示卡的区别依据。2D显示芯片在处理3D图像和特效时主要依赖CPU的处理能力,称为“软加速”。3D显示芯片是将三维图像和特效处理功能集中在显示芯片内,也即所谓的“硬件加速”功能。显示芯片通常是显示卡上最大的芯片(也是引脚最多的)。现在市场上的显卡大多采用NVIDIA和ATI两家公司的图形处理芯片。 于是NVIDIA公司在1999年发布GeForce 256图形处理芯片时首先提出GPU的概念。GPU使显卡减少了对CPU的依赖,并进行部分原本CPU的工作,尤其是在3D图形处理时。GPU所采用的核心技术有硬体T&L、立方环境材质贴图和顶点混合、纹理压缩和凹凸映射贴图、双重纹理四像素256位渲染引擎等,而硬体T&L技术可以说是GPU的标志。 简单说GPU就是能够从硬件上支持T&L(Transform and Lighting,多边形转换与光源处理)的显示芯片,因为T&L是3D渲染中的一个重要部分,其作用是计算多边形的3D位置和处理动态光线效果,也可以称为“几何处理”。一个好的T&L单元,可以提供细致的3D物体和高级的光线特效;只大多数PC中,T&L的大部分运算是交由CPU处理的(这就也就是所谓的软件T&L),由于CPU的任务繁多,除了T&L之外,还要做内存管理、输入响应等非3D图形处理工作,因此在实际运算的时候性能会大打折扣,常常出现显卡等待CPU数据的情况,其运算速度远跟不上今天复杂三维游戏的要求。即使CPU的工作频率超过1GHz或更高,对它的帮助也不大,由于这是PC本身设计造成的问题,与CPU的速度无太大关系。 GPU最大的优势在于其提供的并行运算。通俗点,就是增加了处理图形计算的计算单元。但是它不同于多核CPU,根据东京大学一个研究(by Takeyoshi Dohi)表明,它的速度至少超过多核CPU 70倍以上。GPU本质上就是个类似CPU的硬件设备,基于此的图形编程,是一个新的需要了解的方向。针对GPU的高级编程语言(汇编当然也可以)称为Shader Language。 Shader language 目前有3 种主流语言:基于OpenGL 的GLSL(OpenGLShading Language,也称为GLslang)基于Direct3D 的HLSL(High Level ShadingLanguage)语言,NVIDIA 公司的Cg (C for Graphic)语言.。使用shader language 编写的程序称之为shader program(着色程序)。

6,c 如何使用gpu计算

如何通过编程将GPU用于通用计算任务  随着现代图形处理器(GPU)可编程能力及性能的提高,应用开发商们一直希望图形硬件可以解决以前只有通用CPU才能完成的高密集计算任务。尽管利用通用GPU进行计算很有发展前景,但传统图像应用编程接口仍然将GPU抽象成一个包括纹理、三角形和像素在内的图像绘制器。寻找一种能够使用这些基本元素的映射算法并不是一项简单的操作,即便对最先进的图形开发商而言也是如此。  幸运的是,基于GPU的计算从概念上讲很容易理解,并且现有多种高级语言和软件工具可以简化GPU的编程工作。但是,开发商必须首先了解GPU在图像绘制过程中是如何工作的,然后才能确定可用于计算的各个组件。  在绘制图像时,GPU首先接收宿主系统以三角顶点形式发送的几何数据。这些顶点数据由一个可编程的顶点处理器进行处理,该处理器可以完成几何变换、亮度计算等任何三角形计算。接下来,这些三角形由一个固定功能的光栅器转换成显示在屏幕上的单独“碎片(fragment)”。在屏幕显示之前,每个碎片都通过一个可编程的碎片处理器计算最终颜色值。  计算碎片颜色的运算一般包括集合向量数学操作以及从“纹理”中提取存储数据,“纹理”是一种存储表面材料颜色的位图。最终绘制的场景可以显示在输出设备上,或是从GPU的存储器重新复制到宿主处理器中。  可编程顶点处理器和碎片处理器提供了许多相同的功能和指令集。但是,大部分GPU编程人员只将碎片处理器用于通用计算任务,因为它通常提供更优的性能,而且可以直接输出到存储器。  利用碎片处理器进行计算的一个简单例子是对两个向量进行相加。首先,我们发布一个大三角形,其所包含的碎片数量和向量大小(容纳的元素)相同。产生的碎片通过碎片处理器进行处理,处理器以单指令多数据(SIMD)的并行方式执行代码。进行向量相加的代码从存储器中提取两个待加元素,并根据碎片的位置进行向量相加,同时为结果分配输出颜色。输出存储器保存了向量和,这个值在下一步计算中可以被任意使用。  可编程碎片处理器的ISA类似于DSP或Pentium SSE的指令集,由四路SIMD指令和寄存器组成。这些指令包括标准数·运算、存储器提取指令和几个专用图形指令。  GPU与DSP的比较  GPU在几个主要方面有别于DSP架构。其所有计算均使用浮点算法,而且目前还没有位或整数运算指令。此外,由于GPU专为图像处理设计,因此存储系统实际上是一个二维的分段存储空间,包括一个区段号(从中读取图像)和二维地址(图像中的X、Y坐标)。  此外,没有任何间接写指令。输出写地址由光栅处理器确定,而且不能由程序改变。这对于自然分布在存储器之中的算法而言是极大的挑战。最后一点,不同碎片的处理过程间不允许通信。实际上,碎片处理器是一个SIMD数据并行执行单元,在所有碎片中独立执行代码。  尽管有上述约束,但是GPU还是可以有效地执行多种运算,从线性代数和信号处理到数值仿真。虽然概念简单,但新用户在使用GPU计算时还是会感到迷惑,因为GPU需要专有的图形知识。这种情况下,一些软件工具可以提供帮助。两种高级描影语言CG和HLSL能够让用户编写类似C的代码,随后编译成碎片程序汇编语言。这些语言编译器可以从Nvidia和微软公司的网站免费下载。尽管这些语言大大简化了描影汇编代码的编写,但实际应用时仍然必须使用图形API来建立并发布计算任务。  Brook是专为GPU计算设计,且不需要图形知识的高级语言。因此对第一次使用GPU进行开发的工作人员而言,它可以算是一个很好的起点。Brook是C语言的延伸,整合了可以直接映射到GPU的简单数据并行编程构造。  经GPU存储和操作的数据被形象地比喻成“流”(stream),类似于标准C中的数组。核心(Kernel)是在流上操作的函数。在一系列输入流上调用一个核心函数意味着在流元素上实施了隐含的循环,即对每一个流元素调用核心体。Brook还提供了约简机制,例如对一个流中所有的元素进行和、最大值或乘积计算。  Brook编译器是一个源到源的编译器,能够把用户的核心代码映射成碎片汇编语言,并生成C++短代码,从而链接到大型应用中。这允许用户只把应用中的性能关键部分输入Brook。Brook还完全隐藏了图形API的所有细节,并把GPU中类似二维存储器系统这样许多用户不熟悉的部分进行了虚拟化处理。  用Brook编写的应用程序包括线性代数子程序、快速傅立叶转换、光线追踪和图像处理。Brook的编译器和实时运行环境可以从http://brook网站上免费获取。  sourceforge.net网站也为许多此类应用提供资源。利用ATI的X800XT和Nvidia的GeForce 6800 Ultra型GPU,在相同高速缓存、SSE汇编优化Pentium 4执行条件下,许多此类应用的速度提升高达7倍之多。  对GPU计算感兴趣的用户努力将算法映射到图形基本元素。类似Brook这样的高级编程语言的问世使编程新手也能够很容易就掌握GPU的性能优势。访问GPU计算功能的便利性也使得GPU的演变将继续下去,不仅仅作为绘制引擎,而是会成为个人电脑的主要计算引擎。

文章TAG:编程  程和  opengl  区别  gpu编程  
下一篇