AI芯片如何保持芯片通用性
扫描二维码
随时随地手机看文章
神经网络计算芯片已经引起了全球各个学院/企业的广泛关注,“软件定义芯片”相关研究,适应AI算法不断变化的重要研究方向。但是芯片的性能跟通用性常常是一个“鱼和熊掌不可兼得”的选项,如何让AI芯片兼备性能和通用性?
在机器学习算法不断变化、人工智能应用不断增多的当下,神经网络计算芯片(AI芯片)的设计者们所思考的一个关键问题开始浮出水面——如何在保证AI芯片性能/功耗表现优秀的同时,尽可能的在更多人工智能算法上通用。
目前市面上陆续涌现的AI芯片中,有不少都采用了重新设计芯片底层架构的方式,来平衡AI芯片的性能与AI算法通用性之间“鱼与熊掌不可兼得”的矛盾,突出玩家有寒武纪、谷歌TPU项目等等。
产业界如此热火产天的发展,离不开学术界此前的长久积累。在过去的十几年里,清华微电子所的可重构计算团队一直在研究一项核心技术——“软件定义芯片”,前年,他们推出了一款代号为Thinker 1的AI芯片,这款芯片不仅能够支持人脸识别、语音识别的AI算法,而且芯片的功耗非常小——只需要7号AA电池就够让它运行一整年。
在2018年的春节前夕,记者专门来到清华大学校园里,与GTIC 2018重磅嘉宾之一,清华大学微电子研究所所长、中国半导体行业协会IC设计分会理事长、我国半导体行业“男神”级人物魏少军教授围绕着AI芯片的话题展开了独家对话。魏少军教授有着数十年半导体行业经验,对我国半导体产业有着深刻的认识,看法往往一针见血。
他认为,目前芯片架构创新已经引起了全球各个学院/企业的广泛关注,尤其是“软件定义芯片”相关研究,更是提升AI芯片的应用范畴、适应AI算法不断变化的重要研究方向。在今明两年之内AI芯片将持续火热,但是到了2020年前后则会行业洗牌,出现第一批出局者。
一、性能 vs 灵活:鱼与熊掌不可兼得芯片的性能跟通用性常常是一个“鱼和熊掌不可兼得”的选项,传统架构下,一个芯片在某些特定领域的性能越强、功耗越低,它往往就越不灵活、越不通用。举个例子,华为Mate 10里的麒麟970芯片用于手机的性能非常强大,但是它并不适用于安防摄像头、可穿戴手环等场景;同理,一个CPU能够灵活地处理众多不同任务,但是它在某些特定任务上往往性能不够强大,比如在深度神经网络训练上的性能不如GPU。
而ASIC这类专用芯片的位置,则介乎于手机SoC这类标准芯片、与CPU这类通用芯片之间——这是一个非常尴尬的地位,标准芯片虽然单个开发成本高,但是单一品类出货量非常大,很大程度上降低了芯片的单个价格;而通用芯片则相反,虽然总体出货量不高,但是单一品类的价格很高,也能够分摊研发成本。
随着芯片制造工艺的日益先进(目前已经逼近7nm),芯片制造成本也水涨船高,如今设计制造一颗10nm芯片的成本要几千万美元,综合成本高达上亿美元。
因此,如果不能保证某款单一应用场景下能够大量出货,专用芯片需要保持一定的通用性与灵活度。
最近两年间,产业界开始陆续涌现出神经网络计算专用芯片(AI芯片),寒武纪、深鉴科技、中星微电子等玩家的AI芯片产品采用的都是28nm的芯片工艺,前期从投入到流片的成本超过400万美元,单一品类出货量没有百万的级别将很难收回成本。
而除了成本之外,AI算法的演进也需要纳入考虑。由于目前人工智能算法还在不断变化、不断演进的过程中,人工智能经历了六十多年的发展才迎来了深度学习的大规模爆发,然而现在深度学习算法还有众多有待优化的方面,比如稀疏化、低功耗、小数据训练等,算法尚未定型。
此外,目前语音/文字/图像/视频等不同应用无法使用统一算法,然而许多实际生活中的AI应用程序(识别图像中的对象或理解人类语言)需要不同类型的具有不同层数的神经网络的组合。
因此,在确保AI应用性能的前提下,AI芯片需要尽可能地保持芯片通用性。
目前AI芯片企业们采用的技术方案各不相同,如果将芯片通用性作为评测坐标轴,最左边、最激进的企业会采用算法固化方案,这一做法成本低、芯片落地时间短、单一算法的性能与功耗比能够做到极致,但是极大减少了芯片的通用型和灵活性;最右边的团队(比如寒武纪、谷歌TPU等)则会设计一款全新的芯片架构,这一做法成本高昂、芯片研发周期长,但是能够在性能与芯片通用性上达到极好的平衡。
▲清华微电子所所长魏少军教授
清华微电子所的可重构计算团队就属于坐标轴右边的一类,从2006年开始,清华微电子所所长魏少军教授就带领着团队在持续深入研究这项重要技术——“软件定义芯片”,又称“可重构计算技术”。
“软件定义芯片”顾名思义就是让芯片根据软件进行适应与调整,这是一项专用芯片架构设计上的创新,与传统的冯诺依曼架构有着很大的区别。简单来说就是将软件通过不同的管道输送到硬件中来执行功能,使得芯片能够实时地根据软件/产品的需求改变功能,实现更加灵活的芯片设计。
也就是说,沿用这种架构设计出来的专用芯片,可以让芯片的计算能力按照软件的需求来调整适应,而不是沿用传统芯片设计的刚性架构,让应用适应架构。对于现在尚未定型/统一的各类AI算法而言,可重构计算成了AI芯片设计的一个重要研究方向。