当前位置:   article > 正文

GPGPU入门第一步_如何调用gpgpu

如何调用gpgpu

    GPGPU(General Purpose Computing on GPUs)的核心理念是将数组映射到纹理中,然后使用纹理来利用GPU进行并行计算,从而实现加速的作用。

    首先,需要创建一个离屏渲染缓冲区(Frame Buffer Object),这样做的目的是将渲染(Render)工作放在后台,而不是渲染到常规的帧缓冲中,自然也就和显示没有任何关系,因为我们的目标是纯粹的利用GPU进行数值计算。

    注:当然,所使用的显卡以及相应的显卡驱动程序必须支持shading language等扩展,具体的可以通过glview这个软件进行查看。

 

 

    FBO的创建代码:

 

 

    接下来生成一个纹理,并对纹理进行简单的设置:

 

 

    然后将FBO对象和FBO纹理绑定在一起:

 

 

    开始将数据传入纹理中:

 

 

    为了确认数据确实传入了GPU内存单元中,我们再将刚才传进去的数据读取出来,看看和原来的输入数据(也就是data数组)是否一样:

 

    至此,完成了GPGPU的第一步:将数组数据传送到显卡内存中,再从显卡内存中将数据读取出来。代码看上去比较麻烦,但是单机并行计算的诱惑是非常大的,拿我的GTX275显卡为例,240个流处理器,用来做并行计算是何等的强悍!

 

 

    下面总结一下:

    1.创建一个FBO

    2.创建纹理,用于存储数据

    3.用“glFramebufferTexture2DEXT”函数将FBO和纹理进行绑定。这里可以这样理解:FBO是一个大厅,这个大厅有很多门,具体的每一个门就是一个“GL_COLOR_ATTACHMENT0_EXT”(ATTACHMENT后面的数字就是每一个门的门牌号)。然后使用“glDrawBuffer”函数来确定我们的数据到底从哪一个门通过。

    4.全部确定好以后,使用“glDrawPixels”函数来进行从数组到纹理的数据传递过程。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/831450
推荐阅读
相关标签
  

闽ICP备14008679号