一起CUDA吧

今天NVIDIA的技术人员来到了浙大,向我们带来了一种先进的很可能的是划时代的编程框架——CUDACompute Unified Device Architecture),这场技术讲座让我受益匪浅。

CUDA就是一个NVIDIA GPU的计算框架。在以往GPU只负责图形数据运算,而CUDA是将GPU的强大的并行计算能力应用到所有的其他对CPU编程的程序,而且目前他已经对一些高级语言进行了扩展(现在有C),使得开发人员可以用高级语言来编写这样的程序。

CUDA等于是把过去在CPU上做的事情给抢了,搬到了GPU上来做,而且效率会是在CPU上的几十上百倍,一些大计算量的工作,比如工程计算、医学影像、图形图像处理、数字娱乐、视频编码、数字娱乐等等这些大计算量的工作如果在GPU上并行运算,效率提升是非常巨大的。CUDA虽然是GPU的计算,但是它离不开CPUCUDA是一个异构架构,也就是它需要CPUGPU协同作站,其原因是因为GPUCPU的体系的区别。

CPU上有ALU,也有很多的CACHE,而且有很多控制逻辑,但是GPU上大部分都是ALUGE80前的GPU主要有顶点处理器、片段处理器和测试处理器,GE80及之后的GPU将顶点处理器和片段处理器合并了起来,而采用一个控制逻辑动态分配处理器用于顶点和片段的处理。也就是说GPU的强项在于并行计算,而CPU中有大量的控制逻辑,计算能力不如GPUCUDA的架构就是使用CPU控制逻辑,而使用GPU来进行计算,最大发挥效率十一哥CPU+GPUs的组合。挺NVIDIA的人说这种框架可以把效率提升几十倍,又能吧硬件消耗降低几十倍。比如以往的大规模并行计算可能要大量的CPU联合,现在可能只要几块最普通GE80GPU加一块CPU。看来也许以后CPU可以专门负责控制调度了,所有的计算都搬到GPU上了,不知那时INTEL会不会破产。

现在的可以运行CUDA程序的GPU主要是GE80之后的。Nvidia的显卡主要分三类:QUADRO:最专业的图形处理器,它同时有强大的图形处理能力和强大的计算能力,GEFORCE:它比QUADRO性能差些,但是是通常PC使用的。TESLA;这是最新发布的,它是专门用于CUDA的,因为它不具有图形处理能力,只能进行并行计算。

CUDA的编程可以去查阅NVIDA的官网,它的核心思想是:初始化GPU-GPU上分配存储-GPU上运行KERNAL函数-把数据从GPU的显存传回CPU的主内存-释放GPU上的存储-退出

看了几个CUDA程序的小DEMo,觉得很容易懂的,打算去学CUDA去了。

posted on 2009-05-08 21:05  leonwei  阅读(136)  评论(0编辑  收藏  举报