大家好,这里是一一网络博客,一一网络今天我们来聊一下人工智能芯片,目前全世界超过90%的数据都是在过去的两三年之内产生的,那么随着人工智能自动驾驶5g云计算等技术的不断发展,预计肯定会有更多的数据会被源源不断的产生,一直到2025年数据总量将会比现在增长超过10倍,在这些技术的发展中很大的一部分其实都是基于对大数据的研究和分析。
正因为如此,有很多人形象的把数据比作是人工智能时代的石油,那么为了对海量的数据进行处理,基于传统CPU的计算结构已经不能满足我们的需求了,我们需要去寻找更强大的硬件和芯片,来更快更好的完成这些工作。此外我们也需要去寻找更好的方法,比如采用各种人工智能的模型和算法,来帮助我们对这些数据进行分析和处理,并且得到更有意义的结果,那么这两者结合起来就得到了各种各样的人工智能芯片。
不久前我给微软的某个算法和搜索推荐团队做了一个小讲座,其实讲的就是这方面的内容,因为这个讲座其实面向的都是软件和算法工程师,所以讲座内容其实都是以定性分析为主,并没有涉及太多太过专业的芯片或者是硬件的技术,回头我也想是不是可以写一期文章,然后把这些内容也分享给大家,之后我就发了一个动态大意,就是问一下大家想不想看这方面的内容,没想到大家的反响还挺热烈的,还有很多同学给我留言,那么在这里首先很感谢大家对我的支持和反馈。
那么在今天的内容里,我们就一起来聊一聊关于人工智能芯片的几个很有意思的事情。
我主要想和大家分享这么几个内容,首先我会简单介绍一下这些话题的讨论范围,比如这里说的人工智能芯片究竟有哪些,然后我想和大家聊一聊在实际的工程和应用场景里,如何对人工智能加速芯片来进行一个比较和选择,以及各种不同的AI芯片的优点和缺点都有哪些,我会给大家介绍一个简单的思维框架,帮助大家理解和思考。
那么关于这几种芯片具体的对比细节,我总结了一个思维导图,具体的获取方式,我在这篇文章的最后会告诉大家,那么在开始我们的讨论之前,我们首先需要明确一些讨论的前提,这对于我们后续的讨论其实非常的重要,这个东西在英文里头其实叫做context,但是在中文里我好像没有找到一个特别贴切的翻译,很多翻译成为上下文或者叫做范围,那么大家如果有什么好的翻译可以在弹幕里说一下,说白了其实就是我们在讨论任何问题的时候,都要签订一个讨论的范围,大家都在圈圈里头来进行讨论,这就好比拳击和格斗比赛一样,大家需要在擂台上进行比试,而不能跑到台下去打。
那么同样的对于我们今天要讨论的人工智能芯片,其实他们也有很多不同的应用领域,比如我们可以把它分成服务器端和移动端两大类,也有很多人把这两类称作云端和终端。
事实上在这两类应用中,人工智能芯片在设计要求上其实有着很大的区别,比如移动端其实更加注重AI芯片的低功耗低延时低成本,而不处在云端的AI芯片,可能会更加注意它的算力扩展能力,以及它对现有基础设施的兼容性等等。
那么对于这两类人工智能芯片,我们其实很难对他们进行一个直接的比较,这就好比有一棵大树,它的树干负责支撑这棵树,并且负责运输营养物质,它的树叶其实负责光合作用并且产生营养物质,但是我们其实很难比较树干或者是树叶它们究竟谁更有用,所以我们今天就画一个圈圈把讨论的范围缩小。
我们只来看一下部署在服务器端,也就是云端的人工智能芯片的相关问题,而这也就是我不久之前给微软分享的主要内容。
我们再来画一个全权来明确一下文章里我们讨论哪些AI芯片,在这里我主要想对比4种比较常见的芯片种类,包括cpu gpu ac和fpja那么其他的一些比较相对小众一些的芯片,比如说类脑芯片或者是量子芯片等等,就不列入今天的讨论了。好了,我们现在明确了要讨论的领域和对象,也就是部署在云端的4种常见的芯片。接下来我们就讨论一下,通过什么样的方式来衡量和评价这些芯片的优缺点。
那么在这里我就给大家介绍一个我们在工程实践中常用的几个重要的因素,首先就是前面提到的算力,也就是芯片的性能,这里的算力其实有很多的方面,它可以指芯片做浮点运算或者是定点数运算的时候,每秒的运算次数以及芯片的峰值性能或者是平均性能等等,但是我们要注意的是性能其实并不是衡量AA芯片好坏的唯一标准,事实上在很多场合它甚至不是最重要的标准,那么究竟还有哪些考虑的因素呢?
在这个思维框架里有5个主要的衡量因素,除了性能之外还有灵活性、同构性、功耗和成本4点,其中灵活性指的是人工智能芯片对不同的场景的适应程度,也就是说芯片能不能用于各种不同的AI算法和应用。
同步性这个词听起来好像有些晦涩,但是它实际指的就是当我们大量部署人工智能芯片的时候,我们能不能利用现有的软硬件基础设施架构,还是说我们要引入很多其他的东西才能让人工智能芯片工作。
举个简单的例子,就好比我想给我的电脑外接一个显示器,但是如果显示器的接口是HDMI那么就可以直接和我的电脑相连,但是如果显示器的接口是VGA或者是DVI或者是0.3,那么我可能就需要买这样一个转接头,才能和我的电脑相连接,这样我们就说这个设备也就是显示器,对我现有系统的同构性不够好,那么成本和功耗其实就很好理解了,成本指的就是钱和时间,当然如果我们细抠的话,还有投入的人力和物力等等,还有包括没有选择其他AI芯片所带来的机会成本,但是归根到底其实都是钱和时间,成本其实包含两部分,第一部分就是芯片的研发成本,另一部分就是芯片的部署和运维成本。
功耗就更好理解了,指的就是某种AI芯片对数据中心带来的额外的功耗负担。
好了,我们现在知道了思维框架里的5个重要的元素,那么现在就可以对我们之前提到的4种芯片,也就是cpu gpu和fbja做1个定性的比较了。首先我们来看一下CPU它仍然是目前数据中心里的主要的计算单元,那么为了支持各种人工智能的应用,传统的CPU的架构和指令集也在不断的迭代和变化。
比如英特尔的志强处理器就引入了所谓的DL boost,也就是深度学习加速技术来加速卷积,神经网络和深度神经网络的训练和推理性能。但是相比其他的三种芯片,CPU的AI性能其实还是有一定的差距。Cpu最大的优势就是它的灵活性和同构性,对于大部分的数据中心来说,它们其实都是围绕着CPU来进行设计和建设的,所以CPU在数据中心的部署运维扩展,包括生态系统其实都已经非常的成熟了,它的功耗和成本并不算太低,但是还是在可以接受的范围之内。
接下来来看一下GPU,GPU有着大规模的并行架构,因此非常适合对于数据密集型的应用来进行计算和处理,比如深度学习的训练过程和CPU相比 GPU的性能会高几十倍甚至上千倍,因此业界很多公司其实都在使用GPU对各种的AI应用来进行加速,比如分析和处理图片、视频、音频等等。
Gpu的另外一个主要优势就是它其实有一个非常成熟的编程框架,比如扩大这也是GPU在人工智能时代得到爆发的最主要原因之一,但是 GPU最大的问题其实就是它的功耗,比如英伟达的p100v100和a100的GPU的功耗都在250瓦到400瓦之间,对于ipj或者ac的几十瓦甚至几瓦的功耗而言,这个数字显得过于的惊人了。
而对于神经网络的训练来说,它往往需要大量的GPU集群来提供充足的算力,这样一来一个机柜的功耗可能就会超过几十千瓦,这就需要数据中心为它修改供电和散热等结构,比如传统的数据中心大都依靠风冷来散热,但是如果要部署GPU就很可能要改成水冷散热。
那么对于大多数数据中心来说,这都是一笔巨大的开销,伴随着高功耗,其实更大的问题就是高昂的电费开支。在之前的文章里我提到过,现代数据中心里超过40%的运维成本其实都是电费开支,所以对于GPU在数据中心里的大规模部署,我们通常考虑的是它所能带来的算力的优势,能否抵消它带来的额外的电费。
下面我们再来看一下IC,也就是所谓的人工智能专用芯片,这里的典型代表就是谷歌阿尔法狗里使用的tpu他在阿尔法狗里替代了1000多个CPU和上百个GPU,在我们的衡量体系里,人工智能专用芯片的各项指标其实都非常的极端,比如它有着极高的性能和极低的功耗,和GPU相比,它的性能可能会高10倍,功耗会低100倍,但是研发这样的芯片其实有着极高的成本和风险,和软件开发不同,芯片的开发需要投入大量的人力和物力,开发周期往往长达数年,而且失败的风险极大,放眼全球,同时拥有雄厚的资金实力和技术储备来进行人工智能芯片开发的公司,其实大概用两只手就能数得出来,也就是说这种方法可能对于很多公司来说并没有实际的借鉴意义。
此外 AI专用芯片的灵活度往往比较低,顾名思义包括谷歌TCL在内的人工智能专用芯片,通常是针对某些具体的应用来进行开发的,那么它可能不能适用于其他的应用场景,从使用成本的角度来看,如果我们要使用基于ac的方案,就需要我们的目标应用有足够大的使用量来分摊高昂的研发成本,同时这类应用应该要足够稳定,来避免核心的算法或者协议不断的变化,而这对于很多的AI应用来说是不现实的。
值得一提的是,我国在人工智能专用芯片领域其实涌现出来了很多优秀的公司,比如含5g地平线,包括之前被赛林斯收购的深建科技等等,如果大家还知道哪些优秀的AI芯片出让公司,可以在评论区补充一下,关于这些公司的具体产品或者技术,在这些视频里就不再讨论了,如果我们以后有机会的话再好好聊一下。
最后我们再来说一下fpta我个人认为fpa能够在这些性能指标中达到一个比较理想的平衡,在性能方面 apj可以实现定制化的硬件流水线,并且可以在硬件层面进行大规模的并行运算,而且有着很高的吞吐量。
在之前的文章里提到过就是介绍的汽车和火车的例子,其实apj最主要的特点就是它的灵活性,它可以很好的应对,包括计算密集型和通信密集型在内的很多种应用。此外 IP也有着动态可编程和部分可编程的特点,也就是说IP也可以在同时处理多个应用,或者是在不同的时刻处理多个不同的应用,这其实和CPU比较类似,但是IP的性能其实要远超于CPU。
在数据中心里 ipj通常是以加速卡的形式来配合现有的CPU来进行大规模的部署,IP的工号通常只有几十瓦,那么对于额外的供电或者是散热等环节没有特殊的需求,因此可以兼容现有的数据中心的基础设施架构。
那么在衡量AI芯片的时候,我们也经常使用性能功耗比这一个指标,也就是说即使你的性能非常高,但是如果你的功耗也很高,那么你的性能功耗比就很低,这也就是ipj相比于GPU的优势所在。那么在开发成本方面,ipj的一次性成本其实要远低于ac这是因为ipa在制造出来之后,可以通过不断的编程来改变它上面的逻辑功能。而Isaac在流片之后,它的功能就确定了,如果你要改变它的功能,就需要再进行流片,而这个过程会非常的昂贵,这是为什么像包括深健科技在内的很多AI芯片初创公司都选择使用ipj作为实现的平台的主要原因。
所以说相比于其他的硬件加速单元来说,ipa在性能、灵活度、同构性、成本和功耗5个方面取得了比较理想的平衡,这是为什么微软最终选择了ipj并在数据中心里进行大规模部署的主要原因。
好了,最后我们总结一下这篇文章的主要内容,我们讨论了人工智能芯片的主要分类,比如按照使用场景分可以分为服务器端和终端两大类,我们介绍了4种可以用来执行人工智能应用的芯片,也就是cpu gpu ac和FDA我们还根据一个思维框架,从性能、灵活性、同构性、功耗、成本5个方面分别衡量了这4种芯片的优缺点。
<# class="yarpp-related yarpp-related-none">
No related posts.