但FPGA真的能取代CPU和GPU吗?

FPGA相对于CPU和GPU,在进行感知处理等简单重复的任务的时候的优势很明显,按照现在的趋势发展下去,FPGA或许会在未来取代机器人开发中GPU的工作。因为FPGA和GPU虽然都精于大量的重复运算,但FPGA的能耗会远低于GPU。可是FPGA或许永远没有办法取代CPU的地位,而事实上目前的各类应用中,FPGA也多作为CPU的协处理器而出现,而不是真正的核心运算单元。而个中原因其实也很简单,正是我们之前提到过数次的一个词:设计目的。

  人类设计机器人的最终目的是希望它们能变得像我们一样,用跟我们类似的方式思考,拥有独立判断形势、处理任务的能力。我们目前还不是很了解大脑工作的具体原理,但无论从经验还是直觉来看,类似人类的思维都不是由无数逻辑简单的堆积起来的。因为思维这件事物的复杂程度已经远远超出了运算的范畴。比如说,如果你想计算213 x 312而你想将它简化,你只需要很简单的将它分解成213个312相加,甚至是重复213次312个1相加。但如果你想算2的64次方呢?如果你想算sin(27°)呢?甚至如果你想算log230呢?如果你一定要将其分拆成简单的运算,你就会发现你需要的资源会以难以想象的速度增长,直到就连把全市的小学生都叫来也做不完的程度。

  就目前的表现来看,人脑显然不适合大规模并行计算。而更像是CPU那样精于单一且深度的思考(运算)。并且人脑的功能也与CPU的设计定位更吻合。因此无论如何,在脑科学有突破性进展之前,人们还是会倾向于使用看起来更有潜力的CPU来作为机器人的核心运算部件。或许随着FPGA的发展,机器人的越来越多感知部件的数据运算会由FPGA来承担(就像人类的小脑),但很明显,一个部件的地位主要、核心与否,不是靠数量来判断的。

  不能否认FPGA确实能在机器人开发中发挥很大的作用。但综合来看,它和CPU,甚至GPU更像是一种各司其职的地位,动不动就谈替代,或许有失严谨。