(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023149501
(43)【公開日】2023-10-13
(54)【発明の名称】機能推定方法および機能推定プログラム
(51)【国際特許分類】
G06F 30/32 20200101AFI20231005BHJP
G06F 30/27 20200101ALI20231005BHJP
G06F 30/10 20200101ALI20231005BHJP
G06N 3/045 20230101ALI20231005BHJP
【FI】
G06F30/32
G06F30/27
G06F30/10 200
G06N3/04 154
【審査請求】未請求
【請求項の数】9
【出願形態】OL
(21)【出願番号】P 2022058108
(22)【出願日】2022-03-31
(71)【出願人】
【識別番号】591036457
【氏名又は名称】三菱電機エンジニアリング株式会社
(71)【出願人】
【識別番号】504159235
【氏名又は名称】国立大学法人 熊本大学
(74)【代理人】
【識別番号】100110423
【弁理士】
【氏名又は名称】曾我 道治
(74)【代理人】
【識別番号】100111648
【弁理士】
【氏名又は名称】梶並 順
(74)【代理人】
【識別番号】100147566
【弁理士】
【氏名又は名称】上田 俊一
(74)【代理人】
【識別番号】100161171
【弁理士】
【氏名又は名称】吉田 潤一郎
(74)【代理人】
【識別番号】100188514
【弁理士】
【氏名又は名称】松岡 隆裕
(72)【発明者】
【氏名】伊藤 寛人
(72)【発明者】
【氏名】井戸 大介
(72)【発明者】
【氏名】飯田 全広
(72)【発明者】
【氏名】尼崎 太樹
【テーマコード(参考)】
5B146
【Fターム(参考)】
5B146AA22
5B146DC03
5B146DL03
5B146DL10
5B146GC01
(57)【要約】
【課題】LSIのネットリストに対する機能推定の汎化性向上を図る。
【解決手段】グラフ構造を有するネットワークであるGNNを用いて、LSIの論理設計で使用されるネットリストに基づいて機能を推定するために、コンピュータにより実行される機能推定方法であって、ネットリストに基づいて第1のGNNを用いることで第1の機能推定を行う第1推定工程と、第1推定工程の推定結果に基づいて第2のGNNを用いることで第2の機能推定を行う第2推定工程とを備え、第2推定工程は、第1推定工程の推定結果である出力グラフの各ノードについてクラスタリングを行い、クラスタリング後の各ノードにおける種別を表現する行列を第2のGNNに対する入力データとして生成し、第2の機能推定を行う。
【選択図】
図1
【特許請求の範囲】
【請求項1】
グラフ構造を有するネットワークであるGNNを用いて、LSIの論理設計で使用されるネットリストに基づいて機能を推定するために、コンピュータにより実行される機能推定方法であって、
前記ネットリストに基づいて第1のGNNを用いることで第1の機能推定を行う第1推定工程と、
前記第1推定工程の推定結果に基づいて第2のGNNを用いることで第2の機能推定を行う第2推定工程と
を備え、
前記第2推定工程は、
前記第1推定工程の推定結果である出力グラフの各ノードについてクラスタリングを行い、クラスタリング後の各ノードにおける種別を表現する行列を前記第2のGNNに対する入力データとして生成し、前記第2の機能推定を行う
機能推定方法。
【請求項2】
前記第1推定工程は、
前記ネットリストをノードおよびエッジから構成されるグラフ表現に変換することでグラフ化したネットリストを生成する第1ステップと、
前記グラフ化したネットリスト内の各ノードにおける種別を表現する特徴行列と、前記ネットリスト内の各ノードにおける接続関係を表現する隣接行列と、を生成する第2ステップと、
前記特徴行列および前記隣接行列を前記第1のGNNに入力し、前記ノードおよび前記エッジの接続関係を用いた演算を実行することで、前記第1の機能推定を実行し、前記グラフ化したネットリスト内の各ノードについて前記第1の機能推定の結果によるノード分類を反映した出力グラフを前記推定結果として生成する第3ステップと
を有し、
前記第2推定工程は、
前記推定結果である前記出力グラフの各ノードについてクラスタリングを行い、前記第2のGNNに入力するための前記入力データとして、クラスタリング後の各ノードにおける種別を表現する新たな特徴行列と、クラスタリング後の各ノードにおける接続関係を表現する新たな隣接行列とを生成する第4ステップと、
前記新たな特徴行列および前記新たな隣接行列を前記第2のGNNに入力し、クラスタリング後のノードおよびエッジの接続関係を用いた演算を実行することで、前記第2の機能推定を実行する第5ステップと
を有する請求項1に記載の機能推定方法。
【請求項3】
前記コンピュータは、前記ネットリストからクラスターの境界が既知である場合には、
前記第4ステップにおいて、
前記出力グラフのノード分類結果に対して前記ネットリストに基づくクラスターごとに各ノードの推定結果の多数決を取ることで各クラスター内の全てのノードに対して同一の分類を割り当てることで前記クラスタリングを行い、前記新たな隣接行列を生成し、前記行列内の各ノードにおける種別を表現する新たな特徴行列を生成する
請求項2に記載の機能推定方法。
【請求項4】
前記コンピュータは、前記ネットリストからクラスターの境界が未知である場合には、
前記第4ステップにおいて、
前記出力グラフの各ノードについて、隣接ノードの機能比較に基づいて孤立したノードを削除する平滑化処理を実行し、
前記平滑化処理を実行後の出力グラフの各ノードについて隣接する同機能のノードについてマージ処理を実行することにより前記クラスタリングを行い、
前記クラスタリング後の各ノードにおける種別を表現する前記新たな特徴行列と、前記クラスタリング後の各ノードにおける接続関係を表現する前記新たな隣接行列とを生成する
請求項2に記載の機能推定方法。
【請求項5】
前記GNNとしてグラフ構造を畳み込んだネットワークであるR-GCNを用いた場合には、
前記ネットリストに基づいて前記第1のGNNとして第1のR-GCNを用いることで前記第1の機能推定を行う前記第1推定工程は、
前記ネットリストをノードおよびエッジから構成されるグラフ表現に変換することでグラフ化したネットリストを生成する第1ステップと、
前記グラフ化したネットリスト内の各ノードにおける種別を表現する特徴行列と、前記ネットリスト内の各ノードにおける接続関係および入出力関係を表現する3種の隣接行列と、を生成する第2ステップと、
前記特徴行列および前記3種の隣接行列を前記第1のR-GCNに入力し、前記ノードおよび前記エッジの接続関係を用いたグラフ畳み込み演算を実行することで、前記第1の機能推定を実行し、前記グラフ化したネットリスト内の各ノードについて前記第1の機能推定の結果によるノード分類を反映した出力グラフを前記推定結果として生成する第3ステップと
を有し、
前記第1推定工程の推定結果に基づいて前記第2のGNNとして第2のR-GCNを用いることで前記第2の機能推定を行う前記第2推定工程は、
前記推定結果である前記出力グラフの各ノードについてクラスタリングを行い、前記第2のR-GCNに入力するための前記入力データとして、クラスタリング後の各ノードにおける種別を表現する新たな特徴行列と、クラスタリング後の各ノードにおける接続関係および入出力関係を表現する新たな3種の隣接行列とを生成する第4ステップと、
前記新たな特徴行列および前記新たな3種の隣接行列を前記第2のR-GCNに入力し、クラスタリング後のノードおよびエッジの接続関係を用いたグラフ畳み込み演算を実行することで、前記第2の機能推定を実行する第5ステップと
を有し、
前記第2ステップで生成される前記3種の隣接行列は、前記グラフ化したネットリスト内の各ノードにおけるノード間の入力に関する接続関係を示す第1の隣接行列と、前記グラフ化したネットリスト内の各ノードを要素とする単位行列を示す第2の隣接行列と、前記グラフ化したネットリスト内の各ノードにおけるノード間の出力に関する接続関係を示す第3の隣接行列とで構成され、
前記第5ステップで生成される前記新たな3種の隣接行列は、前記クラスタリング後の各ノードにおけるノード間の入力に関する接続関係を示す新たな第1の隣接行列と、前記クラスタリング後の各ノードを要素とする単位行列を示す新たな第2の隣接行列と、前記クラスタリング後の各ノードにおけるノード間の出力に関する接続関係を示す新たな第3の隣接行列とで構成される
請求項1に記載の機能推定方法。
【請求項6】
前記コンピュータは、前記ネットリストからクラスターの境界が既知である場合には、
前記第4ステップにおいて、
前記出力グラフのノード分類結果に対して前記ネットリストに基づくクラスターごとに各ノードの推定結果の多数決を取ることで各クラスター内の全てのノードに対して同一の分類を割り当て、
各ノードの属するインスタンスを記述するインスタンス行列Sを生成し、前記第2ステップで生成された前記第3の隣接行列Aoutを用いて、下式
ST×Aout×S
による行列を生成することで前記クラスタリングを行い、
前記行列に関して、対角成分を0とし、対角成分以外の成分で0以外の成分を1に書き換えることで前記新たな第3の隣接行列を生成し、前記新たな第3の隣接行列を転置することで前記新たな第1の隣接行列を生成し、対角成分をすべて1とし対角成分以外をすべて0とすることで前記新たな第2の隣接行列を生成し、前記行列内の各ノードにおける種別を表現する新たな特徴行列を生成する
請求項5に記載の機能推定方法。
【請求項7】
前記コンピュータは、前記ネットリストからクラスターの境界が未知である場合には、
前記第4ステップにおいて、
前記出力グラフの各ノードについて、隣接ノードの機能比較に基づいて孤立したノードを削除する平滑化処理を実行し、
前記平滑化処理を実行後の出力グラフの各ノードについて隣接する同機能のノードについてマージ処理を実行することにより前記クラスタリングを行い、
前記クラスタリング後の各ノードにおける種別を表現する前記新たな特徴行列と、前記クラスタリング後の各ノードにおける接続関係および入出力関係を表現する前記新たな3種の隣接行列とを生成する
請求項5に記載の機能推定方法。
【請求項8】
前記コンピュータは、
前記第1推定工程において、前記ネットリストに含まれる算術演算機能を前記第1の機能推定として推定し、
前記第2推定工程において、前記算術演算機能の推定結果に基づいて上位階層の回路機能を前記第2の機能推定として推定する
請求項1から7のいずれか1項に記載の機能推定方法。
【請求項9】
グラフ構造を有するネットワークであるGNNを用いて、LSIの論理設計で使用されるネットリストに基づいて機能を推定するために、コンピュータにより実行される機能推定プログラムであって、
前記コンピュータを
前記ネットリストに基づいて第1のGNNを用いることで第1の機能推定を行う第1推定手段と、
前記第1推定手段の推定結果に基づいて第2のGNNを用いることで第2の機能推定を行う第2推定手段と
して機能させ、
前記第1推定手段は、
前記ネットリストをノードおよびエッジから構成されるグラフ表現に変換することでグラフ化したネットリストを生成する第1ステップと、
前記グラフ化したネットリスト内の各ノードにおける種別を表現する特徴行列と、前記ネットリスト内の各ノードにおける接続関係を表現する隣接行列と、を生成する第2ステップと、
前記特徴行列および前記隣接行列を前記第1のGNNに入力し、前記ノードおよび前記エッジの接続関係を用いた演算を実行することで、前記第1の機能推定を実行し、前記グラフ化したネットリスト内の各ノードについて前記第1の機能推定の結果によるノード分類を反映した出力グラフを前記推定結果として生成する第3ステップと
を有し、
前記第2推定手段は、
前記推定結果である前記出力グラフの各ノードについてクラスタリングを行い、前記第2のGNNに入力するための入力データとして、クラスタリング後の各ノードにおける種別を表現する新たな特徴行列と、クラスタリング後の各ノードにおける接続関係を表現する新たな隣接行列とを生成する第4ステップと、
前記新たな特徴行列および前記新たな隣接行列を前記第2のGNNに入力し、クラスタリング後のノードおよびエッジの接続関係を用いた演算を実行することで、前記第2の機能推定を実行する第5ステップと
を有する機能推定プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、グラフ構造を有するネットワークであるGNN(Graph Neural Network)を用いて、LSIの論理設計で使用されるネットリストに基づいて機能推定を行う機能推定方法および機能推定プログラムに関する。
【背景技術】
【0002】
半導体集積回路(以後、LSIと称す)の設計技術として、開発効率がよく、半導体ベンダにとらわれないハードウェア記述言語(HDL:Hardware Descripti-on Language)が用いられる場合がある。
【0003】
この場合には、HDLにより回路設計が行われた後に、回路に実装する部品の接続関係を表現するネットリストへ自動で変換する論理合成が用いられている。ここで、いわゆる論理合成が可能なHDL記述レベルは、レジスタトランスファレベル(以下、RTLと称す)と呼ばれる。
【0004】
これに対し、RTLの存在しない過去の設計資産を活用する目的で、ネットリストに実装されている機能の抽出、あるいはネットリストをRTLへ変換する要望がある。しかしながら、半導体ベンダ毎に異なるネットリストを、単純な言語変換ではなく、記述を自動で抽象化し変換する技術までは確立されておらず、主に人手により、ドキュメントを参考にしながらネットリストの読解が行われていた。
【0005】
この問題に対して、RTLに実装された機能を推定する方法がある(例えば、特許文献1参照)。特許文献1では、ニューラルネットワーク(以後、NNと称す)を用いて、判定機能の学習後に機能推定を行い、一致した機能の回路データを差し替える方法が紹介されている。
【0006】
しかしながら、特許文献1では、変換ルールとして学習した機能の推定、および回路置き換えを対象にしている。従って、学習した機能が組み合わされた機能に対しての機能推定を行う仕組みはない。そのため、判定したい機能毎に、すべて手作業で学習させる必要がある。
【0007】
このような課題を解決するために、本出願人は、LSIのネットリストに対して、機能推定を効率的に実行することができる機能推定方法および機能推定プログラムを提案した(例えば、特許文献2参照)。
【先行技術文献】
【特許文献】
【0008】
【特許文献1】特開平4-199369号公報
【特許文献2】特開2021-89722号公報
【発明の概要】
【発明が解決しようとする課題】
【0009】
特許文献2では、ゲートレベルのネットリストをグラフ化し、R-GCNに入力することによる回路の機能推定手法を提案し、単純な算術演算機能であるadder、subtractor、multiplier、multiplexer等で構成された組み合わせ回路における機能推定を実現した。
【0010】
ここで、R-GCN(Relational Graph Convolutional Network)は、GNNの1種であり、ノードとエッジで構成されたグラフ構造を対象とした畳み込みニューラルネットワークモデルの一種であり、有向グラフが入力可能であるという特徴がある。
【0011】
しかしながら、このような特許文献2に係る手法については、より複雑な回路に対しても機能推定を行うことができるように推定性能の向上を図ることが望まれている。
【0012】
本開示は、このような課題を解決するためになされたものであり、従来技術と比較して、LSIのネットリストに対する機能推定の汎化性向上を図ることができる機能推定方法および機能推定プログラムを得ることを目的とする。
【課題を解決するための手段】
【0013】
本開示に係る機能推定方法は、グラフ構造を有するネットワークであるGNNを用いて、LSIの論理設計で使用されるネットリストに基づいて機能を推定するために、コンピュータにより実行される機能推定方法であって、ネットリストに基づいて第1のGNNを用いることで第1の機能推定を行う第1推定工程と、第1推定工程の推定結果に基づいて第2のGNNを用いることで第2の機能推定を行う第2推定工程とを備え、第2推定工程は、第1推定工程の推定結果である出力グラフの各ノードについてクラスタリングを行い、クラスタリング後の各ノードにおける種別を表現する行列を第2のGNNに対する入力データとして生成し、第2の機能推定を行うものである。
【0014】
また、本開示に係る機能推定プログラムは、グラフ構造を有するネットワークであるGNNを用いて、LSIの論理設計で使用されるネットリストに基づいて機能を推定するために、コンピュータにより実行される機能推定プログラムであって、コンピュータをネットリストに基づいて第1のGNNを用いることで第1の機能推定を行う第1推定手段と、第1推定手段の推定結果に基づいて第2のGNNを用いることで第2の機能推定を行う第2推定手段として機能させ、第1推定手段は、ネットリストをノードおよびエッジから構成されるグラフ表現に変換することでグラフ化したネットリストを生成する第1ステップと、グラフ化したネットリスト内の各ノードにおける種別を表現する特徴行列と、ネットリスト内の各ノードにおける接続関係を表現する隣接行列と、を生成する第2ステップと、特徴行列および隣接行列を第1のGNNに入力し、ノードおよびエッジの接続関係を用いた演算を実行することで、第1の機能推定を実行し、グラフ化したネットリスト内の各ノードについて第1の機能推定の結果によるノード分類を反映した出力グラフを推定結果として生成する第3ステップとを有し、第2推定手段は、推定結果である出力グラフの各ノードについてクラスタリングを行い、第2のGNNに入力するための入力データとして、クラスタリング後の各ノードにおける種別を表現する新たな特徴行列と、クラスタリング後の各ノードにおける接続関係を表現する新たな隣接行列とを生成する第4ステップと、新たな特徴行列および新たな隣接行列を第2のGNNに入力し、クラスタリング後のノードおよびエッジの接続関係を用いた演算を実行することで、第2の機能推定を実行する第5ステップとを有するものである。
【発明の効果】
【0015】
本開示によれば、従来技術と比較して、LSIのネットリストに対する機能推定の汎化性向上を図ることができる機能推定方法および機能推定プログラムを得ることができる。
【図面の簡単な説明】
【0016】
【
図1】本開示の実施の形態1に係る機能推定方法による処理の流れを示した説明図である。
【
図2】本開示の実施の形態1に係る機能推定方法による2通りの処理の流れによる全体フローを示した図である。
【
図3】本開示の実施の形態1においてR-GCNを2個直列に接続した場合の、R-GCN2に関する入力、処理、出力を示した説明図である。
【
図4】本開示の実施の形態1においてR-GCNを2個直列に接続した場合の、推定精度に関するメリットを示した説明図である。
【
図5】本開示の実施の形態1において、インスタンス有りの場合にR-GCN2で用いる行列の基となる入力グラフを生成する手法を示した説明図である。
【
図6】本開示の実施の形態1において、R-GCN1によってノード分類された推定結果に対して、各インスタンス内で多数決を取るイメージを示した説明図である。
【
図7】本開示の実施の形態1において、新隣接行列A’を算出する前段としてインスタンス行列Sを生成する手法を示した説明図である。
【
図8】本開示の実施の形態1において、インスタンス行列Sを用いて新隣接行列A’を生成する手法を示した説明図である。
【
図9】本開示の実施の形態1において、クラスタリング後のグラフから新特徴行列X’を生成する手法を示した説明図である。
【
図10】本開示の実施の形態1において、クラスタリング後のグラフに示された回路のアプリケーションから新正解行列Y’を生成する手法を示した説明図である。
【
図11】本開示の実施の形態1において、インスタンス無しの場合にR-GCN2に対する入力グラフを生成する手法を示した説明図である。
【
図12】本開示の実施の形態1におけるマージ処理に関する説明図である。
【
図13】本開示の実施の形態1における接続構成の第1の具体例を示した図である。
【
図14】本開示の実施の形態1における接続構成の第2の具体例を示した図である。
【発明を実施するための形態】
【0017】
以下、本開示の機能推定方法および機能推定プログラムの好適な実施の形態につき、図面を用いて説明する。本開示は、グラフを扱う深層学習全般に関する技術であり、GNNにおいて、ノードレベルでの分類を行うことを特徴とするものである。
【0018】
なお、以下の実施の形態1では、GNNの具体例として、グラフ構造を畳み込んだネットワークであるGCNとしてR-GCNを用いて、LSIの論理設計で使用されるネットリストに基づいて機能を推定するために、コンピュータにより実行される機能推定手法について説明する。本開示によれば、特に、前段の機能推定結果を利用して、さらなる機能推定を後段で行う手法を備えており、LSIのネットリストに対する機能推定の汎化性向上を図ることができるものである。
【0019】
実施の形態1.
図1は、本開示の実施の形態1に係る機能推定方法による処理の流れを示した説明図である。
図1を用いて本実施の形態1におけるR-GCNを用いたアプリケーションのネットリストの機能推定手法について説明する。
図1では、アプリケーションのネットリストから、最終的にそのアプリケーションの機能を推定するまでの一連の流れが示されている。
【0020】
図1に示すように、本実施の形態1に係る機能推定方法は、大別すると、第1推定工程10と、第1推定工程10による推定結果を利用する第2推定工程20を備えている。第1推定工程10は、ネットリストに基づいて第1のR-GCNを用いることで第1の機能推定を行う。より具体的には、第1推定工程10は、以下のようなステップを有している。
【0021】
第1ステップ:ネットリストをノードおよびエッジから構成されるグラフ表現に変換することでグラフ化したネットリストを生成するステップ。
第2ステップ:グラフ化したネットリスト内の各ノードにおける種別を表現する特徴行列と、ネットリスト内の各ノードにおける接続関係および入出力関係を表現する3種の隣接行列とを生成するステップ。
【0022】
第3ステップ:特徴行列および3種の隣接行列を第1のR-GCNに入力し、ノードおよびエッジの接続関係を用いたグラフ畳み込み演算を実行することで、第1の機能推定を実行し、グラフ化したネットリスト内の各ノードについて第1の機能推定の結果によるノード分類を反映した出力グラフを推定結果として生成するステップ。
【0023】
なお、この第1推定工程10における詳細な処理内容は、特許文献2に開示されており、ここでは詳細な説明を省略する。
【0024】
第2推定工程20は、第1推定工程10の推定結果に基づいて第2のR-GCNを用いることで第2の機能推定を行う。この第2推定工程20は、機能推定の汎化性向上を図るために本開示において新たに追加された工程であり、以下のようなステップを有している。
【0025】
第4ステップ:推定結果である出力グラフの各ノードについてクラスタリングを行い、第2のR-GCNに入力するための入力データとして、新たな特徴行列と、新たな3種の隣接行列とを生成するステップ。
第5ステップ:新たな特徴行列および新たな3種の隣接行列を第2のR-GCNに入力し、クラスタリング後のノードおよびエッジの接続関係を用いたグラフ畳み込み演算を実行することで、第2の機能推定を実行するステップ。
【0026】
なお、新たな特徴行列とは、クラスタリング後の各ノードにおける種別を表現する行列であり、新たな3種の隣接行列とは、クラスタリング後の各ノードにおける接続関係および入出力関係を表現する行列であり、詳細は後述する。
【0027】
図1では、第1推定工程10において、ネットリストに含まれる算術演算機能を第1の機能推定として推定し、第2推定工程20において、算術演算機能の推定結果に基づいて上位階層の回路機能としてのアプリケーション機能を第2の機能推定として推定する場合を例示している。なお、第1推定工程10により推定される機能、および第2推定工程20により推定される機能は、この例示に限定されるものではない。
【0028】
図2は、本開示の実施の形態1に係る機能推定方法による2通りの処理の流れによる全体フローを示した図である。なお、
図1および
図2において、R-GCN1という表記は、第1推定工程10で用いられる第1のR-GCNを意味しており、R-GCN2という表記は、第2推定工程20で用いられる第2のR-GCNを意味している。
【0029】
図1および
図2に示した本実施の形態1に係る機能推定方法によれば、R-GCNを複数個直列に接続することで,従来技術では不可能であった、より複雑で大規模なLSIのネットリストの機能推定を実施することができる。
【0030】
なお、
図2においては、R-GCN1とR-GCN2とを直列に接続するにあたり、インスタンス有りの場合とインスタンス無しの場合の2通りの処理の流れが示されている。ここで、インスタンス有りとは、既に機能がモジュール単位で区切られている状態を意味している。つまり、クラスタリング処理としては、あくまでゲートレベルのネットリストに記載されているインスタンス名に従って境界を判別しているにすぎない。
【0031】
一方、インスタンス無しとは、機能がモジュール単位で区切られていない状態を意味している。従って、ネットリストを見ただけでは機能の境界を判別することはできない。
【0032】
本実施の形態1に係る機能推定方法においては、前段のR-GCN1の推定結果を後段のR-GCN2に入力する際に,機能の境界を自動的に判別(クラスタリング)することを特徴としている。そこで、まず始めに、R-GCNを2個直列に接続した場合のメリットを説明し、その後、インスタンス有りの場合のクラスタリング処理を含む一連処理、およびインスタンス無しの場合のクラスタリング処理を含む一連処理について説明する。
【0033】
<R-GCNを2個直列に接続した場合のメリットについて>
図3は、本開示の実施の形態1においてR-GCNを2個直列に接続した場合の、R-GCN2に関する入力、処理、出力を示した説明図である。
図3(A)では、第1段階のR-GCN1による算術演算機能の推定結果に対してクラスタリングを施すことで、R-GCN2への入力グラフに変換処理された状態が示されている。この変換処理の詳細については、後述する。
【0034】
図3(A)では、第1段階のR-GCN1により3つの算術演算機能としてADD、MUL、FFが推定され、その推定結果をクラスタリングして得られた入力グラフが示されている。具体的には、クラスタリングの結果として、13個のノードおよび接続関係に集約された状態が示されている。
【0035】
図3(B)では、第2段階のR-GCN2に対して
図3(A)に示した入力グラフが入力され、算術演算機能の推定結果に基づいて上位階層の回路機能としてのアプリケーション機能が推定され、出力としてResult2が得られた状態を示している。具体的には、13個のノードについて、3つのアプリケーション機能として、FIR、IIR、FFTが推定された状態を示している。
【0036】
図3(C)では、
図3(B)に示したResult2における13個のノードに対して多数決を取ることで、最終的に、上位階層の回路機能としてFIRが推定結果として得られた状態を示している。
【0037】
図3に示したように、2つのR-GCNを直列接続することで、階層的な機能推定が行えるメリットがある。さらに、推定精度の観点においても、R-GCNを直列につなげることによるメリットがあり、
図4を用いて説明する。
【0038】
図4は、本開示の実施の形態1においてR-GCNを2個直列に接続した場合の、推定精度に関するメリットを示した説明図である。
図4(A)では、第1段階のRーGCN1による推定結果であるResult1が示されている。また、
図4(B)では、
図4(A)に示したResult1をクラスタリングした結果が示されている。
【0039】
図4(B)においては、13個のノードのうち、ノードn1が本来はMULであるがADDとしてクラスタリングされ、ノードn2が本来はADDであるがMULとしてクラスタリングされ、クラスタリングされて得られた入力グラフにおいて、2ヶ所で誤判定が生じている場合を例示している。
【0040】
図4(C)では、
図4(B)に示したクラスタリング後のResult1における13個のノードによる入力グラフを入力として、第2段階のR-GCN2による推定結果として得られたResult2を示している。具体的には、入力グラフに含まれている誤判定された結果ごとに第2段階のR-GCN2による学習を行うことで、Result2が推定結果として得られた状態を示している。
【0041】
図4に示したとおり、前段の推定結果(Result1)では、MULおよびADDといった算術演算機能の推定に一部の誤判定が発生していた。しかしながら、その誤判定された結果を後段のR-GCN2において学習させることで、最終的なアプリケーション機能の推定精度が向上することが期待できる。
【0042】
換言すると、各階層の出力と上位階層のラベルとを紐付けることで、前段の第1段階での機能推定手法のクセを考慮して、後段の第2段階において学習させることが可能となる。この結果、R-GCNを多段に直列接続することで、前段での推定結果が間違っていた場合にも、間違ったまま後段の学習データに使うことで、End-to-Endで精度を向上させることが可能となる。
【0043】
<インスタンス有りの場合の第二推定工程による一連処理について>
次に、インスタンス有りの場合において、R-GCN1を用いた第1推定工程10の推定結果に基づいて、R-GCN2を用いることで第2の機能推定を行う第2推定工程20について詳細に説明する。
【0044】
図5は、本開示の実施の形態1において、インスタンス有りの場合にR-GCN2で用いる行列の基となる入力グラフを生成する手法を示した説明図である。
図5(A)では、ゲートレベルのネットリストにおいて、各算術演算回路の範囲がインスタンス名として記載されている状態が示されている。
【0045】
図5(B)では、ネットリスト内のインスタンス名に基づいて、論理ゲートをノードとして7つのインスタンスに分類された状態が示されている。具体的には、
図5(B)では、R-GCN1の推定結果として、FF1、FF2、MUL1、MUL2、MUL3、ADD1、ADD2の7つの回路がインスタンスとして推定され、それぞれのインスタンス内に論理ゲートとして複数のノードが含まれている状態が示されている。
【0046】
図5(C)では、
図5(B)に示したR-GCN1による推定結果に対してクラスタリングを実施することで、算術演算回路をノードとする入力グラフが得られた状態が示されている。具体的には、
図5(C)では、2つのFF、3つのMUL、2つのADDからなる7つのノードにクラスタリングされた入力グラフが示されている。
【0047】
なお、
図5(B)における各インスタンス内に含まれているそれぞれのノードは、1つの種類に統一されているとは限らない。そこで、各インスタンス内に分類されているノードに関して多数決を取り、各インスタンス内の全てのノードに対して同一の分類を割り当てることで、
図5(C)に示した入力グラフを得ることができる。
【0048】
そこで、多数決を取るイメージについて、
図6を用いて説明する。
図6は、本開示の実施の形態1において、R-GCN1によってノード分類された推定結果に対して、各インスタンス内で多数決を取るイメージを示した説明図である。
【0049】
図6(A)では、ネットリストに記載されたインスタンス名から、ADD1、ADD2、MUL1、SUB1、FF1の5つの回路にノード分類され、MUL1に分類された3つのノードであるノード3~ノード5に関して、ノード3、ノード4がMULとして推定され、ノード5がADDとして推定された状態を示している。
【0050】
図6(B)では、インスタンスMUL1に分類された3つのノードについて多数決を取ることで、ノード5がADDからMULに変わった状態が示されている。このような多数決処理を行うことで、R-GCN1によってノード分類された推定結果におけるそれぞれのインスタンス内のノードは、同機能を有する1つの算術演算として統一されることとなる。
【0051】
次に、R-GCN2で用いられる3種の行列として、新隣接行列A’、新特徴行列X’、新正解行列Y’を生成する手法を説明する。ここでは、先の
図6(B)に示した多数決処理後のグラフに基づいて3種の行列を生成する場合を具体例として説明する。
【0052】
図7は、本開示の実施の形態1において、新隣接行列A’を算出する前段としてインスタンス行列Sを生成する手法を示した説明図である。ここで、インスタンス行列Sとは、各ノードの属するインスタンスを記述する行列に相当する。
図7(A)では、先の
図6(B)に示した多数決処理後のグラフが示されている。具体的には、5個のインスタンスであるADD1、ADD2、MUL1、SUB1、FF1について、合計9個のノードが分類されたグラフが示されている。
【0053】
図7(B)では、列を5個のインスタンス、行を9個のノードとするインスタンス行列Sが示されている。例えば、ADD1には、ノード1、2が含まれているため、インスタンス行列Sの1列目では、1行目と2行目が1として設定され、その他の行は0として設定されている。
【0054】
次に、新隣接行列A’を生成する手法について説明する。
図8は、本開示の実施の形態1において、インスタンス行列Sを用いて新隣接行列A’を生成する手法を示した説明図である。
図8(A)では、第1段階のR-GCN1で用いられた出力側の隣接行列Aoutと、先の
図7(B)に示したインスタンス行列Sを用いて、
S
T×Aout×S
の演算結果として得られた行列に基づいて、新隣接行列Aout’、新隣接行列Ain’、新隣接行列Aown’を得る手法が示されている。ここで、新隣接行列Ain’は新たな第1の隣接行列に相当し、新隣接行列Aown’は新たな第2の隣接行列に相当し、新隣接行列Aout’は新たな第3の隣接行列に相当する。
【0055】
具体的には、
図8(A)では、S
T×Aout×Sの演算結果として得られた行列に対して、対角成分を0とし、対角成分以外の成分で0以外の成分を1とする書き換えを行うことで、新隣接行列Aout’が生成される。また、新隣接行列Aout’を転置することで、新隣接行列Ain’が生成される。さらに、対角成分のみを1とした単位行列とすることで、新隣接行列Aown’が生成される。
【0056】
図8(B)では、先の
図6(B)および先の
図7(A)に示した多数決処理後のグラフが示されている。また、
図8(C)では、
図8(A)に示した新隣接行列Aout’、新隣接行列Ain’、および新隣接行列Aown’に対応するグラフとして、
図8(B)のグラフからクラスタリング後のグラフが得られた状態を示している。このように、
図7および
図8に示した処理を行うことで、新隣接行列Aout’、新隣接行列Ain’、および新隣接行列Aown’の3つの行列からなる新隣接行列A’が生成される。
【0057】
次に、新特徴行列X’を生成する手法について説明する。
図9は、本開示の実施の形態1において、クラスタリング後のグラフから新特徴行列X’を生成する手法を示した説明図である。
図9(A)では、先の
図8(C)に示したクラスタリング後のグラフが示されている。
【0058】
図9(B)では、
図9(A)に示したクラスタリング後のグラフから、新特徴行列X’が生成された状態を示している。具体的には、列を5つの算術演算ADD、SUB、MUL、MUX、FFとし、行をクラスタリング後のグラフにおける5つのノードであるノード1’~ノード5’として、
図9(A)に示したクラスタリング後のグラフに対応する要素に対して1を設定することで、新特徴行列X’が生成される。
【0059】
次に、正解行列Y’を生成する手法について説明する。
図10は、本開示の実施の形態1において、クラスタリング後のグラフに示された回路のアプリケーションから新正解行列Y’を生成する手法を示した説明図である。
図10(A)では、先の
図8(C)に示したクラスタリング後のグラフが示されている。
【0060】
図10(B)では、
図9(A)に示したクラスタリング後のグラフに示された回路のアプリケーションから、FIRとして新正解行列Y’が生成された状態を示している。なお、新正解行列Y’の具体的な生成方法に関しては、特許文献2に開示されており、詳細な説明を省略する。
【0061】
以上のように、コンピュータは、
図5~
図10を用いて説明した一連処理を実行することで、インスタンス有りの場合の第二推定工程を実行することができる。具体的には、第1推定工程10による推定結果に基づいて、新たな特徴行列X’および新たな3種の隣接行列Aout’、Ain’、Aown’を第2のR-GCNに入力し、クラスタリング後のノードおよびエッジの接続関係を用いたグラフ畳み込み演算を実行することで、第2の機能推定を実行することができる。
【0062】
<インスタンス無しの場合の第二推定工程による一連処理について>
次に、インスタンス無しの場合において、R-GCN1を用いた第1推定工程10の推定結果に基づいて、R-GCN2を用いることで第2の機能推定を行う第2推定工程20について詳細に説明する。
【0063】
インスタンス無しの場合には、R-GCN1によって得られたノード分類結果である出力グラフに基づいてクラスタリング処理を行うことで、R-GCN2の入力となる入力グラフを生成し、入力グラフに基づいて、R-GCN2で用いられる3種の行列である新隣接行列A’、新特徴行列X’、新正解行列Y’を生成することとなる。換言すると、クラスタリング後の各ノードにおける種別を表現する行列として、新隣接行列A’、新特徴行列X’、新正解行列Y’が生成されることとなる。
【0064】
図11は、本開示の実施の形態1において、インスタンス無しの場合にR-GCN2に対する入力グラフを生成する手法を示した説明図である。なお、
図11では、説明を簡略化するために、ノード間を無向グラフとして示しているが、有向グラフの場合にも、以下に説明する平滑化処理およびマージ処理を適用することができる。
【0065】
インスタンス無しの場合にR-GCN2に対する入力グラフを生成するためには、R-GCN1によって得られたノード分類結果である出力グラフに対して、前処理としての平滑化処理を実施し、さらに、平滑化処理後のグラフに対してクラスタリング処理を行うこととなる。
【0066】
図11(A)では、R-GCN1によって得られたノード分類結果である出力グラフの一例が示されており、12個のノードが4種の算術演算のいずれかに分類されている状態が示されている。さらに、
図11(A)では、いずれの隣接ノードとも算術演算が異なり、周囲とは孤立した算術演算として分類された3つのノードn1~n3が、□印を用いることで孤立ノードとして識別表示されている。
【0067】
図11(B)では、
図11(A)に示したグラフに含まれている3つの孤立ノードに対して、平滑化処理を実施した後のグラフが示されている。平滑化処理は、隣接ノードの機能比較に基づいて孤立したノードを削除する処理に相当し、以下の2つのルール1、2に従って実行される。
ルール1:自身に隣接するノードについて分類結果に関する多数決を取ることで、孤立ノードの分類を最も多かった分類に書き換えることで平滑化を行う。
ルール2:ルールによって、多数決により同機能を有する1つの分類に特定できない場合には、孤立ノードの分類をそのままの分類とする。
【0068】
図11(B)においては、ノードn1に関してはルール1が成立するため、ノード分類を書き換える平滑化処理が実行され、ノードn2、n3に関しては、ルール2が成立するため、ノード分類がそのまま維持されている。
【0069】
図11(C)では、
図11(B)に示した平滑化処理を実行後のグラフに対して、同機能を有するノードに関してマージ処理を実施した後のグラフが示されている。マージ処理は、以下のルール3に従って実行される。
ルール3:隣接するノードにおいて、同一の機能に分類されているノード同士をマージする。
【0070】
図11(C)においては、
図11(B)における平滑化処理後の12個のノードに対して、ルール3に従ったマージ処理が実行されることで、6個のノードからなるグラフに集約されている。
【0071】
マージ処理について、
図12を用いて補足説明する。
図12は、本開示の実施の形態1におけるマージ処理に関する説明図である。マージ処理は、以下の手順1~4に従って実行される。
【0072】
手順1:隣接するノードに関して、同一分類を有するノードペアを1つ求める。
手順2:手順1で求めた同一分類を有する1つのノードペアに関して同等のノードを1つ加えるとともに、同一分類を有する1つのノードペアにおける隣接ノードとの接続関係を追記する。
手順3:手順1で求めた同一分類を有する1つのノードペアを削除する。
手順4:隣接するノードに関して、同一分類を有するノードペアがなくなるまで、手順1~3を繰り返す。
【0073】
図12(A)では、R-GCN1によって得られたノード分類結果である出力グラフの一例として、先の
図11(A)に示したものと同じグラフが示されており、12個のノードを識別するための番号として1~12の数字が付記されている。さらに、
図12(A)では、手順1が実施されることで、ノード1とノード2が同一分類を有するノードペアとして求まった場合が示されている。
【0074】
図12(B)では、手順2が実行されることで、ノードペアと同等のノード1’を追記した状態が示されている。
【0075】
図12(C)では、手順3が実行されることで、ノード1とノード2による同一分類を有するノードペアが削除され、ノード1’に置き換わった状態が示されている。
【0076】
図12(D)では、手順4に従って手順1~3によるマージ処理を繰り返すことで、最終的に6個のノードに集約された状態が示されており、先の
図11(C)に示したグラフと同一内容となっている。
【0077】
手順1~4を繰り返した結果、
図12(D)に示すように、ノード1~4がノード4’としてマージされ、ノード5、6がノード6’としてマージされ、ノード7、8がノード7’としてマージされ、ノード9、10がノード9’としてマージされる一方で、ノード11、12は、隣接するノードとの間で同一分類を有するノードペアとならなかったため、そのまま残っている。
【0078】
以上のように、実施の形態1によれば、1段目である第1推定工程において第1のR-GCNを用いることで第1の機能推定を行い、後段の第2推定工程において第1推定工程の推定結果に基づいて第2のR-GCNを用いることで第2の機能推定を行う構成を備えている。このような構成を備えることで、より上位階層の回路機能の推定を行うことができ、階層的な機能推定を実現できる。
【0079】
さらに、各階層の出力と上位階層のラベルとを紐付けることで、前段の第1段階での機能推定手法のクセを考慮して、後段の第2段階において学習させることが可能となる。換言すると、R-GCNを多段に直列接続する構成を採用することで、前段での推定結果が間違っていた場合にも、間違ったまま後段の学習データに使うことで、End-to-Endで精度向上を図ることが可能となる。
【0080】
すなわち、R-GCNを複数個直列に接続することで,従来技術では不可能であった、より複雑で大規模なLSIのネットリストの機能推定を実施することが可能となる。
【0081】
さらに、本開示に係る機能推定方法によれば、ネットリストからクラスターの境界が既知であるインスタンス有りの場合、およびネットリストからクラスターの境界が未知であるインスタンス無しの場合のいずれにおいても、第1推定工程による推定結果に対してクラスタリング処理を実行することができる。特に、インスタンス無しの場合においても、前段の出力グラフに基づいて機能の境界を自動的に判別してクラスタリングを行うことが可能である。
【0082】
従って、実施の形態1によれば、従来技術と比較して、LSIのネットリストに対する機能推定の汎化性向上を図ることができる機能推定方法および機能推定プログラムを実現することができる。
【0083】
なお、上述した実施の形態1では、R-GCNを2つ直列接続した2階層の接続構成について説明したが、本開示に係る機能推定方法および機能推定プログラムは、2階層の接続構成に限定されるものではない。
図13は、本開示の実施の形態1における接続構成の第1の具体例を示した図である。
【0084】
図13では、2階層を3以上のn階層に拡張した場合の直列接続構成例を示している。
図13に示した具体例では、階層1~階層nが順次積層されたn階層の構成を有している。そして、iを2以上の整数とした場合に、(i-1)階層目のR-GCNの出力から、i階層目のR-GCNの入力データセットを作成することで、2階層の接続構成で得られる上述した効果と同等の効果を実現できる。
【0085】
図14は、本開示の実施の形態1における接続構成の第2の具体例を示した図である。
図14に示すように、階層化された直列接続構成を、複数、並列接続した直並列構成を採用した場合にも、2階層の接続構成で得られる上述した効果と同等の効果を実現できる。
【0086】
また、上述した実施の形態1では、第1推定工程と第2推定工程とを備えた機能推定方法について詳細に説明したが、コンピュータを、ネットリストに基づいて第1のR-GCNを用いることで第1の機能推定を行う第1推定手段と、第1推定手段の推定結果に基づいて第2のR-GCNを用いることで第2の機能推定を行う第2推定手段として機能させる機能推定プログラムを実現することも可能である。
【0087】
また、上述した実施の形態1では、グラフ構造を畳み込んだネットワークであるGCNとしてR-GCNを用いる場合を具体例として説明した。しかしながら、本開示は、グラフを扱う深層学習全般に適用可能であり、GCNを含む上位概念であるGNNにおいて、ノードレベルでの分類を行うことに特徴を有するものである。
【符号の説明】
【0088】
10 第1推定工程、20 第2推定工程、S インスタンス行列、Ain’ 新隣接行列(新たな第1の隣接行列)、Aown’ 新隣接行列(新たな第2の隣接行列)、Aout’ 新隣接行列(新たな第3の隣接行列)。