智能EDA浪潮即将来袭,ChatGPT如何助力安排芯片

除了人机对话,ChatGPT 的代码生成能力或许能让它在 EDA 畛域大显身手。

提到 Chatgpt,你会想到什么?提到芯片,你又会想到什么?可以把你脑海中浮现的第一个词记下来,看完这篇文章,肯定会改变你的看法。如果你是一个科技爱好者,那么你的第一印象是 Chatgpt 是一个高智能的对话模型,可以和人对话,而芯片产业是个复杂的整体,不止有上层的体系结构安排者,还有底层流片的工程师。你或许不会把两者结合起来,因为两者看起来风马牛不相及。

但实际上,Chatgpt 模型独有的代码生成能力极大地加速了安排芯片的速度。由保守 EDA(电子安排自动化)向智能 EDA 的转型浪潮即将开启,今天这篇文章,我们就来一窥 Chatgpt 启动下保守 EDA 是如何演变成智能 EDA 的,Chatgpt 是如何启动芯片安排产业链的创新。

首先我们来看 Chatgpt 在芯片产业前沿上的一个应用:量子控制处理器是量子计算机的核心控制全体。用 Chatgpt 合成的一个量子控制处理器的代码如下所示。

module QuantumControlProcessor (    input clk,    input reset,    input [7:0] instruction,    input [7:0] control,    output reg [7:0] qubit_pulse,    output reg [7:0] timing_pulse);// 此处因为篇幅原因省略实现endmodule

实际上这段代码也许会有些小问题,比如 Chatgpt 并不能很好地实现时序的控制,会出现浪费时钟周期的现象,但是这段代码可以正确编译,并且是一个有效的安排方案。也许你会很惊奇,这是怎么做的呢?这样做有什么前景呢?本文接下来的全体会给你答案。

Chatgpt 可能对芯片安排过程带来的改变

Chatgpt 将为芯片行业提供足够的可复用代码

芯片行业必要的巨大安排代码量亟需一个高效的开发工具。芯片安排是一个必要大量代码堆砌的行业,比如阿里的玄铁 OpenC910 的核心开源代码就有 351KLOC 左右。如图 1 所示,工业界一般从最顶端的 verilog 开始安排,使用 EDA 的前端和后端工具生成版图。verilog 的编写必要安排时序,通常较为复杂,因此 chatgpt 生成这一块的代码可以降低很大的人力成本。芯片的时序要求较为严格,因此也有大量的功能相对固定的时序相关模块,比如 AXI 接口、FIFO 等。这些模块都可以使用 Chatgpt 来降低人力成本。虽然目前已经有 Chisel、Spatial、MyHDL 等新的硬件安排语言,但是这些语言很大程度上受制于宿主语言的限制,也无法用接近自然语言的方式描述电路。

智能EDA浪潮即将来袭,ChatGPT如何助力安排芯片图 1:智能 EDA 和保守 EDA 过程图

ChatGPT 在代码生成方面显示出了优秀的表达能力。只必要给它一个任务提示,就可以自动生成对应的代码。相比软件和算法的合成而言,由于硬件安排代码并不像软件业务代码具有场景多样性,并且其参数化和时序控制相对人类的认知能力虽然复杂,但是有固定的模式可以遵循,因此 Chatgpt 做硬件安排代码自动生成的优势更为明显。它对于已经有的硬件具有很好的归纳能力,能够准确地提炼出安排模板中可参数化的配置点。

笔者的指导教师中科院计算所副研究员王颖博士认为,短期内即便是一个完全行业化的 chatgpt 版本也无法带来理想中的全自动化安排能力,但是配合云化 EDA 的趋势,有望快作为一个安排助手大幅提升安排验证效率并降低开发门槛,尤其对于教学工作将带来重要改变,此外,chatgpt 在各项过程中表现出来的自动化水平,eda 畛域并非没有比他更好的 SOTA 点技巧,只是在完整性和交互自然上 chatgpt 有天然的优势。最后,chatgpt 验证了大模型在自动化芯片安排畛域的潜力,能够启动开发者进一步地在此之上安排 Prompt 范式,从而存在进一步提升安排的功能准确度和生成芯片的性能的空间。

Chatgpt 在芯片安排畛域的智力水平远超之前的相似工作

Chatgpt 真的有替换人工的准确性吗?

智能EDA浪潮即将来袭,ChatGPT如何助力安排芯片

Chatgpt 和之前最好的代码自动生成的办法比起来好了多少呢?

可以把之前的代码生成办法分为三类,一类是以编程语言社区为代表的鉴于规则 [11,12,13] 的办法,第二类是鉴于测试用例的生成办法 [5, 6, 7, 8, 9, 10],第三类是以自然语言处理社区为代表的鉴于文本和模型的生成办法 [1, 2, 3, 4]。

智能EDA浪潮即将来袭,ChatGPT如何助力安排芯片

智能EDA浪潮即将来袭,ChatGPT如何助力安排芯片表:比较 OpenAI 两种最新模型用于代码生成

智能EDA浪潮即将来袭,ChatGPT如何助力安排芯片

Chatgpt 和 CodeX 都是 OpenAI 公司鉴于 GPT-3 研发的模型,从上面的分析中可以看出,Chatgpt 的范围更广,并且 Copilot 的用途单一,仅仅为代码补全。这就为鉴于 Chatgpt 开发智能代码相关工具提供了更广阔的空间。

Chatgpt 极大地启动了智能 EDA 技巧的发展

在 Chatgpt 出现之前,就有许多自动化代码生成方式,他们为什么不能够启动智能 EDA 技巧呢?

智能EDA浪潮即将来袭,ChatGPT如何助力安排芯片

Chatgpt 在芯片安排代码上有一系列潜在的应用

Chatgpt 能够远远地超越保守办法,并且它可以做到零样本学习(Zero-shot learning),相比保守的顺序合成并不必要专门的训练(因为 OpenAI 已经完成了),并且配合细致的功能描述,他庞大的知识储备也可以使能高正确率的代码生成。如表 1 所示,Chatgpt 将会逐渐演变为芯片前端的自动化过程中极为关键的一步,在未来很有可能演变成为继 HLS 开创 C 语言安排芯片后的又一种新的范式。在后文,我们将会介绍如何使用 Chatgpt 做 Verilog 的代码生成。

智能EDA浪潮即将来袭,ChatGPT如何助力安排芯片表 1:ChatGPT 在芯片自动生成各个畛域的开创性创新(以 Hardware Design Language 为例,软件语言可以参照分析)

如何使用 Chatgpt 生成芯片代码

与芯片安排相关的顺序合成办法包含两类,高层次顺序生成和时序相关硬件描述代码生成。高层次顺序生成可以生成 HLS 等不具有显式时序控制的 C/C++ 代码等,而低层次顺序生成可以生成具有显式时序控制的 Verilog 代码。由于 HLS 在实际工业界安排芯片时较少采用,因此我们采用 Verilog 作为主要的目标语言。对于 Chatgpt 而言,我们以自然语言描述作为输入,就可以获得符合要求的芯片描述代码。具体来说,该当如何做呢?我们以 Verilog 为例介绍如何用 Chatgpt 生成代码。

鉴于 Chatgpt 的通用生成步骤

act as a professional verilog programmer

因为 Chatgpt 是个通用的代码生成工具,而 Verilog 是个专用畛域,我们必要先 “催眠” Chatgpt,使得它能够生成 Verilog 顺序。向 Chatgpt 中输入下面的 prompt,之后的生成都会是以 Verilog 代码为基础的。

我们接下来的全体都是以片上网络 NoC 模块为例阐述代码生成办法的通用步骤。

智能EDA浪潮即将来袭,ChatGPT如何助力安排芯片

由于版面有限,这里就不列举 Chatgpt 生成的完整代码了。但是我们可以看出,On-Chip Network 这个关键字有很多种不同的理解方式,ChatGPT 选取了鉴于总线的理解方式。如果我们想要其他的语义理解方式,我们就该当探索出不同的输入即提问方式。

组合生成模块步骤

前面只是生成了有限的模块,但是能否把模块组合起来呢?我们的目标是用两个原本不存在的 strange module 组合成一个 no strange module。下面生成一个顶层模块 strange,底层有两个加法器,他们的输出连接着一个减法器,我们把这个东西叫做 strange module。

智能EDA浪潮即将来袭,ChatGPT如何助力安排芯片

智能EDA浪潮即将来袭,ChatGPT如何助力安排芯片

Chatgpt 为什么能在芯片生成畛域取得成功

Chatgpt 能够在芯片合成上取得成功该当归功于它对代码的理解和对自然语言语义的准确辨识。

智能EDA浪潮即将来袭,ChatGPT如何助力安排芯片

Chatgpt 生成芯片安排就万事具备了吗

虽然 Chatgpt 模型可以完成芯片安排前端的全体工作,但是还存在如下挑战,必要人工和 EDA 工具链的联合调优才能生成一个符合规范的芯片。

智能EDA浪潮即将来袭,ChatGPT如何助力安排芯片

硅工行业如何应对智能 EDA 危机

Chatgpt 作为一种智能 EDA 过程,既是一个危机,也是一种机遇。它能够替换一全体 EDA 前端的工作,但是由于 EDA 后端很大程度上依赖于确定性和对细节的分析,才能得到更好的优化结构,因此对于支持 EDA 后端优化的工作存在困难。但是它也创造了新的岗亭,比如可能出现的模型提示工程师,错误修正工程师。

智能EDA浪潮即将来袭,ChatGPT如何助力安排芯片图 5:按照工程师岗亭区分的可替换

为了更清晰地分类不同岗亭上硅工行业的可替换性趋势,我们按照 EDA 的过程自顶向下划分了四个阶段,即体系结构安排阶段 – 芯片代码实现阶段 – 芯片 PPA 调优阶段 – 芯片验证阶段如图 5 所示。注意这里的芯片调优指的是在前端通过改动全体硬件结构和算法实现的调优,因此列举在芯片验证前面。蓝色方框代表很难替换的岗亭,黄色方框代表容易被替换岗亭,灰色方框代表新增加的岗亭。下面分析按照具体过程区分的替换性,揭示为什么有的岗亭的工程师容易被 Chatgpt 替换,而有的岗亭的工程师很难被 Chatgpt 替换。

中科院计算所智能计算中心主任韩银和研究员认为 chatgpt 不光能辅助加速芯片安排过程,也对芯片本身带来一系列挑战,也许是当下热点如存算一体、芯粒集成以及大芯片架构等技巧带来迫切等待的杀手级应用。

智能EDA浪潮即将来袭,ChatGPT如何助力安排芯片

较难替换的过程

智能EDA浪潮即将来袭,ChatGPT如何助力安排芯片

新增加的过程

错误修正工程师。由于 Chatgpt 生成的顺序可能存在细节上的问题,有的地方不符合时序或是模块间的连接标准,因此就必要错误修正工程师对其修正。

模型提示工程师。Chatgpt 生成代码的质量和输入的 prompt 紧密相关,因此必要有一全体熟悉 Chatgpt “脾气” 的人专门安排 prompt 以便生成符合规范的代码。

未来的发展趋势

在智能 EDA 的浪潮下,有些岗亭不可避免地会被替换,那么未来会以什么样的次序被替换呢?从前后端分布上看,后端由于有版图安排等精细化的任务,因此不可替换性较强。对于前端来说,最先替换的是芯片实现中的模块工程师,因为从上面生成芯片的实践中可以发现,基本模块代码生成这一全体最为直观。在它之后会出现的替换岗亭有组件安排工程师,这一全体会在工程师们熟悉用 Chatgpt 组装模块后替换。对于其他的工程师而言,Chatgpt 更多地只是具有辅助价值,而不能完全地替换。

因而我们可以看到,越是上层的,涉及到架构抽象的全体越不容易替换;越是底层的,涉及正确性的全体也不容易被替换。中间全体的替换顺序将会是自底向上,从基本模块向上层组件逐次地替换。

政策上要抢占智能 EDA 先机

自力更生与充分吸取世界前沿并非不矛盾。保守 EDA 和大模型在 OpenAI 首发而其他公司尚未跟上固然有着复杂的原因。但是政策上仍然必要分出一只手,让全体过热资本从解决保守 EDA 和大模型问题的项目中抽出,鼓励企业抓住智能 EDA 发展初期行业壁垒小的时期,勇敢步入业内,构造出新的技巧壁垒。只有这样,才能解决不断被新技巧取代的问题。否则,过热资本涌入已经成熟的产业会造成资本回报率下降,同时创新技巧无法获得更高的资金支持,导致创新型企业不敢试错,无形中增加了创新型企业的试错成本,使得创新型企业更倾向于市场证明成熟的技巧。因此,政策上该当适当鼓励企业鉴于 Chatgpt 这类大模型做衍生技巧,尤其是在大模型已经展示出强大的代码生成能力之上,鉴于智能 EDA 技巧的企业更该当抢占先机。

资本市场的投资目光该当由大模型本身向其衍生技巧转向

在信息技巧畛域,先进技巧不断从通用走向专用,逐渐走向鉴于之前技巧的衍生技巧,以处理器安排畛域最为明显。在上个世纪时,CPU 火爆一时,造出了高性能的计算机,本世纪初,GPU 逐步流行,启动了游戏的开发,最近十年,NPU 开始走上舞台,使能高能效的神经网络训练和推理。由此推知,当大模型成熟以后,其衍生技巧也会在之后几年走上舞台。

智能 EDA 技巧是大模型技巧的衍生技巧。虽然衍生技巧投资在刚开始看并不占优势,但是从经济上看,直到那种技巧首发并形成技巧壁垒时其投资回报率会较高。随着 Chatgpt 这一类大模型技巧的日渐成熟,对企业的投资会出现边际效应递减的现象。个人投资者和机构投资者该当认识到信息技巧的投资规律,渐渐把目光转向大模型的衍生畛域,尤其是关注鉴于大模型的算法在芯片畛域的应用问题。产业从业人员该当充分利用我国为人工智能、集成电路畛域设立的大基金优势,积极申报人工智能和 EDA 交叉的基金。因此,无论是从产业政策上看,还是从投资规律上看,智能 EDA 畛域十分有必要该当成为我国投资者的投资对象。

相关文献

鉴于文本模型的代码生成

[1] Zhangyin Feng, Daya Guo, Duyu Tang, Nan Duan, Xiaocheng Feng, Ming Gong, Linjun Shou, Bing Qin, Ting Liu, Daxin Jiang, and Ming Zhou. 2020. [CodeBERT: A Pre-Trained Model for Programming and Natural Languages]. In Findings of the Association for Computational Linguistics: EMNLP 2020, pages 1536–1547, Online. Association for Computational Linguistics.

[2] [GRAPHCODEBERT: PRE-TRAINING CODE REPRESENTATIONS WITH DATA FLOW]

[3] [CodeT5: Identifier-aware Unified Pre-trained Encoder-Decoder Models for Code Understanding and Generation]

[4] [UniXcoder: Unified Cross-Modal Pre-training for Code Representation]

鉴于测试用例的代码生成

[5] Rajeev Alur, Rastislav Bodík, Garvit Juniwal, Milo M. K. Martin, Mukund Raghothaman, Sanjit A. Seshia, Rishabh Singh, Armando Solar-Lezama, Emina Torlak, Abhishek Udupa, [Syntax-guided synthesis], 2013

[6] Peter-Michael Osera, Steve Zdancewic, [Type-and-example-directed Program Synthesis], 2015

[7] John K. Feser, Swarat Chaudhuri, Isil Dillig, [Synthesizing Data Structure Transformations from Input-output Examples], 2015

[8] Armando Solar-Lezama, [Program Synthesis by Sketching], 2008

[9] [Kensen Shi], [Jacob Steinhardt], [Percy Liang], FrAngel: Component-Based Synthesis with Control Structures, POPL, 2019

[10] Yu Feng, Ruben Martins, Yuepeng Wang, Isil Dillig, Thomas W. Reps, Component-based synthesis for complex APIs, [ACM SIGPLAN Notices], 2017

鉴于逻辑规则的代码生成

[11] Z. Manna and R. Waldinger, “Synthesis: Dreams → Programs,” in IEEE Transactions on Software Engineering, vol. SE-5, no. 4, pp. 294-328, July 1979, doi: 10.1109/TSE.1979.234198.

[12] Bernd Finkbeiner and Sven Schewe, Bounded synthesis, in Int J Softw Tools Technol Transfer, (2013), 15:519–539, DOI: 10.1007/s10009-012-0228-z

[13] Peter Faymonville, Bernd Finkbeiner, and Leander Tentrup, BoSy: An Experimentation Framework for Bounded Synthesis,CAV 2017

给TA打赏
共{{data.count}}人
人已打赏
AI

几何深度进修揭示微观活动的时空特征

2023-2-23 17:53:00

AI

ICLR 2023 Oral | 漂浮感知动静神经搜集加持,光阴域泛化新框架远超范围泛化&适应方式

2023-2-27 17:19:00

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
今日签到
搜索