GPGPU中的一些概念

看GPGPU的程序和网上的一些解释已经有了一段时间了,总在几个概念之中绕来绕去,简单总结一下,防止自己以后再看的时候又要重新看一遍。

纹理缓存:显存中的一部分,显存中有两个部分,纹理缓存和渲染缓存,我们在GPGPU中常用的是纹理缓存,在纹理缓存中我们可以放入纹理图(从内存中读进来),这个所谓的纹理图可以是图像也可以是任何数据,这样我们的显卡读写数据的时候就不用从外部的内存里面找了。

纹理对象:我们在纹理缓存中放入纹理图时通过的是glTexImage2D()或者glTexSubImage2D()这样的函数,但是如果我们在运算的过程中需要多幅纹理图,不可能还总是通过这两个函数在纹理缓存中重复得来读写,最好能让这些纹理图同时存在在纹理缓存中并且我们能够独立得调用它们,于是我们创建多个纹理对象,每个纹理对象对应一幅纹理图并单独使用,创建纹理对象用glGenTextures,用的时候就glBindTexture,不用的时候glDeleteTextures,其实纹理对象很简单,参考内存池的handle。

帧缓存对象(FBO):这个很重要,可以说是显存和内存交流的多口开关或者是桥梁,GPGPU中的关键是渲染到纹理(用渲染过程来进行数据运算),渲染到纹理的关键是将纹理缓存用帧缓存对象(FBO)封装起来,然后设置帧缓存对象而非纹理缓存为渲染对象。

这里贴一幅只要出现FBO就一定会出现的图:

                                                                                   

用FBO封装纹理缓存的过程通过函数glFramebufferTexture2DEXT(enum target, enum attachment, enum textarget, uint texture, int level);

这个函数详细说下:

target: 帧缓存对象类型GL_FRAMEBUFFER_EXT.

attachment: 缓存的类型,讲概念的话反而不清楚,看上图,我们在GPGPU中(其他情况是不是不大清楚)一般写的 GL_COLOR_ATTACHMENT0_EXT,GL_COLOR_ATTACHMENT1_EXT...等等。

textarget: 纹理类型,GPGPU中一般用GL_TEXTURE_RECTANGLE_ARB,因为这样的纹理图的数据坐标是一一对应的,而不是范围是[0,1]中的一个小数

texture: 纹理对象,被绑定的干活,嘿嘿

level: 纹理映射的等级,这涉及到的是3D画图的时候纹理贴图的放大缩小的问题,我们GPGPU中不管,就是0.


mic与gpu对比,GPGPU与MIC定位相似,两者都是相对于CPU具有较高性价比的高性能解决方案,甚至连外形都是一样使用PCI-E插槽的板卡。但对于“核”这个概念来说,两者却有很大的不同。GPGPU所说的核,以CUDA为例,是指一个SP(即流处理器),SP的功能只有计算,以NVIDIA的Fermi GPU为例,32个SP组成一个SM(流处理器群),一个SM 才有两个控制单元。也就是说每16个GPU的“核”,必须执行同一条指令。而MIC得设计思路与GPGPU完全不同。MIC的每个“核”,可以简单看作一个X86核心,也就是与现有PC机或小型服务器上的CPU核心相同的核。因此MIC编程可以最大限度地沿袭已有CPU上的并行程序,甚至可以一定程度上认为MIC上的每个“核”都是独立的节点,亦即将MIC作为一个超小型的集群。MIC的“核”虽然是x86架构,虽然单核的功能比GPGPU的核强大不少,但要指望单兵作战接近主流CPU,暂时还是不现实的。MIC依靠和GPGPU一样,靠人海战术。说起“人数”,GPGPU动辄上百核,MIC只有几十核,几十单核性能再强,在并行应用也掀不起多少浪花。由于MIC的核心是Intel的CPU,核心数即使上不去了,Intel处理器可以超线程。在MIC上,每个核心能同时并发执行4个线程,而且这4个线程被Intel成为“硬件线程”,其性能大幅提升,几乎可以把每个线程看作真正的核心。因此,MIC“执行核”的数量,核GPGPU实际差不多。 另外,MIC采用了SMP结构,以一致性共享缓存为心,这种设计使得MIC可以使用传统CPU的编程模型,而不需要针对性的硬件,设计新的程序结构。 MIC对现有程序改动之小还体现在编程简易性和工具方面。编程简易性上,MIC常用的offload模式只需要加上少数几条编译指导语句,就可以使程序利用MIC进行运算,而此时的程序源代码,是可以与传统的CPU程序共用的,减少了维护成本。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值