说起CPU,我觉得大家都已经很熟悉了。是“中央处理器”的英文缩写,它是用来“运算”的。大部分我们所熟悉的电子设备,像手机、电脑,它们所实现的各种功能,都是通过CPU的“运算”来实现的。它几乎是所有电子数码设备的大脑。
计算机之所以被计算机,因为它的大脑,CPU,就是用来计算的。
FPGA是什么?它跟CPU一样,也是用来计算的。但是,它的计算方式,跟CPU很不一样。
计算机是用来计算的
首先我们都知道,CPU它是通过“计算”能力,为计算机提供各种的功能。
程序员,把程序代码噼里啪啦地输入到了计算机里面,啪一声按下确认键,CPU把程序代码进行计算,达成各种各样的目的。
运算的结果是什么呢?程序输入CPU,运算成了操作系统,运算成了软件、app、网页等等。所有的这一切,都是经过CPU“计算”产生的。
嗯,CPU,他很像我们人类的大脑。
串行计算
我们人类的大脑有什么样的特点?它就像人类的大脑那样,他只能同时做一件事情。CPU是串行的,一样也是只能同时进行一次计算。
我们比方说,现在要进行两场考试,一场是英语,一场是数学,我们会把这两场考试给分开进行,绝对不会说,让你左手做英语试卷,右手做数学数卷,那是不可能的,人的脑袋,同时只能专注一件事情。
后来,CPU发展出了多核,你在那些电脑还有手机,老是标榜着自己是双核四核八核,甚至十六核。
但是很多时候,核多是没有意义的。因为程序员在编写程序的时候,程序本身,是针对单核设计。最常见的例子莫过于我们的一些手机游戏,游戏逻辑和图形渲染,是跑在一个核里的。所以说,是否够快,很多时候还得取决于单核性能。
并行计算
FPGA是什么呢?
我们都听过三个臭皮匠,胜过知一个诸葛亮的谚语。他的寓意就是说,三个很普通的人,合起来的智慧也是可以超过诸葛亮的。
FPGA就像是一群臭皮匠,CPU就像是一个诸葛亮。
就像我们前面所说的,我们人脑就像CPU,不能同时做多份作业。只能专注于一件事情。而这群“臭皮匠”则不同,FPGA十分擅长同时做多件事情,我们叫作“并行计算”,也常被称为“异步计算”。
而技术上来说,FPGA也由非常多的核组成的。但跟CPU不同的是,工程师们可以根据他们的需要,把这么一群“臭皮匠”,重新进行自定义的排列组合,来满足他们想要的计算。FPGA号称“万能芯片”。
FPGA并不是要替代CPU。这就像大部分的工作重要事务,都掌权在诸葛亮手上,那可是重要人物,可不能随意说换就换;臭皮匠们则可以凭借他们人多的优势,处理很多的一些重复的单纯的事情。
FPGA的这个特点,非常适合我们今年大热的人工智能。人工智能里面就有非常大量的一些重复性、需要并行计算的工作,像图像识别、图像处理、深度学习等等。
哪些领域正在应用FPGA?
微软在数据中心使用FPGA代替传统CPU的做法;腾讯云则直接提供了FPGA云服务器,降低开发者自购设备的高昂成本;iPhone 7里有使用Lattice这家上市公司的FPGA芯片;大疆无人机中也采用了FPGA芯片......
可以看到的,不论上企业端(微软、云计算),还是消费端(iPhone 7、大疆无人机),都能看到FPGA芯片的身影,在未来,它还有很大的发展空间。