스마트 EDA 물결이 다가오고 있습니다. ChatGPT는 칩 설계에 어떻게 도움이 됩니까?

王林
풀어 주다: 2023-04-15 23:55:01
앞으로
669명이 탐색했습니다.

ChatGPT를 언급하면 ​​무엇이 떠오르나요? 칩하면 무엇이 떠오르시나요? 이 글을 읽고 나면 가장 먼저 떠오르는 단어를 적어보세요. 그러면 여러분의 생각이 확실히 바뀔 것입니다. 기술에 열광하는 사람이라면 ChatGPT가 사람들과 대화할 수 있는 고도로 지능적인 대화 모델이라는 첫 인상을 받을 것입니다. 칩 산업은 상위 수준의 아키텍처 설계자뿐만 아니라 하위 수준의 프로세스도 포함하는 복잡한 전체입니다. 엔지니어. 두 가지가 서로 관련이 없어 보이기 때문에 결합하지 않을 수도 있습니다.

그러나 실제로 ChatGPT 모델의 고유한 코드 생성 기능은 칩 설계 속도를 크게 가속화합니다. 기존 EDA(전자 설계 자동화)에서 스마트 EDA로의 전환 물결이 시작됩니다. 오늘 기사에서는 기존 EDA가 ChatGPT를 기반으로 스마트 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는 칩 업계에 재사용 가능한 코드를 충분히 제공할 것입니다

칩 업계에서 요구하는 엄청난 양의 설계 코드에는 효율성이 절실히 필요합니다. 개발 도구 . 칩 설계는 많은 코드 축적이 필요한 산업입니다. 예를 들어 Alibaba의 Xuantie OpenC910의 핵심 오픈 소스 코드는 약 351KLOC입니다. 그림 1에서 볼 수 있듯이 업계에서는 일반적으로 레이아웃을 생성하기 위해 EDA의 프런트엔드 및 백엔드 도구를 사용하여 최상위 Verilog에서 설계를 시작합니다. 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는 버스 기반 이해 방법을 선택했습니다. 의미론적 이해를 위한 다른 방법을 원한다면 질문을 입력하는 다양한 방법을 탐구해야 합니다.

모듈 결합 및 생성 단계

이전에는 한정된 모듈만 생성됐는데, 모듈 결합도 가능한가요? 우리의 목표는 원래 존재하지 않는 두 개의 이상한 모듈을 이상하지 않은 모듈로 결합하는 것입니다. 아래에는 이상한 모듈이 생성됩니다. 맨 아래 레이어에는 두 개의 덧셈기가 있고 그 출력은 감산기에 연결됩니다.

스마트 EDA 물결이 다가오고 있습니다. ChatGPT는 칩 설계에 어떻게 도움이 됩니까?

스마트 EDA 물결이 다가오고 있습니다. ChatGPT는 칩 설계에 어떻게 도움이 됩니까?

ChatGPT가 칩 생성 분야에서 성공할 수 있는 이유

ChatGPT의 칩 합성 성공은 코드에 대한 이해와 정확한 자연어 의미 식별에 기인합니다.

스마트 EDA 물결이 다가오고 있습니다. ChatGPT는 칩 설계에 어떻게 도움이 됩니까?

ChatGPT가 칩 설계를 생성하면 모든 것이 준비됩니까?

ChatGPT 모델이 칩 설계의 프런트엔드 작업의 일부를 완료할 수 있지만 여전히 다음과 같은 과제가 있습니다. 수작업이 필요한 EDA 툴체인과 조인트 튜닝을 통해 사양에 맞는 칩을 생성할 수 있습니다.

스마트 EDA 물결이 다가오고 있습니다. ChatGPT는 칩 설계에 어떻게 도움이 됩니까?

실리콘 업계가 스마트 EDA 위기에 대응하는 방법

ChatGPT 지능형 EDA 프로세스로서 위기이자 기회입니다. EDA 프런트엔드 작업의 일부를 대체할 수 있지만, EDA 백엔드는 더 나은 최적화 구조를 얻기 위해 결정성과 세부 분석에 크게 의존하기 때문에 EDA 백엔드 최적화 작업을 지원하기 어렵습니다. 그러나 모델 프롬프트 엔지니어 및 오류 수정 엔지니어와 같은 새로운 직책도 창출됩니다.

스마트 EDA 물결이 다가오고 있습니다. ChatGPT는 칩 설계에 어떻게 도움이 됩니까?

그림 5: 엔지니어 직위에 따른 대체 가능성

실리콘 업계의 다양한 직위에 따른 대체 가능성 추세를 보다 명확하게 분류하기 위해 EDA 프로세스를 위에서 아래로 따라갔습니다. 그림 5와 같이 아키텍처 설계 단계 - 칩 코드 구현 단계 - 칩 PPA 튜닝 단계 - 칩 검증 단계의 4단계로 구분됩니다. 여기서 칩 튜닝은 일부 하드웨어 구조와 알고리즘을 변경하여 프런트 엔드에서 달성한 튜닝을 의미하므로 칩 검증 전에 나열됩니다. 파란색 상자는 교체가 어려운 포지션, 노란색 상자는 교체가 쉬운 포지션, 회색 상자는 새로 추가된 포지션을 나타냅니다. 다음의 특정 프로세스에 따른 대체 가능성 분석은 왜 어떤 직위의 엔지니어는 ChatGPT로 쉽게 대체되고, 일부 직위의 엔지니어는 ChatGPT로 대체되기 어려운 이유를 보여줍니다.

중국과학원 컴퓨팅 기술 연구소의 지능형 컴퓨팅 센터 소장인 연구원 Han Yinhe는 ChatGPT가 칩 설계 프로세스의 속도를 높이는 데 도움이 될 뿐만 아니라 칩에 일련의 과제를 가져올 수 있다고 믿습니다. 저장 및 계산 통합, 칩 통합 및 대형 칩과 같은 현재 뜨거운 주제가 될 수 있는 아키텍처 및 기타 기술은 간절히 기다려온 킬러 애플리케이션을 가져옵니다.

스마트 EDA 물결이 다가오고 있습니다. ChatGPT는 칩 설계에 어떻게 도움이 됩니까?

교체가 어려운 공정

스마트 EDA 물결이 다가오고 있습니다. ChatGPT는 칩 설계에 어떻게 도움이 됩니까?

새로 추가된 공정

  • 버그 수정 엔지니어. ChatGPT에서 생성된 프로그램에는 세부적인 문제가 있을 수 있고, 일부 장소에서는 모듈 간의 타이밍이나 연결 표준을 충족하지 못하기 때문에 오류 수정 엔지니어가 이를 수정해야 합니다.
  • 모델 프롬프트 엔지니어. ChatGPT에서 생성된 코드의 품질은 입력 프롬프트와 밀접한 관련이 있으므로 ChatGPT의 "성질"에 익숙한 일부 사람들은 사양을 충족하는 코드를 생성하기 위해 프롬프트를 특별히 디자인해야 합니다.

향후 개발 동향

지능형 EDA의 물결 속에서 일부 직위는 필연적으로 교체될 것입니다. 그렇다면 앞으로는 어떤 순서로 교체될까요? 프론트엔드와 백엔드 배포 관점에서 볼 때 백엔드는 레이아웃 설계 등 세부적인 작업으로 인해 대체성이 매우 높습니다. 프론트 엔드의 경우 첫 번째 교체는 칩 구현의 모듈 엔지니어입니다. 왜냐하면 위의 칩 생성 실습을 통해 기본 모듈 코드 생성 부분이 가장 직관적이라는 것을 알 수 있기 때문입니다. 부품 설계 엔지니어 이후에 나타나는 교체 위치는 엔지니어가 ChatGPT를 사용하여 모듈을 조립하는 데 익숙해진 후에 교체됩니다. 다른 엔지니어들에게 ChatGPT는 완전한 대체품이라기보다는 보조적인 가치에 가깝습니다.

따라서 수준이 높을수록 아키텍처 추상화와 관련된 부분을 교체할 가능성이 낮아지고 수준이 낮을수록 정확성과 관련된 부분을 교체할 가능성이 낮아진다는 것을 알 수 있습니다. 중간 부품의 교체 순서는 기본 모듈부터 상위 구성 요소까지 상향식입니다.

스마트 EDA의 기회를 잡는 것이 정책입니다

자립과 ​​세계 최첨단을 완전히 흡수하는 것은 모순되지 않습니다. OpenAI에서 전통적인 EDA와 대형 모델이 데뷔했지만 아직 다른 회사들이 따라잡지 못한 데에는 복합적인 이유가 있습니다. 그러나 정책은 여전히 ​​전통적인 EDA 및 대형 모델 문제를 해결하는 프로젝트에서 일부 과열된 자본을 분리하고 기업이 산업 장벽이 작을 때 지능형 EDA 개발의 초기 단계를 포착하고 용감하게 업계에 진입하여 구축하도록 장려해야 합니다. 새로운 제품의 기술적 장벽. 그래야만 끊임없이 새로운 기술로 대체되는 문제를 해결할 수 있습니다. 그렇지 않으면 과열된 자본이 성숙한 산업으로 유입되어 자본 수익률이 감소하는 동시에 혁신적인 기술은 더 높은 재정적 지원을 얻을 수 없게 되어 혁신적인 기업이 감히 시도하지 못하고 실수를 저지르게 됩니다. 혁신 기업의 시행착오 비용을 증가시켜 혁신 기업이 시장에서 검증된 기술을 선호하게 만듭니다. 따라서 정책은 기업이 ChatGPT와 같은 대형 모델을 기반으로 한 파생 기술을 개발하도록 적절하게 장려해야 합니다. 특히 대형 모델이 강력한 코드 생성 기능을 입증했기 때문에 지능형 EDA 기술을 기반으로 하는 기업은 기회를 포착해야 합니다.

자본 시장의 투자 초점은 대형 모델 자체에서 파생 기술로 이동해야 합니다

정보 기술 분야에서 첨단 기술은 계속해서 일반 기술에서 전문 기술로 이동하고 점차적으로 이전 기술을 기반으로 파생 기술을 처리하는 것은 장치 설계 분야에서 가장 분명합니다. 지난 세기에는 CPU가 큰 인기를 끌면서 고성능 컴퓨터가 탄생했습니다. 금세기 초에는 GPU가 점차 대중화되면서 지난 10년 동안 NPU가 등장하기 시작했습니다. 에너지 효율적인 신경망 훈련 및 추론. 대형 모델이 성숙해지면 향후 몇 년 안에 파생 기술도 등장할 것으로 유추할 수 있다.

Smart 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 및 Ming Zhou. 2020. [CodeBERT: 프로그래밍 및 자연어를 위한 사전 훈련된 모델]. 전산언어학협회 조사 결과: EMNLP 2020, 1536~1547페이지, 온라인. Association for Computational Linguistics.

[2] [GRAPHCODEBERT: 데이터 흐름을 통한 사전 훈련 코드 표현]

[3] [CodeT5: 코드 이해 및 생성을 위한 식별자 인식 통합 사전 훈련된 인코더-디코더 모델 ]

[4] [UniXcoder: 코드 표현을 위한 통합 교차 모달 사전 훈련]

基于测试用例的代码生成

[5] Rajeev Alur, Rastislav, 가빗 주니왈 , Milo M. K. Martin, Mukund Raghothaman, Sanjit A. Seshia, Rishabh Singh, Armando Solar-Lezama, Emina Torlak, Abhishek Udupa, [구문 기반 합성], 2013

[6] Peter-Michael Osera, Steve Zdancewic, [유형 및 예제 중심 프로그램 합성], 2015

[7] John K. Feser, Swarat Chaudhuri, Isil Dillig, [입출력 예제에서 데이터 구조 변환 합성], 2015

[8 ] Armando Solar-Lezama, [스케치를 통한 프로그램 합성], 2008

[9] [Kensen Shi], [Jacob Steinhardt], [Percy Liang], FrAngel: 제어 구조를 사용한 구성 요소 기반 합성, POPL, 2019

[10] Yu Feng, Ruben Martins, Yuepeng Wang, Isil Dillig, Thomas W. Reps, 복잡한 API를 위한 구성 요소 기반 합성, [ACM SIGPLAN 공지], 2017

基于逻辑规则的代码生成

[11] Z. Manna 및 R. Waldinger, "합성: 꿈 → 프로그램", IEEE Transactions on Software Engineering, vol. SE-5, 아니. 4, pp. 294-328, 1979년 7월, doi: 10.1109/TSE.1979.234198.

[12] Bernd Finkbeiner 및 Sven Schewe, 경계 합성, Int J Softw Tools Technol Transfer, (2013), 15:519 –539, DOI: 10.1007/s10009-012-0228-z

[13] Peter Faymonville, Bernd Finkbeiner 및 Leander Tentrup, BoSy: 경계 합성을 위한 실험 프레임워크, CAV 2017

위 내용은 스마트 EDA 물결이 다가오고 있습니다. ChatGPT는 칩 설계에 어떻게 도움이 됩니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:51cto.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿