ホームページ  >  記事  >  テクノロジー周辺機器  >  スマート EDA の波が来ていますが、ChatGPT はチップの設計にどのように役立ちますか?

スマート EDA の波が来ていますが、ChatGPT はチップの設計にどのように役立ちますか?

王林
王林転載
2023-04-15 23:55:01650ブラウズ

ChatGPT というと何を思い浮かべますか?チップスについて考えるとき、何を思い浮かべますか?この記事を読んだ後、あなたの頭に浮かんだ最初の言葉を書き留めてください。それは間違いなくあなたの意見を変えるでしょう。テクノロジー愛好家であれば、ChatGPT は人々と会話できる高度にインテリジェントな会話モデルであるという第一印象を抱くでしょう。チップ業界は、上位レベルのアーキテクチャ設計者だけでなく、下位レベルのフィルムプロセスも含む複雑な全体体です。エンジニア。この 2 つはあまりにも無関係に見えるため、組み合わせないかもしれません。

しかし、実際には、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 によって生成された完全なコードはここにはリストされません。しかし、オンチップ ネットワークというキーワードを理解するにはさまざまな方法があることがわかり、ChatGPT はバスベースの理解方法を選択しました。他の方法で意味を理解したい場合は、質問を入力する別の方法を検討する必要があります。

モジュールを結合して生成する手順

以前は限られたモジュールしか生成できませんでしたが、モジュールを結合することはできますか?私たちの目標は、本来存在しない 2 つの奇妙なモジュールを結合して、何も不思議ではないモジュールにすることです。最下位のモジュールは下に生成され、最下層には 2 つの加算器があり、その出力は減算器に接続されます。

スマート 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 に置き換えられにくいエンジニアの理由が明らかになります。

中国科学院計算技術研究所インテリジェントコンピューティングセンター所長のハン・インヘ研究員は、ChatGPTはチップ設計プロセスの加速に役立つだけでなく、チップ自体に一連の課題をもたらすことができると考えています。これは、ストレージと計算の統合、チップの統合、および大型チップなどの現在注目のトピックである可能性があり、待望のキラー アプリケーションをもたらします。

スマート EDA の波が来ていますが、ChatGPT はチップの設計にどのように役立ちますか?

置き換えが困難なプロセス

スマート EDA の波が来ていますが、ChatGPT はチップの設計にどのように役立ちますか?

新しく追加されたプロセス

  • バグ修正エンジニア。 ChatGPTで生成されたプログラムには細かい問題があり、タイミングやモジュール間の接続規格を満たしていない箇所があるため、誤り訂正技術者による修正が必要です。
  • モデルプロンプトエンジニア。 ChatGPT によって生成されるコードの品質は入力プロンプトと密接に関係しているため、仕様を満たすコードを生成するには、ChatGPT の「気質」に精通している一部の人がプロンプトを特別に設計する必要があります。

将来の開発トレンド

インテリジェントEDAの波の下で、一部のポジションは必然的に置き換えられます。では、将来どのような順序で置き換えられるのでしょうか?フロントエンドとバックエンドの物流という観点から見ると、バックエンドはレイアウト設計などの細かい作業を行うため、代替性が高いです。フロントエンドの場合、最初に置き換えられるのはチップ実装のモジュール エンジニアです。これは、上記のチップ生成の実践から、基本的なモジュール コード生成部分が最も直観的であることがわかるためです。その後に登場する置き換えポジションはコンポーネント設計エンジニアであり、エンジニアが ChatGPT を使用してモジュールを組み立てることに慣れた後に置き換えられます。他のエンジニアにとって、ChatGPT は完全に代替するものではなく、補助的なものです。

したがって、レベルが高くなるほど、アーキテクチャの抽象化に関係する部分が置き換えられる可能性が低くなり、レベルが低くなるほど、正確さに関係する部分が置き換えられる可能性が低くなります。中間部分の交換順序は、基本モジュールから上位コンポーネントへのボトムアップになります。

スマートEDAのチャンスを掴む方針です

自立と世界の最先端を徹底的に吸収することは矛盾しません。従来の EDA と大規模モデルが OpenAI でデビューしたにもかかわらず、他の企業がまだ追いついていないのには複雑な理由があります。しかし、政策は依然として過熱した資金の一部を従来の EDA や大規模モデルの問題を解決するプロジェクトから切り離し、業界の障壁が小さいときにインテリジェント EDA 開発の初期段階をつかみ、果敢に業界に参入し、構築するよう企業を奨励する必要があります。新しい製品。この方法でのみ、常に新しいテクノロジーに置き換わるという問題を解決できます。そうしないと、過熱した資本が成熟産業に流入し、資本収益率が低下すると同時に、革新的な技術がより高い財政的支援を得ることができなくなり、革新的な企業が挑戦する勇気を失い、結果的には失敗することになります。事実上、革新的な企業の試行錯誤コストが増加し、革新的な企業が市場で実証済みのテクノロジーを好むようになります。したがって、政策は、企業が ChatGPT などの大規模モデルに基づく派生テクノロジーを開発することを適切に奨励する必要があります。特に大規模モデルは強力なコード生成機能を実証しているため、インテリジェント EDA テクノロジーに基づく企業はその機会を捉える必要があります。

資本市場の投資の焦点は、大型モデルそのものからその派生技術へと移るべきである

情報技術の分野では、先端技術は一般的なものから専門的なものへと移行し続けており、徐々にこれはデバイス設計の分野で最も明白です。前世紀には CPU が非常に普及し、高性能コンピューターが誕生しました。今世紀の初めには GPU が徐々に普及し、過去 10 年間で 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、Ming Zhou。 2020. [CodeBERT: プログラミングと自然言語のための事前トレーニングされたモデル]。計算言語学協会の調査結果: EMNLP 2020、1536 ~ 1547 ページ、オンライン。 Association for Computational Linguistics.

[2] [GRAPHCODEBERT: データ フローによる事前トレーニング コード表現]

[3] [CodeT5: コードの理解と生成のための識別子を意識した統合された事前トレーニングされたエンコーダー/デコーダー モデル]

[4] [UniXcoder: コード表現のための統合クロスモーダル事前トレーニング]

测试用例に基づく代償生成

[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、[構文ガイド付き合成]、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: Component-Based Synthesis with Control Structures、POPL、2019 年

[10] Yu Feng、Ruben Martins、Yuepeng Wang、Isil Dillig、Thomas W. Reps、複雑な API のコンポーネントベースの合成、[ACM SIGPLAN Notices]、2017

逻辑规则の代コード生成

[11] Z. Manna および R. Waldinger、「Synthesis: Dreams → Programs」、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 Software 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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事は51cto.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。