2020 年,研究人员对 GPT-2 模型进行了微调,使其能够设计逻辑电路片段;2023 年,研究人员使用GPT-4 帮助设计了一个具有新型指令集的 8 位处理器;到 2024 年,各种 LLM 可以设计和测试具有基本功能的芯片,例如掷骰子(尽管这些芯片通常存在缺陷)。
如今,人工智能芯片设计初创公司Verkor.io宣称取得了更大的里程碑式成就:他们开发出一款完全由人工智能系统自主设计的RISC-V CPU内核。这款名为VerCore的CPU主频高达1.5GHz,性能堪比2011年左右的笔记本电脑CPU。
Verkor.io的联合创始人Suresh Krishna表示,团队的核心论点是,这种方法比仅在整体设计流程中使用专门的 AI 系统来完成特定任务更有效。“我们发现,更好的方法是让 AI 代理解决整个问题,”他说道。
将人类工作流程引入智能体人工智能
Verkor.io 的智能体系统名为Design Conductor,它本身并非人工智能模型,而是大型语言模型(LLM) 的框架。框架是一种软件,它强制人工智能智能体按照结构化的步骤执行任务。在本例中,这些步骤类似于人类芯片架构师团队所遵循的步骤:设计、实现、测试等等。该框架还管理子智能体和相关文件的数据库。
这意味着它只需用户提供一个初始提示(在本例中为一份 219 字的设计规范)即可自主运行。它输出一个图形设计系统 II (GDSII) 文件,该文件可用于现有的电子设计自动化(EDA) 软件。
2020 年,研究人员对 GPT-2 模型进行了微调,使其能够设计逻辑电路片段;2023 年,研究人员使用GPT-4 帮助设计了一个具有新型指令集的 8 位处理器;到 2024 年,各种 LLM 可以设计和测试具有基本功能的芯片,例如掷骰子(尽管这些芯片通常存在缺陷)。
如今,人工智能芯片设计初创公司Verkor.io宣称取得了更大的里程碑式成就:他们开发出一款完全由人工智能系统自主设计的RISC-V CPU内核。这款名为VerCore的CPU主频高达1.5GHz,性能堪比2011年左右的笔记本电脑CPU。
Verkor.io的联合创始人Suresh Krishna表示,团队的核心论点是,这种方法比仅在整体设计流程中使用专门的 AI 系统来完成特定任务更有效。“我们发现,更好的方法是让 AI 代理解决整个问题,”他说道。“我不知道这到底是件好事还是坏事。”
人工智能芯片设计的首创
VerCore 采用RISC-V指令集架构 (ISA),这是一种流行的开放标准 ISA,它正逐渐从存储控制器等小众应用领域走向 SoC,为笔记本电脑或智能手机等设备提供动力。该 CPU 的确切时钟频率为 1.48GHz,并且实现了……CoreMark处理器核心基准测试得分为3261分。
Verkor公司表示,VerCore的性能与英特尔赛扬SU2300的CPU核心性能相当。这是否令人印象深刻,取决于你的视角。赛扬SU2300于2011年发布,采用的是英特尔于2007年11月推出的Penryn CPU架构。换句话说,VerCore对领先的CPU构不成威胁,但它有两个值得关注的地方。
VerCore是首个由人工智能代理设计的RISC-V CPU核心。此前的人工智能芯片设计案例仅展示了部分设计,而没有展示完整的核心。Ravi Krishna表示,公司希望打造一个人工智能代理此前未能实现的全新设计。“从拓展人工智能模型性能极限的角度来看,这对我们来说很有意思,”他说道。
尽管VerCore的理论性能存在局限性,但这足以表明该设计可能具有实用价值。事实上,RISC-V之所以流行,是因为它提供了一种可以免费使用的指令集架构(RISC-V是一个开放标准)。RISC-V芯片的速度通常不如x86和Arm芯片,但价格更低。
最后还有一点需要说明:该芯片尚未实际生产。VerCore 使用RISC-V 指令集架构 (ISA) 参考仿真器Spike进行了仿真验证,并使用开源的ASAP7 PDK (一款模拟 7nm 制程节点的学术设计套件)进行了布局设计。这两种工具都是 RISC-V 设计的常用工具。VerCore 表示,其 CPU 可以在仿真环境中运行uCLinux的一个变体。
持怀疑态度的人将有机会自行判断。Verkor.io计划在4月底发布设计文件,其中包括VerCore CPU以及人工智能代理系统Verkor近期完成的其他几项设计。Verkor还计划在领先的电子设计自动化会议DAC上展示VerCore的FPGA实现。
芯片设计师是否应该担心人工智能会抢走他们的工作?
对于血肉之躯的工程师来说,一个能在12小时内设计出CPU的人工智能芯片设计师或许听起来令人担忧,但Design Conductor也有其局限性。Verkor.io团队表示,尽管有所改进,但LLM(逻辑逻辑模型)仍然缺乏人类所拥有的直觉。
Design Conductor 有时会陷入人类工程师会避免的“兔子洞”。例如,该智能体在时序上出现了错误,导致数据在 CPU 上的传输与时钟周期不符。模型未能识别出问题所在,在寻找解决方案的过程中进行了大幅度的修改。最终它确实找到了解决方案,但在此之前,它已经走了许多弯路。“基本上,我们是在用经验换取计算能力,”这家初创公司的工程副总裁David Chin表示。Suresh Krishna 对此表示赞同,并补充说,随着智能体系统处理更复杂的设计,Design Conductor 的蛮力方法可能会变得效率低下。“这是一个非线性设计空间,因此计算量增长非常迅速,”他说。“实际上,专家指导和常识非常有帮助。”
尽管存在这些问题,像 Design Conductor 这样的智能系统可以通过加速迭代来加快芯片设计速度。它们还可以让那些原本缺乏资源或人手来完成项目的小型团队也能参与设计工作。
“现在还不是一个人就能搞定的阶段。我认为仍然需要五到十个人,而且他们必须是不同领域的专家,”Ravi Krishna说道。“这样的团队目前才能帮你完成(可用于生产的芯片设计)。”
Design Conductor
一个代理自主构建一个 1.5 GHz 的
可运行 Linux 的 RISC-V CPU
Design Conductor (DC) 是一款自主代理,它运用前沿模型的功能,从概念到验证,最终生成可用于流片的 GDSII(layout CAD 文件),实现半导体端到端的构建。DC 在 12 小时内完全自主地构建了多个 RISC-V CPU 的微架构变体(我们称之为“VerCore”),这些变体均满足 1.48 GHz 的时序要求,而其设计需求文档仅有 219 个字。
VerCore 的 CoreMark 得分为 3261 分。作为参考,这大致相当于 2011 年中期的 Intel Celeron SU2300(运行频率为 1.2 GHz)。据我们所知,这是自主代理首次从规范到 GDSII 构建出完整的、可运行的 CPU。
本报告的结构如下:首先,我们将回顾 DC 的设计及其关键组件。接下来,我们将介绍DC构建VerCore的方法论,包括RTL实现、测试平台实现、前端调试、时序收敛优化以及与后端工具的交互。我们将回顾最终VerCore的关键特性。最后,我们将重点介绍如何改进前沿模型以更好地支持此应用,以及我们从DC等系统的能力中汲取的经验教训,这些经验教训将指导未来芯片的构建。
引言
无论是从零开始设计芯片,还是基于现有的旧设计进行改进,芯片的研发都是一项极其耗时且成本高昂的工作。众所周知,即使拥有数百人的工程团队,将一款全新的尖端芯片推向市场也需要花费超过 4 亿美元,耗时 18 至 36 个月。尖端芯片的设计流程包含许多不同的步骤,每个步骤的耗费量都堪比一个大型软件项目。这些步骤包括架构定义、RTL 实现、测试平台实现和功能验证、前端综合、布局布线、功耗估算以及封装。此外,商业化芯片还面临着诸多相互关联的约束,在实践中,这些约束需要通过设计迭代来满足。这会额外耗费数月的时间。
其中最主要的是需要极高的功能测试覆盖率也就是说,需要进行测试以确保设备在运行中不存在任何“缺陷”,并且置信度非常高。由于单次流片的成本可能高达数千万美元,因此在生产过程中“修复”缺陷是不可接受的。这导致了“验证”成本居高不下,通常估计占总支出的50%以上。此外,芯片面临着多项严格的性能要求,通常至少包括时钟频率、功耗和硅片面积(这会影响生产成本)。验证所需的各种仿真类型,其运行时间都很长,而且服务器工时成本高昂。电子设计自动化 (EDA) 工具也具有高度可配置性,需要相当丰富的专业知识才能操作得当,从而为设计带来良好的最终结果。
由于这些成本和挑战,许多芯片市场由少数供应商提供服务,初创企业进入该领域的情况比软件行业更为罕见。然而,更多潜在的设计由于产量太低,根本不值得专门开发芯片。而且,最新技术通常需要多年时间和巨大的工程成本才能最终惠及消费者。
长时间运行的自主人工智能代理为改变这种现状提供了一个充满希望的机会。为了充分有效地加速设计流程,并避免受到阿姆达尔定律的限制,这类代理必须解决整个问题直至最终达到可流片的GDSII 。本报告的其余部分将介绍设计Design Conductor (DC) 如何实现这一点。
Design Conductor架构
本节回顾了Design Conductor (DC) 的关键功能以及支持这些功能的架构和基础设施。
1.
关键功能
我们列出了 DC 旨在实现的一些关键功能。
(1)稳定的长期执行
如第 1 节所述,芯片设计是一项包含众多子组件的复杂任务。DC 必须能够在消耗数百亿个令牌的情况下,
朝着目标功能正确、高性能的设计不断前进。这个目标并非单一目标,而是几个不同设计目标的组合(功耗、性能和面积,即 PPA;功能约束;以及架构输入)。DC必须记住并满足所有这些目标。
(2)上下文管理
数据中心必须提供LLM所需的信息,以便它们做出正确的决策。它还必须谨慎管理有限的上下文窗口的使用,不仅要避免溢出,还要最大限度地提高质量。
(3)技术精湛
LLM在众多领域拥有深厚的知识,这可以说是他们超越人类能力的一个方面。然而,芯片设计需要在某些特定领域拥有极其精深的知识。例如,CPU设计大师深谙实现卓越性能的“技巧”和“秘诀”。为了发挥作用,芯片设计师必须达到足够高的知识水平,才能与领域专家顺畅合作。他们必须了解如何在各种类型的设计中实现高性能。
(4)正确性与验证
在出货量达数百万颗芯片时,“凭感觉设计芯片”是行不通的。DC 必须交付可验证的正确设计。
(5)平衡探索与速度
芯片设计空间浩瀚无垠。DC 必须能够在遵循用户指令的前提下探索这一空间,以实现最佳性能。同时,DC 必须避免陷入“兔子洞”,导致无法及时完成总体目标。这就要求 DC 以严谨的方式管理搜索和探索过程。
(6)端到端操作
人工芯片设计流程中最昂贵、最痛苦的部分莫过于在流片前最后一刻修改 RTL 代码,以达到时序(时钟频率)目标或修复“极端情况”下的功能性缺陷。原因显而易见:这需要推翻至少一部分先前的设计成果,并且存在引入更多缺陷的风险。 DC 必须执行与构建设计相同的操作,并且必须在维护先前工作所需的上下文和记忆的情况下完成这些操作。
(7)基础设施
大规模芯片设计对硬件资源要求极高。用于调试的 VCD 跟踪文件很容易达到数百 GB,而 EDA 工具在综合、布局和布线过程中会使用大量的 DRAM 来优化设计。DC 可能需要多个子代理实例协同工作才能及时完成其任务。这意味着 DC 的支持基础设施必须在可扩展性和可靠性方面达到世界一流水平。
2.
架构
图 2 展示了 DC 的高级架构概览。
DC 是一个可扩展的云端应用程序,运行于分布式文件系统之上。LLM 会话由工作服务器管理,所有工作服务器都与中央数据库同步。这些会话连接到位于一个或多个执行环境(可以是虚拟机或容器)中的工具服务器。上下文管理模块监控并控制任何给定时间正在进行的各种会话的上下文窗口的整体使用情况。通常,只需要 Bash、Edit 和 Subagent 这三个工具,但也可以使用这些工具的定制版本以及其他工具来提高性能。子代理和更高级别的算法(例如进化算法)由顶层 DC Core 模块管理,该模块与底层 LLM 会话交互。
DC 通过专用知识库获取特定知识。该知识库包含在主内存系统中。内存无限期存在,并完全自主管理。 DC 在将自身集成到新的代码库或接收用户提供的需求时会利用这部分内存。这部分内存对于确保 DC 满足用户设计的所有要求,以及确保其构建的设计符合所有正确性要求至关重要。每个 DC“实例”都专用于一个客户的设计,因此代码、内存或任何信息都不会在不同客户之间共享。
这些模块的实际设计属于专有信息,本报告不再赘述。
3.
方法
1.DC 的输入
DC 唯一实际的用户输入是以下文档:
DC 还获得了 RISC-V ISA 模拟器 Spike、RISC-V ISA 和 ASM 手册以及 RISC-V GNU 工具链的访问权限。
2、DC 执行的步骤
图 3 展示了 DC 构建 VerCore 的步骤。此过程最终由 DC 控制,DC 可以根据每个设计项目的需求定制或修改该过程及其执行方式。我们仅提供了图中所示的功能作为 DC 的一部分;其组成由第 2 节中描述的 DC Core 模块决定。
DC 首先接收用户提供的输入。根据这些输入、其内存和知识,DC 生成一个初始设计方案。该方案的摘录如下所示。设计方案是一个“动态”文档,DC 会随着其架构中任何功能或时序问题的修复而更新该文档。事实上,我们观察到 DC 会根据布局布线后的最终时序反馈来更新其设计。
接下来,它将对该方案的各个方面进行审查。用DC自己的话说,这项审查是“人工”且“细致”的,目的是确保设计在实施之前是合理的。下面摘录了其中一次针对乘法器单元设计的审查内容。
设计阶段结束后,DC 将进入实际的模块实现阶段。DC 始终会为每个模块构建测试平台,并修复模块功能,以确保这些测试平台能够通过测试后再继续进行后续工作。
此时,DC 专注于集成测试。DC 使用 Spike 构建一个整体的 vercore_tb.v 测试平台。给定一个 RISC-V ELF 文件,该测试平台会在被测设备 (DUT) 上运行测试程序,并确认设计的架构状态和内存事务与 Spike 报告的结果一致。DC 对许多测试程序都进行了此操作,包括 MD5 测试以及最终的 CoreMark 测试。
在此过程中,如果发现与 Spike 的结果存在任何差异,DC 会观察相关情况并检查 VCD 文件以调试问题。它通常会将 VCD 文件转换为 CSV 文件,并利用 Python 的强大功能来简化处理过程。
然后,DC 使用 VCD 分析来追踪问题的根本原因,提出修复方案,实施修复方案,并再次进行测试。
正是这种验证驱动的方法使得 DC 能够得出可行的设计。
所有测试程序通过基于 Spike 的测试平台后,DC 开始进行 PPA 收敛。DC 会审查时序报告,并利用这些信息对设计进行 RTL 修改。在此过程中,它找到了在 ID 阶段实现提前转发的方法,并实现了一个具有 4 个平衡阶段的快速 Booth-Wallace 乘法器,这些阶段体现了熟练设计师所知的最常见的并行形式。
DC 可以无限期地运行,但在本例中,我们在消耗了一定数量的令牌后终止了它的执行。截至当时的结果将在第 4 节中报告。
4.
结果
(1)定量分析
表 1 显示了 VerCore 的关键定量指标。
(2) VerCore Pipeline
图 4 展示了最终 VerCore 的流水线。在这项工作中,DC 生成了多个版本的流水线;图中所示的版本性能最高。它尽可能地提前解析分支,提前转发,并采用了高效的 Booth-Wallace 乘法器(其自身时钟频率为 2.57 GHz)。这些特性是 DC 发现的,并未包含在任何输入指令中(参见第 3 段)。
DC 没有依赖“猜测”。相反,DC 对每个变体都进行了完整的 Verilog 实现(有些变体的分支惩罚为 2 个周期,有些为 1 个周期)。DC 将每个变体都完整地实现了到 GDSII 级别。DC 得出结论,即使分支惩罚为 1 个周期的变体具有更长的时序关键路径(涉及额外的比较器逻辑),它也能满足时钟频率目标。DC 实际上重新发现了原始 MIPS 5 级 RISC CPU 设计的关键路径,该设计也采用了 1 个周期的分支惩罚!
5.
前沿模型的经验教训
我们在下文列举了我们在这项工作中遇到的一些“LLM 难题”。鉴于这些原因,我们认为由经验丰富的架构师指导诸如 DC 之类的系统仍然至关重要。
(1)架构推理
基础模型需要额外帮助的领域之一是像架构师一样进行推理。我们观察到一些模型做出了次优的设计选择,最终需要消耗大量令牌才能进行优化。例如,转发实现最初常常导致关键路径过长。只有在模型观察到时序结果后,它才意识到问题并加以解决。而这种知识通常是人类设计师通过经验积累的。
此外,DC 在某些情况下还会低估解决某些问题所需的工作复杂性。例如,在某个案例中,当未能满足时序要求时,它最初尝试进行重大修改以加深流水线,而不是寻找更简单的解释。这种探索工作是浪费的,不必要地消耗了令牌,而如果模型对架构和工程有更深入的理解,这些浪费是可以避免的。
(2)对 RTL 和时序的理解
我们观察到一些模型将 Verilog(一种事件驱动语言)视为顺序代码进行推理。虽然我们发现这并未影响 DC 实现功能正确性的能力,但却增加了 DC 调试时序问题的难度。在一个令人印象深刻的例子中,DC 错误地认为减少依赖代码行数会缩短芯片的关键路径。这些错误最终会被纠正,因为 DC 可以访问工具提供的实际时序报告,但这会减慢 DC 的进度并消耗额外的令牌。
我们认为这是由于 LLM 的预训练和后训练中都存在大量软件代码造成的。我们预计,随着前沿实验室将芯片设计视为一项更重要的应用,这个问题将会得到解决。
(3)规范要求
我们发现,提供给 DC 的输入规范必须以极其严谨、精确且可验证/可测量的方式编写。例如,如果文档中缺少 CPI 要求,DC 有时会生成在分支和转发方面性能显著下降的处理器。根据规范中的这一条款,DC 会在其测试平台中使用循环计数器来计算 Spike 跟踪中报告的每个 PC 的循环次数,从而估算 CPI。这样,它就能确保达到目标。
6.
未来展望
本节阐述了作者关于如何扩展 DC 等系统以应对商业复杂设计以及如何构建设计团队以充分利用这些新功能的观点。
1、扩展性
我们发现,对于 DC 而言,扩展到非常庞大的代码库(例如,包含数百万行 Verilog 代码)并不会造成任何特殊问题。在对一个 13 级 OoO 处理器的代码库进行测试时,DC 能够解决功能和时序问题,就像它处理 VerCore 时一样。
这得益于它在内存中组织代码库信息的方式。应对这种复杂设计的关键挑战不在于处理代码库的机制,而在于 DC 需要由在特定设计领域经验丰富的架构师来操作才能取得良好的效果。
(2) 新的设计流程
借助 DC 等系统,目前由 100 人或更多人组成的团队将能够同时探索多种不同的设计、架构和产品理念,每个理念都从概念阶段一直到 GDSII 阶段。这些团队能够在 3-6 个月内完成现有最复杂设计的流片,
而不是目前的 18-36 个月。这些专家的角色将是指导 DC 在架构和目标层面实现他们认为能够在市场上取得成功的设计成果他们能够进行无需猜测的实验,并争取更激进的成本和性能目标。
企业还将发现,在以前因销量过低而无法盈利的应用中,存在更多可寻址插槽。
一个可能的流程变化是将验证工作前置,以便为 DC 提供某种集成测试,以指导其 RTL 实现。
未来团队中的高级工程师和首席设计师将不再承担那么多“工具操作”的职责,而是更多地依靠他们的判断力和经验,而分布式计算(DC)则能够处理几乎所有其他工程工作。分布式计算管理工具交互的能力还将降低工具切换成本和锁定效应。工具供应商将能够专注于算法质量,而无需耗费精力在界面设计和确保用户操作简便性上。
*免责声明:本文由作者原创。文章内容系作者个人观点,半导体行业观察转载仅为了传达一种不同的观点,不代表半导体行业观察对该观点赞同或支持,如果有任何异议,欢迎联系半导体行业观察。
本文网址:




