并行计算与GLSL的一些总结
2013-08-20 10:33
211 查看
并行计算模型:
指令并行:指令并行简单的说就是流水线技术,通过使用多流水线来达到并行的效果,其实在特定的时间片内,处理器每次还是只能处理一个线程,我觉得这个可以理解为微观上的串行,宏观上的并行,实质还是伪并行。
数据并行:指多个不同的数据同时被相同的指令、指令集或者算法处理。这和GPU并行的概念是相同的。这样的话我们可以把每个处理器设计的很简单,因为都可以运行相同的指令和算法,相互之间的协调和通信也是比较简单的。
任务并行:是指在多个数据上执行不同的指令、指令集或者算法。这与多核CPU的并行模型是相同的。
经典GPGPU(GLSL)运算的优缺点:
GLSL使用了通用的图形API,比如openGL,作为实现手段,这使得它具有高度的通用性和可移植性,对操作系统和图形处理器都没有限制性的要求。也就是说它可以运行在windows下,可以运行在linux下,可以运行在intel,nvidai,ATI甚至是支持opengl的手机显卡上。而且由于GLSL更接近底层,所以它的系统开销也很小。这是它的优点。
但是它还有很多的缺点,首先就是编程人员要对图形流水线,计算机图形学有一定的了解,如果对这些不了解根本无法进行程序的编写。
其次,GLSL本来是为了图形渲染诞生的,通用计算只是它的一个“副产品”,所以我们在实现加速算法的时候需要一些技巧,比如我们要处理一个矩阵,就要将这个矩阵输入到纹理缓存,把这个矩阵当成一幅图来处理。还有GLSL对线程的分配和控制能力很弱,很难为特定的硬件架构提供细致的接口,无法发挥出硬件的强大性能。
在GLSL中,用户只能选择输入数据的数量(即纹理图的尺寸),而对于处理器中分配的线程总数不能干预。事实上,线程数等于纹理元的数量,是不能选择的,在CUDA中,用户不仅可以定制线程的数目,更可以将它们编制为合适的线程组。
参考文献:
《GPGPU编程技术——从GLSL、CUDA到openCL》 仇德元编著
指令并行:指令并行简单的说就是流水线技术,通过使用多流水线来达到并行的效果,其实在特定的时间片内,处理器每次还是只能处理一个线程,我觉得这个可以理解为微观上的串行,宏观上的并行,实质还是伪并行。
数据并行:指多个不同的数据同时被相同的指令、指令集或者算法处理。这和GPU并行的概念是相同的。这样的话我们可以把每个处理器设计的很简单,因为都可以运行相同的指令和算法,相互之间的协调和通信也是比较简单的。
任务并行:是指在多个数据上执行不同的指令、指令集或者算法。这与多核CPU的并行模型是相同的。
经典GPGPU(GLSL)运算的优缺点:
GLSL使用了通用的图形API,比如openGL,作为实现手段,这使得它具有高度的通用性和可移植性,对操作系统和图形处理器都没有限制性的要求。也就是说它可以运行在windows下,可以运行在linux下,可以运行在intel,nvidai,ATI甚至是支持opengl的手机显卡上。而且由于GLSL更接近底层,所以它的系统开销也很小。这是它的优点。
但是它还有很多的缺点,首先就是编程人员要对图形流水线,计算机图形学有一定的了解,如果对这些不了解根本无法进行程序的编写。
其次,GLSL本来是为了图形渲染诞生的,通用计算只是它的一个“副产品”,所以我们在实现加速算法的时候需要一些技巧,比如我们要处理一个矩阵,就要将这个矩阵输入到纹理缓存,把这个矩阵当成一幅图来处理。还有GLSL对线程的分配和控制能力很弱,很难为特定的硬件架构提供细致的接口,无法发挥出硬件的强大性能。
在GLSL中,用户只能选择输入数据的数量(即纹理图的尺寸),而对于处理器中分配的线程总数不能干预。事实上,线程数等于纹理元的数量,是不能选择的,在CUDA中,用户不仅可以定制线程的数目,更可以将它们编制为合适的线程组。
参考文献:
《GPGPU编程技术——从GLSL、CUDA到openCL》 仇德元编著
相关文章推荐
- 一些关于并行计算的科研思路
- 并行计算结课论文边写边总结(1)
- 【并行计算-CUDA开发】【视频开发】ffmpeg Nvidia硬件加速总结
- 关于并行计算发展的一些思考
- 2012-03-20:并行计算相关知识总结
- 并行计算的一些背景知识
- 一些关于并行计算的科研思路
- 多核并行计算——学习总结
- 并行计算部分总结
- Java中关于同步,异步,多线程,多线程同步,并发,并行的一些总结
- [转载]并行计算部分总结
- 总结了一些大数计算,未完待续。。。
- 并行计算的一点小总结
- 并行计算结课论文边写边总结2
- 实时计算的一些总结
- 关于BGT24MR12和HMC703配合使用实现天线扫频的原理和一些配置字计算的总结
- Fortran并行计算的一些例子
- 课程总结 -- CPU/GPU并行计算基础(CPU篇)
- 云计算的一些总结知识
- 一些关于并行计算的科研思路