CUDA WRAP

    gpu架构:多核心,每个核心有8个流处理器。每个核心有一个共享内存,一个纹理内存,和一个常量内存。每个核心有8192处理器,多啊。 gpu架构与cpu架构的主要区别是gpu把更多的晶体管用作数据处理,而指令控制和数据缓存用的很少。

    cuda从处理角度分为网格,块,线程。举个例子:网格就相当与一帧图片,块就相当与从图片分割的一个宏块,线程可以理解为宏块的每一个像素。 gpu执行的时候是按wrap为单位执行,一个wrap为32个线程(每个流处理器有4个周期),一般就是一个宏块或者其中一部分给一个wrap执行。一个核心有8192个寄存器,每个并行线程都需要一定寄存器,经估计目前一个核心最多只能有512个线程执行。并行架构对分支指令执行不太理想,最好是去掉分支。不然的话程序就会对每个可能情况执行一遍,影响速度。如何设计分支是一个重要的优化问题。一个好的方法是一个warp块里面确保是一个分支。同一块多个线程可以共享内存,但是必须同步。对共享内存的写入同一个位置不能预计哪个线程能够执行,但是肯定有一个线程执行。

    并行处理是未来计算机发展的趋势,cuda只是并行处理的一个方面。通过cuda的学习了解并行处理。但是目前的cuda能否做产品级别的东西还有待商榷。希望自己对未来的通用软件的发展出一份力。

 

by http://blog.sina.com.cn/dspc6000

posted @ 2010-04-28 16:30  rootxue  阅读(1131)  评论(0编辑  收藏  举报