其他
关注老石谈芯,一起探究芯片本质目前,全世界超过90%的数据都是在过去的两三年之内产生的。随着人工智能、自动驾驶、5G、云计算等各种技术的不断发展,海量数据都将会继续源源不断的产生。预计到2025年,数据总量将比现在增长10倍。在这些技术的发展中,很大的一部分都基于对大数据的研究和分析。正因为如此,很多人就形象的将数据比喻为人工智能时代的石油。为了对海量的数据进行处理,基于传统CPU的计算结构已经很难满足需求了,我们需要更加强大的硬件和芯片,来更快、更好的完成这些工作。此外,我们也需要更好的方法,比如使用各种人工智能的算法和模型,来帮助我们进行数据的分析和处理,并得到有意义的结论。如果把这两者结合起来,就产生了各种各样的人工智能芯片。在这篇文章里,我们来一起看一下关于人工智能芯片的几个有意思的事情。我想讨论的重点,是在实际的工程实践和应用场景里,如何对人工智能加速芯片进行合理的评价和选择,以及各种不同的AI芯片的优缺点都有哪些。我会给大家介绍一个简单的思维框架,帮助大家理解和思考。关于这四种芯片的具体比较,我总结了一个思维导图,请在公众号老石谈芯的后台,回复“ai芯片”,获取这张思维导图。讨论:一个前提条件在开始讨论之前,我们首先要明确一些讨论的前提条件,这些对于接下来的分析至关重要。很多人常犯的一个逻辑谬误,就是在讨论问题的时候缺少一个特定的讨论范围,这个英文叫做context,中文通常翻译成语境,或者上下文。说白了,这个就是我们在讨论问题的时候,要圈定一个讨论的范围,大家都在这个圈圈里讨论问题。这就像拳击或者格斗比赛一样,要在那个擂台上比拼,不能跑到台下打。否则的话,就会像老郭和于大爷说的那样:你和他讲道理,他和你讲法制;你和他讲法制,他和你讲政治;你和他讲政治,他和你讲国情;你和他讲国情,他和你讲文化;你和他讲文化,他和你讲道理......同样的,对于我们要讨论的人工智能芯片,其实有很多不同的应用领域。从这个角度来看,AI芯片可以分成移动端和服务器端两大类,也有很多人把两类称为终端和云端。事实上,在这两类应用中,人工智能芯片在设计要求上有着本质区别。比如,移动端更加注重AI芯片的低功耗、低延时、低成本,而部署在云端的AI芯片,可能会更加注重算力、扩展能力,以及它对现有基础设施的兼容性等等。对于这两类人工智能芯片,我们很难直接进行比较。这就好像一棵大树,它的树干负责支撑起这颗树,并且还能输送各种营养物质。它的树叶就负责进行光合作用,并生产营养物质。但是我们很难比较树干和树叶,究竟谁更有用。在这篇文章里,我们要把讨论的范围缩小,只关注部署在服务器端的人工智能芯片的相关问题。此外,我们还需要明确一下具体讨论哪些AI芯片。这篇文章将主要对比四种最常见的芯片:CPU、GPU、ASIC和FPGA。其他的一些相对小众的芯片种类,比如类脑芯片和量子芯片等等,就不列入讨论的范围了。分析:一个思维框架我们现在明确了讨论的领域和对象,也就是部署在服务器端的四种常见的芯片,接下来应该确定的是,通过什么样的方式来衡量这些AI芯片的优缺点。在这里给大家介绍一个我们在工程实践里经常使用的思维框架。具体来说,当我们考虑在数据中心里大量部署AI芯片的时候,通常需要考虑以下几个重要的因素。首先就是算力,也就是芯片的性能。这里的性能有很多方面,比如这个芯片做浮点或者定点数运算的时候,每秒的运算次数,以及这个芯片的峰值性能和平均性能等等。但是,算力或者性能其实并不是衡量AI芯片好坏的唯一标准。事实上,在很多时候它甚至不是最重要的标准。那么,还有哪些考虑的因素呢?在这个思维框架里,一共有五个衡量因素。除了性能之外,还有灵活性、同构性、成本和功耗四点。其中,灵活性指的是这个AI芯片对不同应用场景的适应程度。也就是说,这个芯片能不能被用于各种不同的AI算法和应用。同构性指的是,当我们大量部署这个AI芯片的时候,我们能否重复的利用现有的软硬件架构和资源,还是需要引入其他额外的东西。举个简单的例子,比如我的电脑要外接一个显示器,如果这个显示器的接口是HDMI,那么就可以直接连。但是如果这个显示器的接口只有VGA或者DVI或者其他接口,那么我就要买额外的转接头才行。这样,我们就说这个设备,也就是显示器,它对我现有系统的同构性不好。成本和功耗就比较好理解了。成本指的就是钱和时间,当然如果细抠的话,还有投入的各种人力物力,以及没有选择其他芯片带来的机会成本等等。不过归根到底还是钱和时间。成本包含两大部分,一部分是芯片的研发成本,另一部分是芯片的部署和运维成本。功耗就更好理解了,指的就是某种AI芯片对数据中心带来的额外的功耗负担。比较:4种芯片,5个维度现在我们知道了这个思维框架里的五个重要元素,那么我们就能对前面提到的四种芯片,也就是CPU、GPU、ASIC和FPGA做一个定性的比较了。这里声明一下,这些对比仅代表我个人的观点,也欢迎大家在留言里和我交流你的想法。CPU对于CPU来说,它仍然是数据中心里的主要计算单元。事实上,为了更好的支持各种人工智能应用,传统CPU的结构和指令集也在不断迭代和变化。比如,英特尔最新的Xeon可扩展处理器,就引入了所谓的DL