西风 发自 凹非寺
量子位 | 公众号 QbitAI

和ChatGPT聊聊天,就可解决CPU开发过程中的一大难题?

纽约大学(NYU)研究人员完成了一件看似不可能的事情:

无需专业的硬件描述语言(HDL),仅靠说人话就能设计芯片!

在ChatGPT的帮助下,他们不仅设计出CPU上的一个组件,甚至还通过了有效性验证环节。

这个组件主要负责创造出一种基于八位累加器的微处理器架构的逻辑。而累加器本质上是寄存器(存储器),是专门存放算术或逻辑运算的一个操作数和存储运算结果的。而这是CPU运作中不可或缺的一部分。

所以,还有什么是大语言模型不能做的?

有网友表示:

芯片设计的部分流程实现自动化无疑是个好消息。

也有网友表现出对在芯片设计中使用AI编写HDL的担忧:

ChatGPT对芯片设计干了啥?

通常,设计和制造芯片的过程中会经历几个阶段。

其中一个阶段是用硬件描述语言(HDL)(例如Verilog)描述芯片内不同部件的实际几何形状、密度和整体布局。

在此前,作为一个极其专业化和复杂的领域,HDL编写一直是一项相对罕见且非常难以掌握的工作。

研究团队成员之一、也是研究助理教授的Hammond Pearce博士更是认为:

硬件描述语言的最大挑战就是没有多少人知道如何编写它们,很难成为这方面的专家。

这也就意味着,即使是最好的工程师也还是经常需要用这种语言做一些琐碎的事情。

而ChatGPT作为一种模式识别器,可以在各种类型的语言中转换自如,这就可以帮助工程师们跳过HDL阶段。

使用 LLM 创建 IC(集成电路)的设计流程。

在这项研究中,研究人员分别使用LLM对八个具有代表性的硬件设计示例进行了研究。工程师与LLM之间实时来回交互,将纯英文文本逐步转化为Verilog(HDL)的等效代码。

其中一位硬件工程师与LLMs共同设计了一种新颖的基于八位累加器的微处理器体系结构。他们将这些基准测试和处理器发送到Skywater 130纳米Shuttle进行流片(tapeout)。

这个过程中,研究人员评估了ChatGPT-4、ChatGPT-3.5、Bard、HuggingChat四个不同LLM创建硬件设计的Verilog能力:

此外,研究人员还针对8位移位寄存器进行了基准测试。告诉大模型正在尝试为一个「测试名称」创建一个Verilog模型。然后提供规范说明,定义输入和输出端口以及其他所需的具体信息。最后询问他该如何编写一个满足这些规范的设计。

8位移位寄存器的设计提示

下面是不同大模型给出的设计方案:

左图是ChatGPT-4的八位移位寄存器设计,右图是ChatGPT-3.5
左图是Bard(第4行的「红色」输入过宽),右图是HuggingChat(截断,格式化)

如上图所示,虽然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每次对话和基准测试之间会出现各种各样的问题,在设计和测试台方面需要更频繁地进行修正。

ChatGPT是芯片设计中的“力量倍增器”

随着大语言模型(LLM)的继续发展,未来从构想到功能设计,LLM或许都可以轻松实现。

研究人员用ChatGPT-4设计的基于累加器的数据通路(图是人绘制的),控制信号用虚线表示

研究人员认为:

尽管我们强调了模型的单步性能(即一步完成设计),但对于硬件应用来说,让它们以“共同设计师”的身份加入,可能会表现得更好。

当与经验丰富的工程师协同工作时,它们可以成为一种“力量倍增器”。工程师可以根据模型提供的“初版设计方案”,进行微调和快速迭代。

Hammond Pearce博士说道:

这项研究成果是我们认为首次完全由人工智能生成的硬件描述语言(HDL)转化为物理芯片的案例。

一些人工智能模型,比如OpenAI的ChatGPT和谷歌的Bard,可以生成不同编程语言的软件代码,但它们在硬件设计领域的应用尚未被广泛研究。

而这项研究表明,人工智能在硬件制造方面也具有潜力,尤其是在对话式应用中,通过反复交流可以完善设计。

并且,这样一来HDL编写过程中人为引起的错误就会减少,从而可缩短设计时间和上市时间,也可允许更多创造性的设计。

不知一些HDL工程专家听到这里是否会略感紧张。

研究人员认为如果这个过程能够实现自动化,不仅可以加快现在的工作速度,还可以减轻人为瓶颈。

但是,完全依靠类似于ChatGPT这种大模型或者依赖电力运行的软件机器也存在一定的风险。用于芯片设计的LLM在训练阶段也存在难解的黑盒子等一系列问题。

对此,你有什么看法?

参考链接:
[1]https://arxiv.org/abs/2305.13243(论文链接)
[2]https://www.tomshardware.com/news/conversation-with-chatgpt-was-enough-to-develop-part-of-a-cpu

「AIGC+垂直领域社群」

招募中!

欢迎关注AIGC的伙伴们加入AIGC+垂直领域社群,一起学习、探索、创新AIGC!

请备注您想加入的垂直领域「教育」或「电商零售」,加入AIGC人才社群请备注「人才」&「姓名-公司-职位」。

点这里

ChatGPT强势加入芯片设计!不用学专业硬件描述语言了,说人话就行相关推荐

  1. 五年从P5到P8,在阿里学做个靠谱的人

    师兄文化,是阿里的老传统,新人入职都要认个师兄. 不是江湖上这种师兄哈,但帅是一样帅的 今天和大家聊聊我在阿里当师兄的故事. 我是"改之",不是"有则改之无则加勉&quo ...

  2. 经济专业为什么学python_既然有了会计学专业,为什么还要有税收学专业?

    很多人说会计学也学税务知识,税务局招收公务员也面向会计,税务师事务所也招会计专业,那还有设置税收学专业的必要吗? 按照国际通用说法,税收学只是会计学的组成部分,也可以说是一个方向,考会计师都要考税务知 ...

  3. 非文学翻译理论与实践_2019年北京语言大学翻译学专业考研经验分享

    ​ 2019年北京语言大学翻译学专业经验贴 本人毕业于普通二本,去年考的是川外翻译理论与实践复试差四分,二战报考的是北语翻译学初试分不高,考完后没有信心,似乎有一种强大的力量在召唤我不要灰心于是初试考 ...

  4. 为什么很多动物不用学就会游泳?比如猪?人却不行?

    ?为什么很多动物不用学就会游泳?比如猪?人却不行? 提问:为什么很多动物不用学就会游泳?比如--猪? 显示大图 (而人却需要学-- (还有些人学了也学不会-- 果壳网友:翼狼Elang(动物行为.吃货 ...

  5. 从事工作的要求、大学所学专业知识与在校期间如何提升自身专业能力的一些思考

    从事工作的要求.大学所学专业知识与在校期间如何提升自身专业能力的一些思考 工作的选择 从事工作前首先需要明确的是自己以后想做哪方面的工作,最好的情况,我建议从事一份自己喜欢的感兴趣的工作比较好,在真正 ...

  6. 华中师范大学教育技术学专业考研上岸经验分享

    一. 关于择校和定专业 各位同学好,我考取的是华中师范大学教育技术学学硕,学科大类为理学,学制为三年,首先和大家分享我为什么选择将华中师范大学作为目标院校,我本科阶段教育技术学是师范学科,而华中师范大 ...

  7. 民族、学历学位、所学专业、、专业技术职务 对应表

    民族.学历学位.所学专业..专业技术职务(评)等等国际代码对应表 对于所有国标是不全的,但附件也不止上面提到的还有一些其它的,提到的是基本上什么项目都能用上的. 希望对你有用. 下载地址: /File ...

  8. 自考护理学计算机考试时间,护理学专业2019年10月江苏自考科目及考试时间安排...

    江苏2019年10月护理学自考专业在的考试科目有护理管理学.内科护理学(二).外科护理学(二).马克思主义基本原理概论等课程. 江苏护理学专业自考专业,专业代码为A2100702.以下为江苏护理学自考 ...

  9. 北京化工大学计算机科专业,北京化工大学专业介绍及排名 哪些专业最好

    北京化工大学专业介绍及排名 哪些专业最好2017-11-15 14:03:13文/李男 在选择专业时,北京化工大学有哪些专业?哪些专业最好?都是学生们十分关心的问题,下面小编整理了北京化工大学专业相关 ...

最新文章

  1. ubutun:从共享文件夹拷贝文件尽量使用cp命令而不是CTRL+C/V
  2. 混淆矩阵(confusion matrix)是什么?以及能从混淆矩阵中衍生出来的指标FPR、TPR、FDR、ACC、PPV、NPV分别是什么?对应的概念及公式是什么?
  3. html oninput的作用,html范围滑块 - oninput在IE 11中不起作用
  4. sql求平均日活_杨学峰博客 | Flask Sqlarchemy实现按日、周、月统计并图表展示
  5. java中 构造器与void
  6. 苹果复兴_类型复兴的故事:来自Type West的经验教训
  7. 8条关于Web前端性能的优化建议
  8. 多线程编程学习笔记——使用并发集合(三)
  9. Essential Grouping高性能的数据分组引擎介绍及下载
  10. 一个简单的重命名,在git中也有这么多学问
  11. uniapp 开发踩坑记录
  12. SSH——Hibernate简单配置
  13. 好儿优机器人_好儿优机器人app
  14. STM32系统结构图理解及GPIO学习笔记
  15. 安装配置磁盘阵列SAN存储系统
  16. 如何让电脑同时访问内网和外网:为电脑手动添加路由
  17. WCF技术剖析之十五:数据契约代理(DataContractSurrogate)在序列化中的作用
  18. MFC 对话框打印和打印预览知识总结
  19. 使用RT-Thread Studio DIY 迷你桌面时钟(三)| 获取NTP时间(at_device软件包 + netutils软件包)
  20. 关于驰骋工作流引擎,表单引擎对苏州公司企业 问题清单的答复

热门文章

  1. 东南大学 计算机 保研,2020年东南大学保研率是多少
  2. unity实现文字飘血
  3. 达梦数据库DG搭建(DM8)
  4. 金融业数字化聚焦容器云,全闪存为什么是点睛之笔?
  5. “神笔马良”不再是神话!看大触如何用 VR 作画
  6. 浏览器原理与常用协议总结
  7. java 分数_Java分数计算器
  8. C语言小游戏(一)——盲打小游戏(低配版)
  9. 台式计算机内存多大算好些,台式机加内存怎么加?加多大内存合适
  10. 没有特别幸运,请先特别努力