《生成式AI,可以设计芯片了》

  • 来源专题:数智化图书情报
  • 编译者: 黄雨馨
  • 发布时间:2023-06-17
  • 自从去年开始,以ChatGPT为代表的生成式AI(Generative)站在了整个世界的聚光灯下。ChatGPT可以理解用户基于自然语言的输入,并且产生相应的输出。ChatGPT基于大语言模型技术,通过使用海量的语料训练,可以实现回答用户的各种问题,还可以帮助用户完成一些简单的任务,包括完成文档编写甚至Python代码编写等等。

    而在五月十日,谷歌在IO大会上发布了ChatGPT的竞品,即PaLM 2大语言模型。谷歌表示,目前ChatGPT类生成式大语言模型最重要的用户体验之一就是帮助用户编写代码,而PaLM 2的一大特性就是完成20多种编程语言的支持。其中,对于芯片设计工程师来说,最大的亮点就是PaLM 2支持数字电路设计领域最常用的编程语言Verilog。

    百闻不如一试,目前PaLM 2已经在谷歌的Bard平台上线开放公测,因此我们也尝试使用Bard去体会了一把PaLM 2生成Verilog代码的能力。在试验中,我们让Bard生成了两段代码,一段代码是生成一个FIFO(数字电路中最常用的模块之一),而另一段代码则是生成一个模块,其中包含了两个前面编写的FIFO,并且让第一个FIFO的输出接入第二个FIFO的输入。生成的方法非常简单,我们只需要给Bard一个基于自然语言的指令(prompt),Bard就能够在几秒钟之内完成相应的代码生成。例如,在第一个实验中,我们使用的指令是“生成一段Verilog代码来实现FIFO”,生成结果如下图:

    从结果来看该生成的代码的语法正确,逻辑基本正确,但是在FIFO full和empty的信号逻辑上并没有完全弄对(当然其实FIFO的full和empty的逻辑也是面试中常考的问题,要完全弄对并没那么简单)。在代码风格上,我们还可以在指令中加入更多提示,类似“在代码中加入更多注释”,“使用参数来定义接口宽度”等等。


    而在第二个实验中,我们主要看的是Bard能否复用之前生成的模块,并且基于这个来生成新的更大的模块。我们使用的指令是“写一个模块,其中包括两个你前面写的FIFO模块,并且第一个FIFO的输出接入第二个FIFO的输入”。

    在这里我们可以看到生成的代码基本正确,因此我们认为PaLM 2基本拥有了能基于自底向上生成复杂代码的能力。

    芯片设计领域生成式AI的进化之路

    我们从上述实验中可以看到,谷歌的PaLM 2已经具有了基本的Verilog代码生成能力,可以生成基本模块和复合模块,当然其代码生成的质量还有待提高。而除了PaLM 2之外,我们认为其他公司推出的类似ChatGPT的大语言模型也有可能会加入对于Verilog类硬件描述语言的支持。

    根据谷歌在IO大会上发布的信息,目前ChatGPT类的大语言模型已经成为许多工程师在代码编写时的重要助手。如果我们参考IT领域软件开发工程师应用ChatGPT类大语言模型协助代码编写的发展的话,我们认为在芯片行业大语言模型也非常有可能会起到重要作用。这里,根据大语言模型在开发流程中起到的角色,我们可以大致分成三种应用。第一种应用是根据用户的指令直接生成代码,即我们在本文前面给出的两个例子。第二种应用是在工程师编写代码的时候,帮助工程师自动补全代码;例如工程师只需要输入一行代码的前几个字符,大语言模型就可以根据代码的上下文自动帮助补全代码,从而节省工程师的开发时间。第三种应用是帮助工程师分析代码和debug,正如ChatGPT可以帮助用户优化Python代码并找到代码中的bug一样,经过相关数据训练的大语言模型也可以在Verilog中实现相似的功能。


    展望未来,参考大语言模型在IT行业的应用轨迹,我们认为大语言模型对于芯片设计方面的帮助预计将会从代码自动补全开始,因为这也是大语言模型在IT行业的切入口——目前我们已经看到类似Github co-pilot这样的代码补全产品已经得到了许多IT公司的应用来帮助软件工程师提升编程效率。相对来说,代码补全类应用对于大语言模型的要求相对较低,目前的模型已经能实现相当高的准确率,因此我们预期在芯片设计领域也会有应用在Verilog领域的基于大语言模型的代码补全工具会很快出现帮助工程师提高效率(估计谷歌内部芯片团队已经开始使用类似的工具)。


    在代码补全之后,随着大语言模型的进一步发展,根据用户的指令自动生成代码的大语言模型也将会得到越来越多的应用。这类代码直接生成类应用从目前来看还需要和整个项目开发流程进一步磨合——究竟这类代码自动生成的应用最适合使用在底层模块的编写,还是在上层模块间集成的生成上,还需要进一步探索,但是无论如何ChatGPT在自动代码编写领域的潜力惊人,可以把原来人工需要数小时才能编写完的代码在几秒内完成,这样的效率提升无疑将会给整个行业和芯片开发流程带来革命性的变化。

    目前来看,ChatGPT类大语言模型在Python等流行编程语言的代码编写方面已经有很不错的效果,这证明了大语言模型实现自动代码编写、补全和debug在理论和工程上都是可以实现的。谷歌的PaLM 2对于Verilog的支持仍然有待进一步完善的主要原因我们认为还是训练的数据量不够。从训练数据数量的角度来说,互联网上有海量的开源Python代码可供训练大语言模型来完成高质量的代码生成,但是互联网上可用于训练大语言模型的Verilog代码的数量比起Python等流行语言来说可能是要少了几个数量级。并不是人类编写的Verilog代码数量不够多,而是绝大多数Verilog代码都不是开源的,而是芯片公司的知识产权,例如谷歌在训练PaLM的时候不太可能获得高通的Verilog代码。未来谁会在开发芯片设计领域的大语言模型方面拔得头筹?我们认为有几个不可忽视的力量:


    首先是拥有全栈技术能力的大型技术公司,这些公司既有开发大语言模型的能力,又有成功的芯片业务,包括美国的谷歌和中国的华为等。从技术上来说,这些公司积累了大量的Verilog相关代码可供训练大语言模型,而从业务上来说,这些公司同样也有使用大语言模型来提升芯片设计团队效率的驱动力。


    其次是EDA巨头,包括Synopsys、Cadence等。这些EDA公司拥有极强的业务驱动力和紧迫感,因为大语言模型AI确实会成为EDA行业下一个革命性变化,谁在这个领域占领了先机就会在下一代EDA竞争中取得优势;从技术积累上来说,这些公司拥有不错的AI模型能力,同时也有海量的Verilog代码数据量可供训练模型(因为这些EDA公司都有相当成功的IP业务,在开发这些IP的同时积累了足够的高质量代码数据)。

    最后,开源社区的力量也不容忽视。从大语言模型角度来看,开源社区在CahtGPT以及开源LLAMA语言模型的基础上做了大量有意义的探索,另外随着RISC-V等开源项目的增加,开源社区拥有的数据量也会越来越多。我们预期开源社区有机会去实现一些小而美的基于大语言模型的新颖应用,从而也能推动整个大语言模型在芯片设计领域的技术发展。

    生成式AI会如何影响芯片设计工程师的工作

    那么,随着ChatGPT式AI在芯片设计中扮演越来越重要的角色,芯片工程师的日常工作将会发生怎么样的变化?由于这里ChatGPT类生成式AI主要针对代码编写等前端工作,我们这里的讨论范围也主要是前端数字设计工程师。


    首先,对于主要工作是前端模块设计和集成的芯片工程师来说,我们预计很快就会有ChatGPT类的工具可以帮助代码补全,从而增加效率。而在未来三到五年的时间范围内,直接使用ChatGPT类生成式AI首先模块代码编写有望获得真正的应用。从这个角度来说,我们并不认为前端工程师的工作会被取代;相反,数字前端工程师的工作可能会越来越多地专注于模块的功能定义,以及如何使用生成式AI能理解的方式来描述这个设计,让AI能产生和工程师设计相符的代码;从这个角度,甚至可能会出现一些标准化的模块功能定义描述语言,从而让AI能产生合理的代码。



    此外,芯片验证工程师的工作将会变得越来越重要。生成式AI可以在几秒钟内生成代码,但是其生成质量从目前来看尚需提高。从这个角度,芯片验证一方面需要确保AI生成的代码没有bug,而更重要的是,芯片验证需要能和代码生成形成闭环,例如如何实现一套工作流程,让AI生成的代码可以快速使用testbench来确保功能是否正确,并且有办法告诉AI哪里功能不对来提示AI修改,从而在经过多次迭代后能让AI自动生成正确的代码。虽然可能会需要多次迭代,但是因为每次代码生成需要的时间很短,因此总得来看需要的代码生成时间还是比起手写要快许多。此外,使用生成式AI来自动生成testbench以及验证需要的assertion也将会改变验证工程师的工作流程,工程师将会需要花更多时间教会AI来生成正确的代码,从而大大提升效率。


  • 原文来源:https://mp.weixin.qq.com/s/aJxtQWy7LnZ7DpE79XI4Vw
相关报告
  • 《Supermicro推出三款生成式AI超级集群》

    • 来源专题:新一代信息技术
    • 编译者:isticzz2022
    • 发布时间:2024-03-26
    •       美超微宣布了其产品组合的最新补充,以帮助加速生成式人工智能的部署。美超微的SuperCluster解决方案旨在为大型语言模型(LLM)基础设施提供基础构建块,而三款新的美超微SuperCluster解决方案现已可用于生成式人工智能工作负载。4U液冷系统或8U风冷系统是专为强大的LLM训练性能、大批量和大规模LLM推理而设计的。       第三款SuperCluster采用1U风冷美超微NVIDIA MGXTM系统,已针对云规模推理进行了优化。美超微总裁兼首席执行官查尔斯·梁表示: “在人工智能时代,计算单元现在以集群为单位进行衡量,而不仅仅是服务器数量,而且凭借我们每月5000个机架的全球制造能力,我们可以比以往更快地向客户提供完整的生成式人工智能集群。一个64节点的集群通过几个可扩展的集群构建块,使用400Gb/s NVIDIA Quantum-2 InfiniBand和Spectrum-X以太网网络,使512个NVIDIA HGX H200 GPU和72TB HBM3e互连。美超微的SuperCluster解决方案与NVIDIA AI Enterprise软件相结合,旨在为企业和云基础设施提供培训当今LLM的高达数万亿参数的生成式人工智能和LLM的基础构建块。”       NVIDIA GPU产品管理副总裁Kaustubh Sanghani表示:“NVIDIA最新的GPU、CPU、网络和软件技术使系统制造商能够加速全球市场的一系列下一代AI工作负载。通过利用NVIDIA加速计算平台和基于Blackwell架构的产品,美超微正在为客户提供他们需要的、可以轻松部署在数据中心的最先进的服务器系统。”       Supermicro 4U NVIDIA HGX H100/H200 8-GPU系统通过使用液冷技术使8U风冷系统的密度翻倍,从而降低能耗并降低数据中心的总拥有成本。这些系统旨在支持下一代基于NVIDIA Blackwell架构的GPU。Supermicro的冷却分配单元(CDU)和流形(CDM)是将冷却液体分配到Supermicro的定制直接芯片(D2C)冷板的主要动脉,使GPU和CPU保持最佳温度,从而获得最佳性能。这种冷却技术使整个数据中心的电力成本降低40%,并节省数据中心的实际空间。配备NVIDIA HGX H100/H200 8-GPU的系统适用于训练生成AI。通过NVIDIA NVLink、高GPU内存带宽和容量的高速互连GPU是运行LLM模型的关键,具有成本效益。       Supermicro SuperCluster创建了一个巨大的GPU资源池,作为一个单一的AI超级计算机。据该公司称,无论是安装一个在数万亿个令牌的数据集上从头开始训练的巨大基础模型,还是构建一个云规模的LLM推理基础设施,具有非阻塞400Gb/s结构的脊柱和叶子网络拓扑都可以无缝地从32个节点扩展到数千个节点。Supermicro表示,采用NVIDIA MGX系统设计,以NVIDIA GH200 Grace Hopper Superchips为特色,将为未来的AI集群创建一个蓝图,解决生成AI的关键瓶颈——运行大型语言(LLM)模型的GPU内存带宽和容量,以降低运营成本。256个节点的集群使云规模的高容量推理能力成为可能,易于部署和扩展。       带有5个机架的4U液冷系统或9个机架的8U风冷系统的Supermicro SuperCluster在一个可扩展的单元中拥有256个NVIDIA H100/H200 Tensor Core GPU。液冷技术可实现512个GPU和64个节点的配置,与风冷256个GPU和32个节点的解决方案占用相同的空间。一个可扩展的单元中包含20TB的HBM3(采用NVIDIA H100)或36TB的HBM3e(采用NVIDIA H200)。1:1网络为每个GPU提供高达400 Gbps的带宽,以实现GPUDirect RDMA和存储,用于训练具有数万亿参数的大型语言模型。采用NVIDIA Quantum-2 InfiniBand和NVIDIA Spectrum-X以太网平台的400G InfiniBand或400GbE以太网交换机结构,具有高度可扩展的骨干叶网络拓扑。       NVIDIA AI Enterprise 5.0软件支持新的NVIDIA NIM推理微服务,可加速大规模AI模型的部署。采用9个机架中的1U风冷NVIDIA MGX系统的超级集群,在一个可扩展的单元中包含256个GH200 Grace Hopper Superchips。高达144GB的HBM3e + 480GB的LPDDR5X统一内存适用于云规模、高容量、低延迟和高批量推理,能够在一个节点中容纳70B+参数模型。采用400G InfiniBand或400GbE以太网交换机结构,具有高度可扩展的骨干叶网络拓扑。每个节点内含高达8个E1.S NVMe存储设备。采用NVIDIA BlueField-3 DPUs和行业领先的并行文件系统选项的可定制AI数据管道存储结构,为每个GPU提供高吞吐量和低延迟的存储访问。NVIDIA AI Enterprise 5.0软件。Supermicro的超级集群解决方案针对LLM训练、深度学习和高容量、高批量推理进行了优化。客户可以获得即插即用的可扩展单元,以便在数据中心轻松部署并更快地获得结果。
  • 《科技巨头抢占AI市场,智能芯片给生活带来怎样变化》

    • 来源专题:中国科学院文献情报制造与材料知识资源中心 | 领域情报网
    • 编译者:冯瑞华
    • 发布时间:2017-12-25
    • 科技行业的巨头们看似已经完全接受了人工智能革命。苹果、高通和华为已经制造了一种移动芯片,而这些芯片的设计目的是提供机器学习一个更好的平台,而不同公司设计这种芯片都采用了略微不同的方式。华为在今年的IFA上发布了Kirin 970,他们称其为第一款带有专用神经单元处理器(NPU)的芯片组。然后,苹果发布了A11仿生智能芯片,该芯片为iPhone8、8Plus和x提供引擎动力。A11仿生芯片的特点是,它的神经引擎处理器是专门为机器学习而设计的。 上周,高通发布了骁龙845,该芯片能够将人工智能任务发送至最合适处理器的核心系统。这三家公司的设计方法并没有太大的区别——最终归结为每种芯片向开发者提供的访问权限,以及每一种设置所消耗的电量。 在我们讨论这个问题之前,我们先来弄清楚一个人工智能芯片跟现有的cpu有怎样的不同。在业界,你会经常听到叫“异构计算”的有关人工智能的术语。它指的是使用多种处理器的系统,并且每一种处理器都有专门的功能,以获得更高的性能及节省能源。这个术语并不新鲜,而且许多现有的芯片组都使用了它——例如这三款新产品在不同程度上采用了这个概念。 过去三年来,智能手机的cpu使用了ARM的big.LITTLE架构,它能够将相对较慢的节能核心与速度更快、能耗更低的核心结合起来。我们的主要目标是让这款芯片尽可能少占用电能,以获得更好的电池续航时间。首批采用这种架构的手机包括三星Galaxy S4,它只入了其公司自主生产的Exynos5芯片,以及华为的Mate8和荣誉6。 今年的“人工智能芯片”让这一概念更进一步,它通过添加一个新的专用组件来执行机器学习任务,或者可以使用其他低功耗内核来执行机器学习任务。例如,骁龙845可以利用它的数字信号处理器(DSP)来处理需要大量重复计算的长时间运行的任务,比如在一段长对话里通过分析找到一个用户需要的热词。高通的产品管理总监加里布洛特曼告诉Engadget,在另一方面,像图像识别这样的需求可以通过GPU更好地管理,布罗特曼专门负责为骁龙智能平台开发人工智能和机器学习技术。 与此同时,苹果的A11仿生学应用在其GPU上添加了一个神经引擎,以加速人脸识别、动话表情反馈和一些第三方应用的使用。这意味着,当你在iPhoneX上启动这些进程时,A11会打开神经引擎进行计算来验证用户的身份,或者把你的面部表情倒入到“会说话的便便”这款应用中。 在Kirin 970芯片中,NPU会处理一些任务,比如扫描和利用微软翻译来翻译图片里的文字。这是迄今为止唯一针对这款芯片进行优化的第三方应用。华为表示,其“HiAI”异构计算结构将其芯片组的大部分组件的性能最大化,因此它可能会将人工智能任务分配给更多,而不仅仅是NPU。 抛开这些差异不说,这种新的架构意味着过去只能在云端处理机器学习计算,现在可以在设备本体上更高效地运行。通过使用非CPU的部分来运行人工智能任务,用户的手机可以在同一时间处理更多的事情,这样你在等待应用为你翻译或例如寻找宠物狗的图片时就不会遇到延迟的烦恼。 此外,在手机上运行这些程序不用将用户的使用数据发送到云端,这对用户隐私也有了更强的保护,因为这样可以减少黑客获取数据的机会。 这些人工智能芯片的另一大优势是节约能源。因为有些工作是重复的,我们手机电池消耗量需要针对这些重复的进程进行更合理地分配。GPU往往会吸收更多的能量,所以如果取而代之的是更节能的DSP,并且它可以实现与GPU类似的效果,那么最好是选择后者。 需要明确的是,在决定执行某些任务时,芯片本身并不决定使用哪个核心系统作为驱动。“在今天,开发者们和oem厂商都想要运行人工智能芯片,”Brotman说。程序员可以使用像Google的TensorFlow这样的支持数据库(或者更确切地说是它的Lite移动版本)来选择运行他们的模型的核心。高通、华为和苹果都采用了TensorFlow Lite和Facebook的Caffe2等最受欢迎的选项作为他们设计的支持程序。高通也支持新的开放神经网络交换(ONNX)系统,而苹果则通过其核心的ML框架为更多机器学习模式添加了兼容性。 到目前为止,这些芯片都没有在现实世界中带来明显的影响。芯片制造商们将会吹捧他们自己的测试结果和基准,但这些测试结果直到人工智能程序成为我们日常生活中重要的一部分之前都毫无意义。因为我们正处于让设备进行机器学习的发展早期阶段,并且使用新硬件的开发者少之又少。 不过现在很明显的是,竞争已经开始了,竞争者们着重研究如何让机器学习相关的任务在用户设备上运行地更快、更省电。我们只需要等待一段时间,就能看到从传统芯片到人工智能芯片的转变带给我们生活上的帮助。