报告聚焦 AI 大模型领域,对过去一年的技术演进动态、技术趋势、以及开源开发者生态数据进行多方位的总结和梳理。
在第二章《TOP 101-2024 大模型观点》中,中国科学院计算技术研究所副所长
包云岗
谈到了人工智能与处理器芯片架构是如何相互影响进而发展的。
全文如下:
人工智能与处理器芯片架构
芯片有几十种大类,上千种小类,
本文主要关注处理器芯片
。这类芯片的特点是需要运行软件,例如:
微控制处理器(MCU)
会运行实时操作系统或者直接运行某个特定程序;
中央处理器(CPU)
往往会运行 Windows、Linux 等复杂操作系统作为底座支撑整个软件栈;
图形处理器(GPU)
一般不加载操作系统而是直接运行图形图像处理程序,
神经网络处理器(NPU)
则直接运行深度学习相关程序。
处理器芯片设计是一项很复杂的任务,整个过程犹如一座冰山。冰山水面上是用户或者大众看到的处理器芯片架构,呈现为一组微架构核心参数,比如 8 核、8 发射乱序执行、32KB 指令 Cache、2MB L2 Cache 等等。
但为何是选择这样的配置,不同配置对处理器的 PPA(性能、功耗、面积)有什么影响?要搞清楚这些联系,则
需要一整套处理器架构设计基础设施的支撑(即冰山水面下部分)
—— 从程序特征分析技术、设计空间探索技术、高精度模拟器、系统仿真技术、验证技术等等;还需要对大量程序特征进行分析,需要收集大量的原始数据,需要大量细致的量化分析,需要大量的模拟仿真……
以
苹果于 2020 年推出的 M1 处理器
为例,其微架构中有个模块 ROB(Reorder Buffer)设计为 630 项。这是一个很奇怪的数字,可以说是颠覆了传统 CPU 架构设计人员的观念,以致于有人在技术网站上讨论 M1 微架构时提出
这会不会是一个笔误
,因为一方面以往 CPU 的 ROB 一般都不超过 200 项,另一方面是 ROB 项目一般都是 32 或者 64 的倍数。更进一步,苹果为什么要这么设计?为什么不是 400 项 ROB 或者是 800 项 ROB?
显然,苹果在其公司内部拥有一整套 CPU 研发基础设施,能通过分析 APP Store 上数百万个应用来提取程序特征,根据程序特征开展微架构设计空间探索,开展大量实验进行量化评估分析 PPA,最终确定微架构参数配置。
从上述苹果 M1 芯片的例子可知,处理器芯片设计过程存在程序特征分类与提取、微架构设计空间探索、PPA 多目标优化等环节,在这些环节中 AI 技术可以发挥积极作用,这方面工作可归类为 “
AI for Chip
”。
另一方面,随着 AI 应用越来越广泛,如何加速 AI 应用也成为处理器芯片领域的热点,最近十余年各类 AI 处理器芯片不断涌现,这方面工作科归类为 “
Chip for AI
”。本文将分别从这两方面做简要介绍。
总的来说,将 AI 技术应用到处理器芯片领域,总体上都是围绕以下目标展开,即性能更高、开发更快、面积更小、功耗更低,安全更好。具体而言,这方面的工作可分为三类:一是在
AI 嵌入芯片
,在处理器芯片微架构设计中应用 AI 技术;二是
AI 设计芯片
,在处理器芯片开发过程中应用 AI 技术;三是
AI 调优芯片
,利用 AI 技术搜索更优的软件与芯片适配参数。
处理器微架构设计优化的一个思路是
发现程序行为中的共性特征并进行加速
。过去,业内戏称处理器微架构优化有 “三大法宝”:
缓存、流水线、并行
。今天,还可以加上一个法宝,即
预取
。这 “四大法宝” 都对应着程序行为的共性特征,比如缓存和预取为了充分利用程序的局部性特征。今天的教科书中都会介绍局部性特征,并进一步细化为时间局部性与空间局部性,这些特征又是因为程序是顺序执行且存在大量循环。不过顺序执行、大量循环这些显而易见的特征早在 1960 年代就已被提炼与总结,今天再要从大量程序中提炼出运行时的共性特征已不是那么容易,因为
有些特征不再是人类能够直观理解,很多表现为统计意义上的特征
。
AI 技术正是挖掘统计意义特征的有效手段
。过去十几年,很多体系结构研究开始考虑在芯片微架构中引入一些借鉴 AI 思想可挖掘统计特征的模块。
以分支预测单元 BPU(Branch Prediction Unit)为例,这是现代高性能处理器的一个重要组成部分,负责根据分支指令执行历史预测分支的走向,从而提前执行对应方向上的指令。
BPU 的预测准确率直接影响着处理器整体的性能和功耗
,当 BPU 预测准确率高,则处理器流水线的空泡(Stall)就比较少,甚至完全消除。但当 BPU 出现预测错误,不仅已执行的错误路径上的指令都被浪费,而且还需要冲刷流水线等来保证后续执行的正确性,这降低了处理器性能,也带来额外的功耗。
BPU 的本质作用就是提炼程序执行过程中的分支行为特征
,这是一项很有挑战的任务,一直以来都属于前沿研究,基于神经网络的动态预测便是一条技术路线。其中一项经典工作是 2001 年德州大学奥斯汀分校的 Daniel Jiménez 和 Calvin Lin 提出的一种
可用硬件实现的使用基于单层感知机的预测器
[1]。如今,基于感知机的分支预测器已应用在商业处理器中。根据公开资料,AMD、三星的多款处理器中都包含了基于感知机的神经分支预测器。
还有很多研究提出将 AI 设计嵌入到芯片微架构的设计,但总体而言这类工作面临的一大难点是如何在硬件上可实现。很多设计方案由于硬件实现开销较大,实现复杂的 AI 算法存在困难而无法落地。
AI 设计芯片已成为近年来的热点,各类工作层出不穷,大家的理解也各有不同。在这里,本文将 “AI 设计芯片” 定义为
从设计规范(specification)到 GDS 文件的整个芯片设计流程中,存在一个或多个环节使用 AI 技术参与设计,将一个格式的输入转换为另一种格式的输出
。在这个定义下,AI 设计芯片的智能化的程度可由覆盖的环节数量来确定,比如:谷歌的 AlphaChip[2]、Cadence 的 iSpatial[3] 工作覆盖了布局布线(输入为 RTL,输出为布局布线后的 Layout);纽约大学、中科院计算所开展的基于 ChatGPT 设计芯片则覆盖了从规范到 RTL 的整个前端设计环节 [4][5];中科院计算所的启蒙 1 号工作则覆盖了从设计规范到 GDS 的全流程 [6],自动化程度最高。(值得一提的是这个定义不涵盖一些参数优化配置类的工作,这类工作可归到下一节 “AI 调优芯片”)
AI 设计芯片仍然处于起步阶段,各界都在积极探索,虽然已有一些亮点成果,但尚无被业界广泛使用的成熟解决方案。
中科院计算所陈云霁团队曾在 2022 年《中国科学院院刊》上发表了一篇题为 “Chip Learning
:从芯片设计到芯片学习” 的观点文章 [7],对 AI 设计芯片做了很好的总结与展望,在此引用其中一些观点。文章认为 AI 设计芯片可以分成 3 个重要问题(如图 3):
①功能确定。根据用户意图确定系统正确的功能,并生成系统的准确表达。这种准确表达可以是硬件代码,也可以是表达式,也可以是真值表。这个问题对应着传统芯片设计流程的逻辑设计。
②逻辑图生成。在准确表达的基础上生成电路的逻辑图表达,并在这张逻辑图上进行优化,最后生成物理无关(包括工艺)的逻辑图表达。这个问题对应着传统芯片设计流程的电路设计。
③物理图生成。在电路逻辑图基础上生成电路的具体物理版图,这等价于一种多种约束下(如面积、功耗、物理等限制)的图映射和优化问题。这个问题对应着传统芯片设计流程的物理设计。
针对上述问题,该文章由梳理了一系列从逻辑设计、电路设计、物理设计、验证测试各环节上的技术挑战。例如,验证测试环节要解决的核心挑战就是
黑盒解决方案的精度保证
,一方面端到端全自动设计的芯片是一个黑盒,验出 bug 后的可调试性将会是一个挑战,另一方面现有的 AI 技术也像个黑盒,缺乏可解释性,对于输出结果的精度无法保证与解释。关于 AI 设计芯片的更多内容,推荐大家阅读该观点文章。
处理器芯片的最终性能取决于三个阶段的设计(参数)空间探索(Design Space Exploration,DSE):第一阶段是
前端微架构设计
,即探索各种微架构参数的最优组合提高处理器芯片性能,就如前面提到的苹果 M1 处理器的 630 项 ROB 设计方案;第二阶段为
后端物理设计
,即探索不同的布局布线方案,不同的工艺参数提升 PPA;第三阶段是芯片运行过程中根据软件特征动态调整芯片参数,或者反过来对软件进行优化从而让芯片运行更高效,这是一种
软硬件协同优化
思路,例如根据软件负载轻重来动态调整电压频率以降低处理器芯片运行功耗,也可以优化软件提高处理器运行效率以缩短软件运行时间。
AI 技术在上述三个阶段都能发挥重要作用,事实上近年来已有大量的相关工作,有些甚至已经成为落地应用到产品中(比如 Synopsys 推出的 DSO.ai 工具 [8])。这里不再展开介绍,仅介绍两个具有代表性的华人学者的工作。
早在 2010 年左右,中科院计算所陈云霁研究员团队与南京大学周志华教授合作研究如何在微处理器设计阶段使用 AI 技术来提高设计空间探索(DSE)的效率和效果
。传统的 DSE 方法依赖于大规模的周期精确架构模拟,非常耗时。研究团队提出了一种新的 COMT(Co-Training Model Tree)方法,能够利用未标记的设计配置来提高模型的预测准确性。这项工作发表于 2011 年的 IJCAI 会议 [9],是 AI 调优芯片方向的早期工作之一。
2021 年,杜克大学陈怡然教授团队与 ARM 公司合作,使用一套统一的机器学习模型同时对设计和运行阶段的 CPU 功耗进行快速实时计算
,发表于 2021 年计算机体系结构领域 MICRO 会议,论文题目为《可用于大规模商业化处理器的全自动化功耗模拟架构(APOLLO:An Automated Power Modeling Framework for Runtime Power Introspection in High-Volume Commercial Microprocessors)》[10](一作谢知遥博士目前已在香港科技大学任教),获得当年最佳论文。
在芯片开发中应用 AI 技术已成为主流方向。2024 年 Hot Chips 会议第一天专门组织了一个主题为
“AI Assisted Hardware Design-Will AI Elevate or Replace Hardware Engineers?” 的教程
,来自 UCSD、英伟达、Synopsys 的专家系统地介绍了当前 AI 辅助硬件(芯片)设计的最新进展。
总体来看,除了传统的基于强化学习的 AI 辅助设计方法,学术界与产业界都在积极探索如何将大语言模型(LLM)应用到芯片设计的各个环节中(如图 4)。感兴趣的读者可以访问 Hot Chips 2024 网站查阅相关资料。
虽然 Hinton 教授团队在 2006 年发表了关于深度神经网络的工作后并未受到广泛关注,但是在体系结构领域却有专家较早地认识到深度神经网络的潜在影响,从
2010 年便开始探索加速深度神经网络的处理器架构设计
。另一方面,
2003 年前后,英伟达开始追求 GPU 的高性能算力与可编程性
,为 GPU+CUDA 生态大厦打下地基,成为今天 AI 算力生态的统治者。
3.1 先驱者:DianNao 家族 AI 处理器
2010 年的体系结构领域国际旗舰会议 ISCA 在法国召开,当时来自法国 INRIA 的 Olivier Temam 教授做了题为 “
The rebirth of neural networks
” 的大会报告 [11],向体系结构界介绍深度神经网络以及为其硬件加速器的可行性。
在 2012 年的 ISCA 上,Temam 教授提出了第一个机器学习加速器设计 [12]。随后,中科院计算所陈云霁研究员和 Temam 教授启动了一个学术合作项目 ——
DianNao 家族加速器设计
[13][14]。DianNao 在 ISCA-2012 加速器的基础上增加了局部存储,解决了严重影响加速器性能的内存带宽限制,发表于 ASPLOS-2014,获得了该会议的最佳论文奖,得到各界的广泛关注。从此,DianNao 家族系列加速器不断推出,DaDianNao 发表于 MICRO-2014 并获得最佳论文奖;ShiDianNao 发表于 ISCA-2015;PuDianNao 发表于 ASPLOS-2015。2016 年以后,陈云霁研究员团队为一大类神经网络加速器设计了一套名为 Cambricon 的指令集,发表于 ISCA-2016,并成立寒武纪公司。
DianNao 家族加速器向全球展示了为 AI 应用设计专用加速器这条技术路线充满前景,此后各界都开始积极投入各类 AI 处理器芯片的设计,例如谷歌于 2014 年开始部署 TPU[15]、Meta 开始自研 MTIA 芯片、Tesla 自研 Dojo 芯片等等。可以说,在这一轮全球 AI 处理器热潮中,中国科研团队起到了当之无愧的引领作用。
2001 年,斯坦福大学 Bill Dally 教授团队在处理器微结构旗舰期刊《IEEE Micro》上发表了一篇题为 “
Imagine:Media Processing with Streams
” 的论文正式介绍 Imagine 项目 [16],一个可加速多媒体应用的流处理器(Stream Processor)结构。这项工作很快引起了英伟达的关注,并向 Dally 教授伸出橄榄枝。
随后在 2003 年,Dally 教授担任英伟达的顾问,参与 GeForce 8800 系列 GPU 的微架构设计,指导如何在 GPU 中加入流处理器。
2006 年 11 月,第一款 GeForce 8800 GTX GPU 发布
,包含 128 个流处理器,单精度浮点运算性能达到 345.6GFLOPS,访存带宽 86.4GB/s,远高于同期 CPU 性能。
与此同时,斯坦福大学一位年轻的博士生 Ian Buck 在导师 Pat Hanrahan 教授(2019 年图灵奖得主)的指导下开展如何方便且高效发挥 GPU 能力的研究。2004 年,Buck 发表了一篇题为 “
Brook for GPUs:Stream Computing on Graphics Hardware
” 的论文 [17],为 GPU 设计了一套支持流编程(Stream Programming)语言的编译器和运行时系统 Brook,从而能让开发者像在通用 CPU 上那样进行编程。这项工作旋即得到英伟达的青睐,于是 Buck 博士毕业后便立刻加入英伟达,带领两位工程师创立了 CUDA 项目。2007 年,CUDA 1.0 正式发布,全面适配 GeForce 8800 系列 GPU。随后,
UIUC 胡文美教授团队在 GeForce 8800 GPU 上用 CUDA 实现一些程序
,性能比通用 CPU 高 10 倍到 400 倍不等,充分展示了 GPU 的高性能与可编程性 [18]。至此,
英伟达的 GPU 生态大厦的地基已基本构成,英伟达的 GPU 开始被称为 GPGPU(General Purpose GPU)
。
彼时的 GPU 生态大厦中其实还缺一块拼图 —— 应用。当传统上用于图形处理的 GPU 具备了高性能浮点运算能力,且能像通用 CPU 那样可编程,那它可以用来做什么呢?对于这个问题,
中国的计算机科学家给出了答案 —— 科学计算与超级计算机
。2007 年,国防科大杨学军院士带领团队在国际计算机体系结构旗舰会议 ISCA 上发表题为 “
A 64-bit stream processor architecture for scientific applications
” 的学术论文 [19],揭示了流处理器架构可大幅加速科学计算。这项工作不仅为具备大量流处理器的 GPU 开辟了新应用场景,也为超级计算机架构设计开辟一条新技术路径,即采用 “CPU+GPU” 异构结构提升性能。
此后,GPU 便开始出现在超级计算机排行榜(Top500)上,并逐步成为主流:2009 年 11 月,采用 Intel CPU+ATI GPU 异构结构的 “天河一号” 名列 Top500 排行榜第五;2010 年 6 月,采用 Intel CPU+Nvidia GPU 异构结构的 “曙光 6000” 位列 Top500 排行榜第二;2010 年 11 月,采用 Intel CPU+Nvidia GPU+FT-1000 异构结构的 “天河一号大江 A” 荣登 Top500 榜首,打破了长期以来美日霸榜的格局。
虽然彼时的英伟达 GPU 与 CUDA 已被证明是构建超级计算机的神器,但却尚未与这一轮 AI 浪潮直接关联起来。
普林斯顿大学李飞飞教授于 2009 年发布 ImageNet[20],随后为了推广 ImageNet,他们决定启动一项基于 ImageNet 的物体识别竞赛。2010 年第一届竞赛冠军识别错误率为 28%,2011 年第二届竞赛冠军错误率降到约 25%。2012 年的第三届竞赛正是转折点 ——
加拿大多伦多大学的 Jeffrey Hinton 教授与其两位学生 Ilya Sutskever 和 Alex Krizhevsky 带着使用英伟达 GPU+CUDA 训练出来的深度神经网络 AlexNet 参加竞争
,将错误率大幅降低了近 11 个百分点,高出第二名 41%。
算法、数据、算力在 2012 年的 ImageNet 竞赛上汇聚了,形成一条势不可挡的 “大江”,在学术界掀起了惊涛骇浪。而英伟达的 GPU 芯片与 CUDA 软件生态也正式搭上了 AI 快车,不断发展壮大。
英伟达的 GPU 芯片和 CUDA 软件生态已在当前 AI 浪潮中占据算力主导地位并形成高度垄断。打破这种垄断格局成为全球的共识,Google、Meta 等企业都自研各自的 AI 处理器芯片。
在具体技术路线上,
一个有趣的观察是几乎全球企业都选择基于 RISC-V 研制 AI 处理器芯片
。根据不完全统计,OpenAI、Google、Meta、Microsoft、Tesla 等 AI 领域系统与应用巨头,均宣布或者已经基于 RISC-V 指令架构搭建自有 AI 芯片与系统。而大量初创企业如 Tenstorrent、Rivos、Semidynamics 等不约而同地选择 RISC-V+AI 解决方案。
Semidynamics 公司在 2024 年 6 月的欧洲峰会上总结了基于 RISC-V 扩展 AI 指令集,有如下几点优势 [21]:
-
单一软件栈。传统 AI 处理器架构中 CPU 一般采用 ARM、GPU 往往采用 Imagination,NPU 自研,因而需要三套软件栈,如果都是采用基于 RISC-V 为基座来扩展 AI 指令集,那么就可以使用一套编译器和运行时(不同编译选项)。
-
无需考虑 DMA 操作的编程范式。当前 AI 处理器解决方案中需要通过 DMA 拷贝数据,基于 RISC-V 可实现紧耦合设计共享地址空间,从而避免显式的 DMA 操作。
-
其他优点包括更低延迟,更低功耗,更高效的 Cache 共享等等。因此,Semidynamic 推出了一款基于 4 发射乱序高性能 RISC-V 核实现向量扩展单元与张量扩展单元的 AI 处理器芯片解决方案(图 5)。
事实上,RISC-V 国际基金会也有布局。2023 年 10 月,RISC-V 国际基金会成立 AI/ML SIG 组,推动全球 RISC-V AI 指令架构、基础软件和核心应用技术的研究与标准化。目前,RISC-V AI 向量(Vector)已形成全球统一的标准(RVV1.0 指令集标准),正在推动矩阵(Matrix)和张量(Tensor)标准制定。
若能形成
统一的基于 RISC-V 的 AI 扩展指令集,那就有望在软件生态上形成合力
,从而形成一个能平衡 CUDA 生态的新的 AI 软件生态(图 6)。道阻且长,行则将至。
图 6. 统一基于 RISC-V 的 AI 扩展指令集支撑统一 AI 软件生态
四川宜宾,长江、金沙江、岷江三江汇流于此。有人说,长江自此始称 “长江”,一路奔流向东,最终成为一条波澜壮阔的大江。
今天,人们也常说这一轮 AI 浪潮离不开三个要素的汇聚,即算法、数据与算力。这一轮 AI 浪潮是颠覆性的,但这种颠覆性技术能被预测吗?又有多少人提前预测到了?
事实上,当 Hinton 教授在 2006 年发表两篇关于深度神经网络的论文时 [22][23],即使是大多数同行也并没认识到这将会在未来成为颠覆性技术,直到 2012 年的 ImageNet 竞赛。进一步,虽然 ImageNet 竞赛让学术同行感知到了深度学习技术的颠覆性,但彼时绝大多数企业、风投机构、政府部门以及社会大众都还未感知到深度学习将会掀起新一轮 AI 浪潮,直到 2016 年 AlphaGo 战胜围棋世界冠军李世石。
此时此刻,我们又该如何预测这一轮 AI 浪潮对芯片产业发展的影响?这个问题便留给读者思考了。
[1] Jiménez D A, Lin C. Dynamic branch prediction with perceptrons [C], Proceedings HPCA Seventh International Symposium on High-Performance Computer Architecture. IEEE, 2001: 197-206
[2] Mirhoseini, A., Goldie, A., Yazgan, M. et al. A graph placement methodology for fast chip design. Nature 594, 207–212 (2021)
[3] Cadence. Ispatial flow in genus: A modern approach for physical synthesis. (2020-06-14)[2021-11-25]. https://community.cadence.com/cadence_blogs_8/b/di/posts/ispatial-flow-in-genus-a-modern-approach-for-physicalsynthesis