GPU的体系结构与通用计算GPGPU_第1页
GPU的体系结构与通用计算GPGPU_第2页
GPU的体系结构与通用计算GPGPU_第3页
GPU的体系结构与通用计算GPGPU_第4页
GPU的体系结构与通用计算GPGPU_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、GPU勺体系结构与通用计算(GPGPU1、总体框架可编程图形流水线的总体框架如图 3所示,左边用实线表示的流程就是传统 的图形流水线的流程;在这种通用的流水线中,首先经过顶点级的光照计算和坐 标变换,求出每个顶点的光照颜色值,同时还将顶点坐标从物体坐标系转换到裁 剪空间(clip Space)然后,对每个三角形进行光栅化处理并将对三角形顶点的颜 色进行双线性插值,得到了三角形中每一个象素的颜色值。接着进行纹理映射, 即根据每一个象素的纹理坐标值将纹理图颜色分配到每个象素上。最后进行颜色混合计算(Blendingk口雾化效果计算,得到的结果将会放进帧缓存 (Frame buffer) 并显示到屏

2、幕上。目前的可编程的图形硬件中,除了光栅化这一部分依然保持固 化的硬件实现不变以外,其他部分都引入了可编程性。也就是图中的虚线部分。项直看色器效素数据颜色值,坡理“ 坐标蚊迎果提光栅化微色混合运算J象素级运算、雾化效果计算I J计算管线12;丁计算管线1宇顶点数据顶点/法冏/颜色值,纹理坐标/ 顶点的光照计算,坐标变换帧覆存,3图3可编程图形流水线的总体框架顶点着色器(Vertex Shader)勺功能正是为了实现顶点的光照计算和坐标变换, 在过去的硬件中,人们只能实现一些固定的光照模型和坐标系转换计算,但是在 现在的可编程的图形硬件中,用户可以通过编写代码自由地设计自己所需要的光 照模型和坐

3、标系转换计算公式,只要不超出硬件的功能即可。象素着色器(Pixel Shader)功能相对比较复杂,同时限制较多。它几乎包括 了所有光栅化以后的操作:采样纹理,颜色混合计算(Blending)和雾化效果计算等, 传统图形硬件中每个顶点的纹理坐标值需要人工指定或者根据空间坐标来计算, 而在象素着色器中,允许采用多种纹理访问方式;每个象素的绘制信息(例如,象 素颜色值、纹理坐标等)均保存在寄存器中,象素着色器通过完成这些寄存器之 间的加法,乘法或者点积等运算操作,从而在象素级别上实现光照明模型的计算。2、顶点着色器顶点着色器由算术逻辑单元和相应的寄存器组成。顶点着色器和像素着色器 都没有内存的概念

4、,所有的运算都在寄存器之上进行。每一个寄存器都是4维向 量寄存器,指令集中的指令可以同时对4个分量进行运算,因此可以把它们看作 是一个基于寄存器的向量处理器。l输入寄存器用于存放当前被处理的顶点的属性,例如顶点位置、法向量、 颜色和纹理坐标。l常量寄存器用于为顶点程序提供只读常量参数,由CPU控制,也就是通过外界函数调用进行赋值。l只写的输出寄存器则用于输出处理后的顶点属性。l可读写的寄存器则可在顶点绘制编程器的计算过程中作为临时寄存器使 用。这些寄存器通常有固定的表达方式:输入寄存器为 Vn,输出寄存器为On, 常量寄存器为Cn,而可读写寄存器则为 Rn,这里的n就是具体的寄存器编 号。如第

5、十号的输入寄存器就写作 V10。而且每个寄存器都可以用xyzw后缀 名来访问寄存器中的RGBA&个分量,比如说:R1.w表示的就是第1号可读写 寄存器的第四个分量一一A分量。图4顶点着色器3、像素着色器像素着色器和顶点着色器的组成类似,但多了纹理寻址的功能。纹理采样图5像素着色器4、与CPU勺区别CPUGPU图6 GPU与CPU流水处理线图形应用的特点是大运算量、大规模并行性、允许较长的延迟与深度前向流 水。这就决定了图形处理器和微处理器在体系结构上存在着很大的差别。首先图形处理器要尽可能的实现高度并行性。 这种并行性分为两种:数据并行 性与流水线并行性。为了充分利用数据并行性,图形处理器在两

6、个层次上进行并 行处理。第一层利用输入数据流中数据元素之间的无关性,多个顶点(或像素)处理器运行一个顶点(或者彳a素)着色程序的多个拷贝,同时作用于输入数据流中的 多个数据元素之上。从这个意义上说,图形处理器是一个流处理器。 第二层是利 用图形运算包含大量向量运算的特点, 实现指令级并行性。具体地说就是把多个 同类型的标量运算合并到一个向量运算之中。因此,图形处理器又是一个向量处 理器。其次,流水并行性允许顶点着色程序与像素着色程序同时运行,前者的输出 恰为后者的输入,构成一种生产者和消费者的关系。再次,为了保证大规模并行运算,图形处理器基本上不支持转移指令或者只 提供有限的支持,着色程序的静

7、态长度和动态可执行长度也非常短。最后,图形处理器有着比微处理器多的多的算术逻辑运算单元。图形处理器 的所有指令都具有相同的延迟,不存在各类流水竞争。5、通用计算GPGPU图形处理器强大的运算能力吸引着研究者们思考这样的问题:能不能利用GPU做一些3D绘制以外的工作。基于 GPU的通用计算(General Purpose GPU GPGPU的概念应运而生,它指的是利用图形卡来实现一般意义上的计算,而不 单纯是3D绘制。在可编程图形处理器迅速发展的同时,相关的软件开发技术也在不断进步。目前,常用的三维图形编程接口是 OpenGL和Direct3D,其扩充功能由GPU厂家 提供,或由API软件开发者

8、提供。利用高级语言而不依赖于具体的硬件及计算平 台的编程一直是应用的努力目标,并陆续出现了基于各种编程接口的高级渲染语 言。绘制程序(Shader)S计的思想源自于早年 Pixar设计的RenderMan绘制软件。 此软件多年来广泛应用于好莱坞电影制作的绘制。关于新型标准绘制语言的研究工作,近年来具有较大影响的是:OpenGL shading language斯坦福大学的RTSL(real-time shading language) Microsoft 的 HLSL (high-level shading language) 以及Nvidia的Cg(C for graphic。尽管还未形成统一的绘制语言,这些语言 的研究和应用为用户提供了直接基于 API(OpenGL或DirectX)编程的较为方便和 高层次的工具,尤其是Nvidia的Cg。图7 GPU通用计算Cg代表(用于图形的C语言),是由Nvidia认公司推出的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论