https://www.zhihu.com/topic/19570427/top-answers 话题汇总
林名 7年了,是不是该告别
64 人赞同
恰好做系统方案时评估过,有些经验,正好来回答。不过只能简单说一下,具体数据属于公司机密。不知题主想做哪类运算。就纯粹运算能力来说。
先从最弱的说起
一般来讲最弱的是cpu。虽然cpu主频最高,但是单颗也就8核,16核的样子,一个核3.5g,16核也就56g,再考虑指令周期,每秒最多也就30g次乘法。还是定点的。
dsp虽然主频不如cpu,但是胜在乘法器多,随随便便带16个乘法器,还是浮点的。再来个4核,8核,还有特定的算法硬件加速,所以虽然主频只有1,2g但是运算能力还是比cpu强。当然现在出现了带专用乘法器的cpu,dsp也集了arm核,这两个的界限开始模糊了。
gpu的主频一般在500mhz左右,但是核多啊,比如titan,有380多个流处理单元,500*400就是200g这个量级,远大与于前面2者了。
fpga的运算能力的,拿高端的来说。,3000多个固定乘法器,拿数字逻辑还能搭3000个,最快能到接近300mhz, 也就是1800g这个量级。
但是这几个应用场合不同,cpu虽然运算不行,但是擅长管理和调度,比如读取数据,管理文件,人机交互等,例程多,辅助工具也很多。
dsp相比而言管理弱了,运算加强了。这两者都是靠高主频来解决运算量的问题,适合有大量递归操作以及不便拆分的算法。
gpu管理更弱,运算更强,但由于是多进程并发,更适合整块数据进行流处理的算法
fpga能管理能运算,但是开发周期长,复杂算法开发难度大。适合流处理算法,不管是整块数据进还是一个一个进。还有实时性来说,fpga是最高的。前3种处理器为了避免将运算能力浪费在数据搬运上,一般要求累计一定量数据后才开始计算,产生群延时,而fpga所有操作都并行,因此群延时可以很小
2月份更新
感谢Shu Zhang的指出,参数是不对,我只是使用手头现有的器件进行评估,并没有使用高端器件进行估算。而且之前关于功耗,成本,面积,供应情况,以及采购策略等前置约束条件均未提及。不过基本策略应该没问题的。实际也跑过验证了。当然这里面也留余量了。这里呈现的是个工程问题的结论