DSP

CPU, DSP, GPU, FPGA对比

2019-07-13 09:52发布

1. CPU

一般来说CPU运算能力最弱,CPU虽然主频最高,但是单颗也就8核、16核的样子,一个核3.5g,16核也就56g,再考虑指令周期,每秒最多也就30g次乘法。还是定点的。


2. DSP

DSP虽然主频不如CPU,但是胜在乘法器多,随随便便带16个乘法器,还是浮点的。再来个4核,8核,还有特定的算法硬件加速,所以虽然主频只有1,2g但是运算能力还是比CPU强。当然现在出现了带专用乘法器的CPU,DSP也集了ARM核,这两个的界限开始模糊了。
DSP所有计算均使用浮点算法,而且目前还没有位或整数运算指令


3. GPU


GPU专为图像处理设计,主频一般在500mhz左右,但是核多啊,比如titan,有380多个流处理单元,500*400就是200g这个量级,远大与于前面2者了。


4. FPGA


FPGA的运算能力的,拿高端的来说。3000多个固定乘法器,拿数字逻辑还能搭3000个,最快能到接近300mhz, 也就是1800g这个量级。 总结:
这几个应用场合不同,CPU虽然运算不行,但是擅长管理和调度,比如读取数据,管理文件,人机交互等,例程多,辅助工具也很多。 DSP相比而言管理弱了,运算加强了。这两者都是靠高主频来解决运算量的问题,适合有大量递归操作以及不便拆分的算法。 GPU管理更弱,运算更强,但由于是多进程并发,更适合整块数据进行流处理的算法 FPGA能管理能运算,但是开发周期长,复杂算法开发难度大。适合流处理算法,不管是整块数据进还是一个一个进。还有实时性来说,FPGA是最高的。前3种处理器为了避免将运算能力浪费在数据搬运上,一般要求累计一定量数据后才开始计算,产生群延时,而FPGA所有操作都并行,因此群延时可以很小  

CPU和GPU对比:

上图是CPU与GPU内部结构上的对比,总体上来说二者都是由控制器(Control),寄存器(Cache、DRAM)和逻辑单元(ALU:Arithmetic Logic Unit)构成。但是三者的比例却有很大的不同。在CPU中控制器和寄存器占据了结构中很大一部分,与之相反,在GPU中,逻辑单元的规模则是远远超过其他二者之和。这种不同的构架就决定了CPU在指令的处理/执行,函数的调用上有着很好的发挥,但由于逻辑单元所占比重较小,相对于GPU而言,在数据的处理方面(算术运算或者逻辑运算)的能力就弱了很多。 

关于 CPU cache的介绍

https://www.cnblogs.com/snow826520/p/8574824.html