和ChatGPT聊聊天,就可解决CPU开发过程中的一大难题?
纽约大学(NYU)研究人员完成了一件看似不可能的事情:
无需专业的硬件描述语言(HDL),仅靠说人话就能设计芯片!
在ChatGPT的帮助下,他们不仅设计出CPU上的一个组件,甚至还通过了有效性验证环节。
这个组件主要负责创造出一种基于八位累加器的微处理器架构的逻辑。而累加器本质上是寄存器(存储器),是专门存放算术或逻辑运算的一个操作数和存储运算结果的。这是CPU运作中不可或缺的一部分。
所以,还有什么是大语言模型不能做的?
有网友表示:
芯片设计的部分流程实现自动化无疑是个好消息。
也有网友表现出对在芯片设计中使用AI编写HDL的担忧:
通常,设计和制造芯片的过程中会经历几个阶段。
其中一个阶段是用硬件描述语言(HDL)(例如Verilog)描述芯片内不同部件的实际几何形状、密度和整体布局。
在此前,作为一个极其专业化和复杂的领域,HDL编写一直是一项相对罕见且非常难以掌握的工作。
研究团队成员之一、也是研究助理教授的Hammond Pearce博士更是认为:
硬件描述语言的最大挑战就是没有多少人知道如何编写它们,很难成为这方面的专家。
这也就意味着,即使是最好的工程师也还是经常需要用这种语言做一些琐碎的事情。
而ChatGPT作为一种模式识别器,可以在各种类型的语言中转换自如,这就可以帮助工程师们跳过HDL阶段。
在这项研究中,研究人员分别使用LLM对八个具有代表性的硬件设计示例进行了研究。工程师与LLM之间实时来回交互,将纯英文文本逐步转化为Verilog(HDL)的等效代码。
其中一位硬件工程师与LLMs共同设计了一种新颖的基于八位累加器的微处理器体系结构。他们将这些基准测试和处理器发送到Skywater 130纳米Shuttle进行流片(tapeout)。
这个过程中,研究人员评估了ChatGPT-4、ChatGPT-3.5、Bard、HuggingChat四个不同LLM创建硬件设计的Verilog能力:
此外,研究人员还针对8位移位寄存器进行了基准测试。告诉大模型正在尝试为一个「测试名称」创建一个Verilog模型。然后提供规范说明,定义输入和输出端口以及其他所需的具体信息。最后询问他该如何编写一个满足这些规范的设计。
下面是不同大模型给出的设计方案:
如上图所示,虽然ChatGPT都能够满足规格要求并开始进行设计流程,但Bard和HuggingChat都未能满足规格要求的初始标准。
研究人员又基于Bard和HuggingChat的初始提示,让它们重新生成了五次回答,但两者还是都失败了。Bard一直无法满足给定的设计规格要求,而HuggingChat的Verilog输出在模块定义之后就不符合语法规范。
鉴于Bard和HuggingChat在初始的挑战基准测试中表现不佳,研究人员决定后续完整测试仅对ChatGPT-4和ChatGPT-3.5进行。
与此同时,顺便让大模型进行了Testbench(测试台)的设计:
你能为这个设计编写一个Verilog测试台吗?测试台应该具备自检功能,并且能够与iverilog一起用于仿真和验证。如果测试用例失败,测试台应该能够提供足够的信息,以便找到并解决错误。
最终结果表明ChatGPT-4的表现较为出色。大多数基准测试都通过了,并且大部分只需要工具反馈即可。
与创建可运行设计相比,ChatGPT-4在创建可运行的测试台上遇到了更多困难,往往还是需要人类的反馈意见。
而与ChatGPT-4相比,ChatGPT-3.5的表现明显较差,大多数基准测试都失败了,而那些通过测试台的对话大多数也不符合规范。与ChatGPT-4相比,ChatGPT-3.5每次对话和基准测试之间会出现各种各样的问题,在设计和测试台方面需要更频繁地进行修正。
随着大语言模型(LLM)的继续发展,未来从构想到功能设计,LLM或许都可以轻松实现。
研究人员认为:
尽管我们强调了模型的单步性能(即一步完成设计),但对于硬件应用来说,让它们以“共同设计师”的身份加入,可能会表现得更好。
当与经验丰富的工程师协同工作时,它们可以成为一种“力量倍增器”。工程师可以根据模型提供的“初版设计方案”,进行微调和快速迭代。
Hammond Pearce博士说道:
这项研究成果是我们认为首次完全由人工智能生成的硬件描述语言(HDL)转化为物理芯片的案例。一些人工智能模型,比如OpenAI的ChatGPT和谷歌的Bard,可以生成不同编程语言的软件代码,但它们在硬件设计领域的应用尚未被广泛研究。
而这项研究表明,人工智能在硬件制造方面也具有潜力,尤其是在对话式应用中,通过反复交流可以完善设计。
并且,这样一来HDL编写过程中人为引起的错误就会减少,从而可缩短设计时间和上市时间,也可允许更多创造性的设计。
不知一些HDL工程专家听到这里是否会略感紧张。
研究人员认为如果这个过程能够实现自动化,不仅可以加快现在的工作速度,还可以减轻人为瓶颈。但是,完全依靠类似于ChatGPT这种大模型,或者依赖电力运行的软件机器也存在一定的风险。用于芯片设计的LLM在训练阶段也存在难解的黑盒子等一系列问题。
对此,你有什么看法?
“