并行计算与GLSL的一些总结

并行计算模型:

指令并行:指令并行简单的说就是流水线技术,通过使用多流水线来达到并行的效果,其实在特定的时间片内,处理器每次还是只能处理一个线程,我觉得这个可以理解为微观上的串行,宏观上的并行,实质还是伪并行。

数据并行:指多个不同的数据同时被相同的指令、指令集或者算法处理。这和GPU并行的概念是相同的。这样的话我们可以把每个处理器设计的很简单,因为都可以运行相同的指令和算法,相互之间的协调和通信也是比较简单的。

任务并行:是指在多个数据上执行不同的指令、指令集或者算法。这与多核CPU的并行模型是相同的。

 

经典GPGPU(GLSL)运算的优缺点:

GLSL使用了通用的图形API,比如openGL,作为实现手段,这使得它具有高度的通用性和可移植性,对操作系统和图形处理器都没有限制性的要求。也就是说它可以运行在windows下,可以运行在linux下,可以运行在intel,nvidai,ATI甚至是支持opengl的手机显卡上。而且由于GLSL更接近底层,所以它的系统开销也很小。这是它的优点。

 

但是它还有很多的缺点,首先就是编程人员要对图形流水线,计算机图形学有一定的了解,如果对这些不了解根本无法进行程序的编写。

其次,GLSL本来是为了图形渲染诞生的,通用计算只是它的一个“副产品”,所以我们在实现加速算法的时候需要一些技巧,比如我们要处理一个矩阵,就要将这个矩阵输入到纹理缓存,把这个矩阵当成一幅图来处理。还有GLSL对线程的分配和控制能力很弱,很难为特定的硬件架构提供细致的接口,无法发挥出硬件的强大性能。

在GLSL中,用户只能选择输入数据的数量(即纹理图的尺寸),而对于处理器中分配的线程总数不能干预。事实上,线程数等于纹理元的数量,是不能选择的,在CUDA中,用户不仅可以定制线程的数目,更可以将它们编制为合适的线程组。


参考文献:

《GPGPU编程技术——从GLSL、CUDA到openCL》 仇德元编著

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值