GPU与CPU

GPUGraphic Processing Unit“图形处理器”

CPU: Central Processing Unit中央处理器”

GPU与CPU_第1张图片

 GPU与CPU_第2张图片

两者的架构区别:Control是控制器、ALU算术逻辑单元、Cache是CPU内部缓存、DRAM就是内存,GPU设计者将更多的晶体管用作执行单元,而不是像CPU那样用作复杂的控制单元和缓存。CPU芯片空间的5%是ALU,而GPU空间的40%是ALU。

GPU编程库:

CUDA和OpenCL是最主流的两个GPU编程库,CUDA和OpenCL都是原生支持C/C++的。CUDA程序流程:

GPU与CPU_第3张图片

GPU:

GPU采用流式并行计算模式,可对每个数据进行独立的并行计算,所谓“对数据进行独立计算”,即,流内任意元素的计算不依赖于其它同类型数据。

(1)SP: streaming processor流处理器。最基本的处理单元,最后具体的指令和任务都是在sp上处理的。GPU进行并行计算,也就是很多个sp同时做处理。

Shadercore(渲染核/着色器),SP的另一个名称,又称为CUDA core,始于Fermi架构

(2)SM:streaming multiprocessor流多处理器。多个sp加上DP、SFU等运算单元组成一个SM.这是一个典型的阵列机,执行方式为SIMT(单指令多线程),区别于SIMD(单指令流多数据流),能保证多线程的同时执行。

(3)SFU(Special Function Unit):特殊函数单元用来执行超越函数指令,比如正弦、余弦、平方根等函数。

DP(双精度浮点运算单元)

(4)warp:GPU执行程序时的调度单位,线程束,目前cuda的warp的大小为32,同在一个warp的线程,以不同数据资源执行相同的指令。

(5)grid、block、thread:在利用cuda进行编程时,一个grid分为多个block,而一个block分为多个thread.其中任务划分到是否影响最后的执行效果。

划分的依据是任务特性和GPU本身的硬件特性.一个sm只会执行一个block里的warp,当该block里warp执行完才会执行其他block里的warp。SM 是以warp为单位调度线程的,每一个SM 的两个warp调度单元和两个指令分发单元,允许同时启动和执行两个warp。

GPU与CPU_第4张图片


​​​​​

(6)MMC(MeMoryController)存储控制器:控制存储访问的单元,合并访存。每个存储控制器可以支持一定位宽的数据合并访存。

(7)GPC(Graph Processing Cluster)图形处理器簇:类似于TPC,是介于整个GPU和SM间的硬件单元,始于Fermi构架。

(8)SPA(Scalable streaming Processor Array)可扩展的流处理器阵列:所有处理核心和高速缓存的总和,包含所有的SM、TPC、GPC。与存储器系统共同组成GPU构架。

(9)ROP(raster operation processors)光栅操作单元。

(10)LD/ST(Load/Store Unit)存储单元

TPC(Thread Processing Cluster)线程处理器簇:由SM和L1 Cache组成,存在于Tesla架构中。

TPC(Texture Processing Cluster)纹理处理器簇:出现在Pascal架构中。

GPU与CPU_第5张图片

 GPU与CPU_第6张图片

你可能感兴趣的:(CPU与GPU,gpu)