JP7466643B2 - 学習装置、推論装置、学習方法、および推論方法 - Google Patents

学習装置、推論装置、学習方法、および推論方法 Download PDF

Info

Publication number
JP7466643B2
JP7466643B2 JP2022530483A JP2022530483A JP7466643B2 JP 7466643 B2 JP7466643 B2 JP 7466643B2 JP 2022530483 A JP2022530483 A JP 2022530483A JP 2022530483 A JP2022530483 A JP 2022530483A JP 7466643 B2 JP7466643 B2 JP 7466643B2
Authority
JP
Japan
Prior art keywords
technology
programmable logic
logic device
data
placement
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2022530483A
Other languages
English (en)
Other versions
JPWO2021251206A1 (ja
JPWO2021251206A5 (ja
Inventor
敦弘 森
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Publication of JPWO2021251206A1 publication Critical patent/JPWO2021251206A1/ja
Publication of JPWO2021251206A5 publication Critical patent/JPWO2021251206A5/ja
Application granted granted Critical
Publication of JP7466643B2 publication Critical patent/JP7466643B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/34Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
    • G06F30/343Logical level
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • G06F30/27Design optimisation, verification or simulation using machine learning, e.g. artificial intelligence, neural networks, support vector machines [SVM] or training a model
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/327Logic synthesis; Behaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • G06F30/3308Design verification, e.g. functional simulation or model checking using simulation
    • G06F30/3312Timing analysis
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/337Design optimisation
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/34Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
    • G06F30/347Physical level, e.g. placement or routing
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2119/00Details relating to the type or aim of the analysis or the optimisation
    • G06F2119/12Timing analysis or timing optimisation
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/34Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Medical Informatics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Artificial Intelligence (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Description

本開示は、学習装置、推論装置、およびプログラマブルロジックデバイスの開発用ツールチェーンに関する。
近年、半導体プロセス世代の進化とともにカスタムASIC(Application Specific Integrated Circuit)開発のコストが増大している。そのため、FPGA(Field Programmable Gate Array)またはDRP(Dynamic ReConfigurable Processor)などのプログラマブルロジックデバイスへのニーズが高まっている。
これらのプログラマブルデバイスを用いてユーザアプリケーション回路を開発するツールチェーンにおいては、大別して高位合成、論理マッピング、および配置配線などの工程が存在する。この中で特に実行時間を要するのが配置配線である。配置配線を完了するためにはクロック周波数および入出力遅延設定などの制約条件、およびツールオプションなどを様々に変更した上で試行を繰り返す必要がある。特にコストを抑えたデバイスを用いて比較的規模の大きな回路を開発する場合には、試行に要する時間が開発期間に大きな影響を及ぼす。
たとえば、特許文献1には、半導体回路設計のEDAツールにおいて、性能向上のため、その回路の特徴ベクターを抽出し、特徴量ライブラリを参照して、ツールが推奨する第1の配置配線トポロジーを生成する。特許文献1には、第1の配置配線トポロジーを元に、さらに別の推奨する配置配線トポロジーを生成するための手法が記載されている。
米国特許10,437,954明細書
特許文献1においては、回路の特徴量を求めて配置配線のための適切なトポロジーを推奨する。しかしながら、特許文献1に記載した手法は、ASIC回路設計に特化したものであり、プログラマブルロジックデバイスへの適用は考慮されていない。
本開示の目的は、プログラマブルロジックデバイスを用いてユーザアプリケーション回路を開発する際に、配置配線の高速化を実現できる学習装置、推論装置、およびプログラマブルロジックデバイスの開発用ツールチェーンを提供することである。
本開示の学習装置は、プログラマブルロジックデバイスの開発用ツールチェーンのテクノロジ毎のリソース使用率データおよびテクノロジマッピング時のタイミングスラック情報と、テクノロジ毎のリソース使用率データおよびテクノロジマッピング時のタイミングスラック情報におけるプログラマブルロジックデバイスの開発用ツールチェーンの目標クロック周波数および反復合成用パラメータとを含む学習用データを取得するデータ取得部と、学習用データを用いて、プログラマブルロジックデバイスの開発用ツールチェーンのテクノロジ毎のリソース使用率データおよびテクノロジマッピング時のタイミングスラック情報から配置配線を成功させるためのプログラマブルロジックデバイスの開発用ツールチェーンに与える反復合成用パラメータを推論するための学習済モデルを生成するモデル生成部とを備える。
本開示の推論装置は、プログラマブルロジックデバイスの開発用ツールチェーンのテクノロジ毎のリソース使用率データおよびテクノロジマッピング時のタイミングスラック情報を取得するデータ取得部と、テクノロジ毎のリソース使用率データおよびテクノロジマッピング時のタイミングスラック情報から配置配線を成功させるためのプログラマブルロジックデバイスの開発用ツールチェーンに与える反復合成用パラメータを推論するための学習済モデルを用いて、データ取得部で取得したテクノロジ毎のリソース使用率データおよびテクノロジマッピング時のタイミングスラック情報から配置配線を成功させるための反復合成用パラメータを出力する推論部とを備える。
本開示の学習装置は、プログラマブルロジックデバイスの開発用ツールチェーンの目標クロック周波数と、反復合成用パラメータと、プログラマブルロジックデバイスの開発用ツールチェーンのテクノロジ毎のリソース使用率データと、テクノロジマッピング時のタイミングスラック情報とを含む学習用データを取得するデータ取得部と、学習用データを用いて、プログラマブルロジックデバイスの開発用ツールチェーンの目標クロック周波数と、反復合成用パラメータと、テクノロジ毎のリソース使用率データと、テクノロジマッピング時のタイミングスラック情報とから配置配線の成功確率を推論するための学習済モデルを生成するモデル生成部とを備える。
本開示の推論装置は、プログラマブルロジックデバイスの開発用ツールチェーンの目標クロック周波数と、反復合成用パラメータと、プログラマブルロジックデバイスの開発用ツールチェーンのテクノロジ毎のリソース使用率データと、テクノロジマッピング時のタイミングスラック情報とを取得するデータ取得部と、目標クロック周波数と、反復合成用パラメータと、テクノロジ毎のリソース使用率データと、テクノロジマッピング時のタイミングスラック情報とから配置配線の成功確率を推論するための学習済モデルを用いて、データ取得部で取得した目標クロック周波数と、反復合成用パラメータと、テクノロジ毎のリソース使用率データと、テクノロジマッピング時のタイミングスラック情報とから配置配線の成功確率を出力する推論部とを備える。
本開示によれば、プログラマブルロジックデバイスを用いてユーザアプリケーション回路を開発する際に、配置配線の高速化を実現できる。
実施の形態1におけるプログラマブルロジックデバイスの開発用ツールチェーンに関する学習装置10の構成図である。 実施の形態1における学習装置10の学習処理に関するフローチャートである。 実施の形態1におけるプログラマブルロジックデバイスの開発用ツールチェーンに関する推論装置30の構成図である。 実施の形態1における推論装置30による反復合成用パラメータの推論手順を表わすフローチャートである。 実施の形態2におけるプログラマブルロジックデバイスの開発用ツールチェーンに関する学習装置10Aの構成を表わす図である。 実施の形態2における学習装置10Aの学習処理に関するフローチャートである。 実施の形態2におけるプログラマブルロジックデバイスの開発用ツールチェーンに関する推論装置30Aの構成を表わす図である。 実施の形態2における推論装置30Aの配置配線の成功確率の推論手順を表わすフローチャートである。 学習装置10,10A、推論装置30,30A、またはプログラマブルロジックデバイスの開発用ツールチェーン40のハードウェア構成を表わす図である。
以下、実施の形態について、図面を参照して説明する。
実施の形態1.
図1は、実施の形態1におけるプログラマブルロジックデバイスの開発用ツールチェーンに関する学習装置10の構成図である。学習装置10は、データ取得部12と、モデル生成部13とを備える。
データ取得部12は、目標クロック周波数、反復合成用パラメータ、テクノロジ毎のリソース使用率データ、およびテクノロジマッピング時のタイミングスラック情報を学習用データとして取得する。
目標クロック周波数とは、プログラマブルロジックデバイスを実際に動作させる目標のクロック周波数のことである。
反復合成とは、目標クロック周波数を配置配線後に達成するために複数回の配置配線を試行することを意味する。反復合成では、例えば、目標クロック周波数、または目標クロック周波数よりも高いクロック周波数を中心周波数X[MHz]として、周波数の低い側および高い側に閾値σ[MHz]の範囲を設定し、すなわち(X-σ)[MHz]から(X+σ)[MHz]までの範囲を設定し、その範囲の間をステップ値Δ[MHz]ずつ変化させながら配置配線の試行が繰返される。反復合成の試行回数は(2σ/Δ+1)回となる。反復合成用パラメータとは、上記のX、σ、Δのことを指す。下限値(X-σ)は、目標クロック周波数およりも大きな値とする。
テクノロジ毎のリソース使用率データとは、プログラマブルロジックデバイス内の各種演算資源毎の使用可能な数に対する使用数の割合を示す。
テクノロジ毎のリソース使用率データは、たとえば、プログラマブルロジックデバイスのテクノロジマッピングの結果、LE(Logic Element)またはPE(Processing Element)のALU(算術論理演算ユニット)の使用率、マルチプレクサの使用率、加算器の使用率、減算器の使用率、および算術シフタの使用率などを含む。
テクノロジマッピング時のタイミングスラック情報は、テクノロジマッピング後の静的タイミング解析の結果、目標クロック周波数で決まるサイクル時間に対して、プログラマブルデバイス内のFF(Flip Flop)間の信号伝搬遅延時間のうち最も大きなもの(クリティカルパス)における、サイクル時間に対するタイミングの余裕度を含む。たとえば、目標クロック周波数が100[MHz]で決まるサイクル時間が10.0[ns]で、クリティカルパスにおけるFF(Flip Flop)間の信号伝搬遅延時間が7.0[ns]の場合は、タイミングスラックは10.0[ns]-7.0[ns]=3.0[ns]となる。
モデル生成部13は、データ取得部12で取得した目標クロック周波数、反復合成用パラメータ、テクノロジ毎のリソース使用率データ、およびテクノロジマッピング時のタイミングスラック情報を含む学習用データを用いて、プログラマブルロジックデバイスの開発用ツールチェーンのテクノロジ毎のリソース使用率データおよびテクノロジマッピング時のタイミングスラック情報から配置配線を成功させるためのプログラマブルロジックデバイスの開発用ツールチェーンに与える反復合成用パラメータを推論するための学習済モデルを生成する。
反復合成用パラメータとは、前述の反復合成実施のためのクロック中心周波数X[MHz]、周波数の低い側および高い側の周波数範囲を決定するための閾値σ[MHz]、その周波数範囲内を変化させながら配置配線の試行を繰返すためのステップ値Δ[MHz]である。
「配置配線を成功させるための反復合成用パラメータ」とは、配置配線後の回路が目的の信号処理性能を達成できる中心クロック周波数と、反復合成実行時における各々の配置配線結果が成功となる確率が最も高く、かつ配置配線の試行回数が最も少なくて済むような条件を満たすような閾値σ[MHz]およびステップ値Δ[MHz]の組み合わせである。
上記条件を満たすために、たとえば、小さな閾値σを選択して周波数範囲を狭める、あるいは、大きなステップ値Δを選択して配置配線の試行回数を削減することによって、閾値σ[MHz]およびステップ値Δ[MHz]の組み合わせが決定される。
使用可能な最大の演算リソース数を超えないこと、かつ使用するインターコネクトリソースがプログラマブルロジックデバイス上で使用可能な最大のインターコネクトリソース数を超えないこと、かつ、FF(Flip Flop)間の信号伝搬遅延時間のうち最も大きな値が目標クロック周波数で決まるサイクル時間を超えないことを示す。
モデル生成部13が用いる学習アルゴリズムとして、教師あり学習、教師なし学習、または強化学習等の公知のアルゴリズムを用いることができる。一例として、強化学習を適用した場合について説明する。強化学習では、ある環境内におけるエージェント(行動主体)が、現在の状態(環境のパラメータ)を観測し、取るべき行動を決定する。エージェントの行動により環境が動的に変化し、エージェントには環境の変化に応じて報酬が与えられる。エージェントはこれを繰り返し、一連の行動を通じて報酬が最も多く得られる行動方針を学習する。強化学習の代表的な手法であるQ学習、またはTD学習(Temporal Difference Learning)を用いることができる。例えば、Q学習(Q-learning)の場合、行動価値関数Q(s,a)の一般的な更新式は、式(1)で表される。
Figure 0007466643000001
式(1)において、stは時刻tにおける環境の状態を表わす。atは時刻tにおける行動を表わす。行動atにより、状態はst+1に変わる。rt+1はその状態の変化によってもらえる報酬を表わす。γは割引率を表わす。αは学習係数を表わす。0<γ≦1、0<α≦1の範囲とする。反復合成用パラメータが行動atである。テクノロジ毎のリソース使用率データおよびテクノロジマッピング時のタイミングスラック情報が状態stである。Q学習では、時刻tの状態stにおける最良の行動atを学習する。
式(1)で表される更新式は、時刻t+1における最もQ値の高い行動aの行動価値Qが、時刻tにおいて実行された行動aの行動価値Qよりも大きければ、行動価値Qを大きくし、逆の場合は、行動価値Qを小さくする。換言すれば、時刻tにおける行動aの行動価値Qを、時刻t+1における最良の行動価値に近づけるように、行動価値関数Q(s,a)を更新する。それにより、或る環境における最良の行動価値が、それ以前の環境における行動価値に順次伝播していくようになる。
上記のように、強化学習によって学習済モデルを生成する場合、モデル生成部13は、報酬計算部14と、関数更新部15とを備える。
報酬計算部14は、目標クロック周波数および反復合成用パラメータ、テクノロジ毎のリソース使用率データおよびテクノロジマッピング時のタイミングスラック情報に基づいて報酬を計算する。報酬計算部14は、配置配線の結果に基づいて、報酬rを計算する。たとえば、報酬計算部14は、配置配線が成功した場合には報酬rを増大させ(例えば「1」の報酬を与える。)、他方、配置配線が失敗した場合には報酬rを低減する(例えば「-1」の報酬を与える。)。
具体的には、報酬計算部14は、配置配線が成功した場合には、プログラマブルロジックデバイス内のLEまたはPEの使用率の余裕度(%)に比例して報酬を増大させる、またはプログラマブルロジックデバイス内のインターコネクトリソースの余裕度(%)に比例して報酬を増大させる、またはプログラマブルロジックデバイス内のFF(Flip Flop)間の信号伝搬遅延時間のうち最も大きなもの(クリティカルパス)における、サイクル時間に対するタイミングの余裕度(Positive Slack値)に比例して報酬を増大させる。報酬計算部14は、これらの3つの報酬を増大させる要素(演算リソースの余裕度、インターコネクトリソースの余裕度、クリティカルパスのタイミング余裕度)のうち複数の要素を組み合わせて報酬を増大させてもよく、また必要に応じて各々の要素に重み係数を掛けて報酬を増大させてもよい。
報酬計算部14は、配置配線が失敗した場合には、プログラマブルロジックデバイス内のLEまたはPEの溢れ度合に比例して報酬を低減させる、またはプログラマブルロジックデバイス内インターコネクトリソースの溢れ度合に比例して報酬を低減させる、またはいずれのリソースも溢れていない場合は、プログラマブルデバイス内のFF(Flip Flop)間の信号伝搬遅延時間のうち最も大きなもの(クリティカルパス)におけるサイクル時間に対するタイミング違反度合(Negative Slack値)または全タイミング違反度(Total Negative Slack値)に比例して報酬を低減させる。報酬計算部14は、これらの3つの報酬を低減させる要素(演算リソースの溢れ度合、インターコネクトリソースの溢れ度合、タイミング違反度)のうち複数の要素を組み合わせて報酬を低減させてもよく、また必要に応じて各々の要素に重み係数を掛けて報酬を低減させてもよい。
関数更新部15は、報酬計算部14によって計算される報酬に従って、配置配線を成功させるための反復合成用パラメータを決定するための関数を更新し、学習済モデル記憶部20に出力する。例えばQ学習の場合、関数更新部15は、式(1)で表される行動価値関数Q(st,at)を、配置配線を成功させるための反復合成用パラメータを算出するための関数として用いる。
以上のような学習を繰り返し実行する。学習済モデル記憶部20は、関数更新部15によって更新された行動価値関数Q(st,at)、すなわち、学習済モデルを記憶する。
次に、図2を用いて、学習装置10が学習する処理について説明する。図2は、実施の形態1における学習装置10の学習処理に関するフローチャートである。
ステップS101において、データ取得部12は、目標クロック周波数、反復合成用パラメータ、テクノロジ毎のリソース使用率データ、およびテクノロジマッピング時のタイミングスラック情報を学習用データとして取得する。
ステップS102において、モデル生成部13は、目標クロック周波数、反復合成用パラメータ、テクノロジ毎のリソース使用率データ、およびテクノロジマッピング時のタイミングスラック情報に基づいて報酬を計算する。具体的には、報酬計算部14は、目標クロック周波数、反復合成用パラメータ、テクノロジ毎のリソース使用率データおよびテクノロジマッピング時のタイミングスラック情報を取得し、配置配線の結果に基づいて、報酬を増大させるか、減少させるかを決定する。報酬計算部14が報酬を増大させると判断した場合に、処理がステップS103に進む。報酬計算部14が報酬を減少させると判断した場合に、処理がステップS104に進む。
ステップS103において、報酬計算部14が、報酬を増大させる。
ステップS104において、報酬計算部14は、報酬を減少させる。
ステップS105において、関数更新部15は、報酬計算部14によって計算された報酬に基づいて、学習済モデル記憶部20が記憶する式(1)で表される行動価値関数Q(st,at)を更新する。
学習装置10は、以上のステップS101からS105までのステップを繰り返し実行し、生成された行動価値関数Q(st,at)を学習済モデルとして記憶する。
本実施の形態に係る学習装置10は、学習済モデルを学習装置10の外部に設けられた学習済モデル記憶部20に記憶するものとしたが、学習済モデル記憶部20を学習装置10の内部に備えていてもよい。
図3は、実施の形態1におけるプログラマブルロジックデバイスの開発用ツールチェーンに関する推論装置30の構成図である。推論装置30は、データ取得部31、および推論部32を備える。
データ取得部31は、テクノロジ毎のリソース使用率データおよびテクノロジマッピング時のタイミングスラック情報を取得する。
推論部32は、学習済モデル記憶部20から、プログラマブルロジックデバイスの開発用ツールチェーンのテクノロジ毎のリソース使用率データおよびテクノロジマッピング時のタイミングスラック情報から配置配線を成功させるためのプログラマブルロジックデバイスの開発用ツールチェーンに与える反復合成用パラメータを推論するための学習済モデルを読出す。
推論部32は、データ取得部31で取得したデータと、学習済モデルを利用して、配置配線を成功させるための反復合成用パラメータを推論する。すなわち、推論部32は、学習済モデルにデータ取得部31が取得したテクノロジ毎のリソース使用率データおよびテクノロジマッピング時のタイミングスラック情報を入力することで、テクノロジ毎のリソース使用率データおよびテクノロジマッピング時のタイミングスラック情報に適した配置配線を成功させるための反復合成用パラメータを推論することができる。
たとえば、推論部32は、学習済モデル記憶部20から学習済みモデルとして、行動価値関数Q(st,at)を読み出す。推論部32は、テクノロジ毎のリソース使用率データおよびテクノロジマッピング時のタイミングスラック情報(状態st)に対して、行動価値関数Q(s,a)に基づいて、反復合成用パラメータ(行動at)を得る。この行動atに含まれる反復合成用パラメータが配置配線を成功させるための反復合成用パラメータである。
本実施の形態では、プログラマブルロジックデバイスの開発用ツールチェーンのモデル生成部13で学習した学習済モデルを用いて配置配線を成功させるための反復合成用パラメータを出力するものとして説明したが、他のプログラマブルロジックデバイスの開発用ツールチェーンから学習済モデルを取得し、この学習済モデルに基づいて配置配線を成功させるための反復合成用パラメータを出力するようにしてもよい。
次に、図4を用いて、配置配線を成功させるための反復合成用パラメータを得るための処理を説明する。
図4は、実施の形態1における推論装置30による反復合成用パラメータの推論手順を表わすフローチャートである。
ステップS201において、データ取得部31は、テクノロジ毎のリソース使用率データおよびテクノロジマッピング時のタイミングスラック情報を取得する。
ステップS202において、推論部32は、学習済モデル記憶部20に記憶された学習済モデルにテクノロジ毎のリソース使用率データおよびテクノロジマッピング時のタイミングスラック情報を入力する。
ステップS203において、推論部32は、学習済モデルから配置配線を成功させるための反復合成用パラメータを得る。推論部32は得られた配置配線を成功させるための反復合成用パラメータをプログラマブルロジックデバイスの開発用ツールチェーンに出力する。
ステップS204において、プログラマブルロジックデバイスの開発用ツールチェーンは、出力された配置配線を成功させるための反復合成用パラメータと、テクノロジマッピングによる回路構成情報を用いて、プログラマブルデバイス上の実際のPE(Processing Element)、LE(Logic Element)、SRAM(Static Random Access Memory)およびインターコネクトリソースを用いた配置配線の試行を繰り返し、すなわち反復合成を行う。このとき、反復合成の合成制約は、ステップS203によって出力された配置配線を成功させるための反復合成用パラメータである。中心周波数X[MHz]、閾値σ[MHz]、ステップ値Δ[MHz]を用いて、(X-σ)[MHz]から(X+σ)[MHz]までの周波数範囲を設定し、クロック周波数をその範囲の間でステップ値Δ[MHz]ずつ変化させる。この場合の反復合成の試行回数は(2σ/Δ+1)回となる。これにより、最も少ない配置配線の試行回数、すなわち短時間での配置配線の試行によって、目的の信号処理性能を達成できるクロック周波数以上での配置配線を成功させることができる。
本実施の形態では、推論部が用いる学習アルゴリズムに強化学習を適用した場合について説明したが、これに限られるものではない。学習アルゴリズムについては、強化学習以外にも、教師あり学習、教師なし学習、または半教師あり学習等を適用することも可能である。
モデル生成部13に用いられる学習アルゴリズムとしては、特徴量そのものの抽出を学習する深層学習を用いることもできる。あるいは、これに代えて他の公知の方法、例えばニューラルネットワーク、遺伝的プログラミング、機能論理プログラミング、またはサポートベクターマシンなどに従って機械学習を実行してもよい。
学習装置10及び推論装置30は、例えば、ネットワークを介してプログラマブルロジックデバイスの開発用ツールチェーンに接続され、このプログラマブルロジックデバイスの開発用ツールチェーンとは別個の装置であってもよい。また、学習装置10及び推論装置30は、プログラマブルロジックデバイスの開発用ツールチェーンに内蔵されていてもよい。さらに、学習装置10及び推論装置30は、クラウドサーバ上に存在していてもよい。
モデル生成部13は、複数のプログラマブルロジックデバイスの開発用ツールチェーンから取得される学習用データを用いて、配置配線を成功させるための反復合成用パラメータを学習するようにしてもよい。なお、モデル生成部13は、同一の場所で使用される複数のプログラマブルロジックデバイスの開発用ツールチェーンから学習用データを取得してもよいし、異なる場所で独立して動作する複数のプログラマブルロジックデバイスの開発用ツールチェーンから学習用データを取得してもよい。また、学習用データを収集するプログラマブルロジックデバイスの開発用ツールチェーンを途中で対象に追加したり、対象から除去することも可能である。さらに、あるプログラマブルロジックデバイスの開発用ツールチェーンに関して配置配線を成功させるための反復合成用パラメータを学習した学習装置を、これとは別のプログラマブルロジックデバイスの開発用ツールチェーンに適用し、この別のプログラマブルロジックデバイスの開発用ツールチェーンに関して配置配線を成功させるための反復合成用パラメータを再学習して更新するようにしてもよい。
以上のように、本実施の形態によれば、プログラマブルデバイスの開発ツールチェーンを用いて反復して配置配線を実行し、配置配線が成功するクロックおよびタイミング制約条件を見つける工程において、人工知能による推論結果によって得られたクロック中心周波数と周波数範囲とを用いる。これによって、配置配線工程の試行回数を大幅に削減することができるので、配置配線工程に要する時間の大幅な短縮を図ることができる。
実施の形態2.
図5は、実施の形態2におけるプログラマブルロジックデバイスの開発用ツールチェーンに関する学習装置10Aの構成を表わす図である。
学習装置10Aは、データ取得部12Aと、モデル生成部13Aとを備える。
データ取得部12Aは、クロック周波数と、反復合成用パラメータ、テクノロジ毎のリソース使用率データ、テクノロジマッピング時のタイミングスラック情報を学習用データとして取得する。
モデル生成部13Aは、データ取得部12Aから出力されるクロック周波数と、反復合成用パラメータ、およびテクノロジ毎のリソース使用率データ、テクノロジマッピング時のタイミングスラック情報の組合せに基づいて作成される学習用データに基づいて、配置配線の成功確率を学習する。すなわち、プログラマブルロジックデバイスの開発用ツールチェーンのクロック周波数と、反復合成用パラメータ、テクノロジ毎のリソース使用率データ、テクノロジマッピング時のタイミングスラック情報から配置配線の成功確率を推論する学習済モデルを生成する。ここで、学習用データは、クロック周波数と、反復合成用パラメータおよびテクノロジ毎のリソース使用率データ、テクノロジマッピング時のタイミングスラック情報を互いに関連付けたデータである。プログラマブルロジックデバイスの開発用ツールチェーンにAIを活用する場合、学習済モデルは、配置配線が成功したときのクロック周波数と、反復合成用パラメータ、テクノロジ毎のリソース使用率データ、テクノロジマッピング時のタイミングスラック情報と、配置配線が失敗したときのクロック周波数と、反復合成用パラメータ、テクノロジ毎のリソース使用率データ、テクノロジマッピング時のタイミングスラック情報とを分類(クラスタリング)するためのモデルとして構成される。
モデル生成部13Aが用いる学習アルゴリズムは、教師あり学習、教師なし学習、強化学習等の公知のアルゴリズムを用いることができる。一例として、教師なし学習であるK平均法(クラスタリング)を適用した場合について説明する。教師なし学習とは、結果(ラベル)を含まない学習用データを学習装置に与えることで、それらの学習用データにある特徴を学習する手法をいう。
モデル生成部13Aは、例えば、K平均法によるグループ分け手法に従って、いわゆる教師なし学習により、配置配線の成功確率を学習する。
K平均法とは、非階層型クラスタリングのアルゴリズムであり、クラスタの平均を用い、与えられたクラスタ数をk個に分類する手法である。
具体的に、K平均法は以下のような流れで処理される。まず、各データxiに対してランダムにクラスタを割り振る。次いで、割り振ったデータをもとに各クラスタの中心Vjを計算する。次いで、各xiと各Vjとの距離を求め、xiを最も近い中心のクラスタに割り当て直す。そして、上記の処理で全てのxiのクラスタの割り当てが変化しなかった場合、あるいは変化量が事前に設定した一定の閾値を下回った場合に、収束したと判断して処理を終了する。
本願においては、データ取得部12Aによって取得されるクロック周波数と、反復合成用パラメータ、テクノロジ毎のリソース使用率データ、テクノロジマッピング時のタイミングスラック情報の組合せに基づいて作成される学習用データに従って、いわゆる教師なし学習により、配置配線の成功確率を学習する。
モデル生成部13Aは、以上のような学習を実行することで学習済モデルを生成し、出力する。
学習済モデル記憶部20Aは、モデル生成部13Aから出力された学習済モデルを記憶する。
次に、図6を用いて、学習装置10Aが学習する処理について説明する。図6は、実施の形態2における学習装置10Aの学習処理に関するフローチャートである。
ステップS301において、データ取得部12Aは、クロック周波数、反復合成用パラメータ、テクノロジ毎のリソース使用率データ、およびテクノロジマッピング時のタイミングスラック情報を取得する。クロック周波数、反復合成用パラメータ、テクノロジ毎のリソース使用率データ、およびテクノロジマッピング時のタイミングスラック情報を同時に取得するものとしたが、クロック周波数、反復合成用パラメータ、テクノロジ毎のリソース使用率データ、およびテクノロジマッピング時のタイミングスラック情報を関連づけて入力できれば良く、クロック周波数、反復合成用パラメータ、テクノロジ毎のリソース使用率データ、およびテクノロジマッピング時のタイミングスラック情報のデータをそれぞれ別のタイミングで取得しても良い。
ステップS302において、モデル生成部13Aは、データ取得部12Aによって取得されるクロック周波数、反復合成用パラメータ、テクノロジ毎のリソース使用率データ、およびテクノロジマッピング時のタイミングスラック情報の組合せに基づいて作成される学習用データに従って、いわゆる教師なし学習により、配置配線の成功確率を学習し、学習済モデルを生成する。
ステップS303において、学習済モデル記憶部20Aは、モデル生成部13Aが生成した学習済モデルを記憶する。
図7は、実施の形態2におけるプログラマブルロジックデバイスの開発用ツールチェーンに関する推論装置30Aの構成を表わす図である。推論装置30Aは、データ取得部31Aと、推論部32Aとを備える。
データ取得部31Aは、クロック周波数、反復合成用パラメータ、テクノロジ毎のリソース使用率データ、およびテクノロジマッピング時のタイミングスラック情報を取得する。
推論部32Aは、学習済モデル記憶部20Aに記憶された学習済モデルを利用して得られる配置配線の成功確率を推論する。すなわち、推論部32Aは、学習済モデルにデータ取得部31Aで取得したクロック周波数、反復合成用パラメータ、テクノロジ毎のリソース使用率データ、およびテクノロジマッピング時のタイミングスラック情報を入力することで、クロック周波数、反復合成用パラメータ、テクノロジ毎のリソース使用率データ、およびテクノロジマッピング時のタイミングスラック情報がいずれのクラスタに属するかを推論し、推論結果を配置配線の成功確率として出力することができる。プログラマブルロジックデバイスの開発用ツールチェーンにAIを活用する場合、推論部32Aは、学習済モデルに入力されたクロック周波数、反復合成用パラメータ、テクノロジ毎のリソース使用率データ、およびテクノロジマッピング時のタイミングスラック情報が、配置配線の成功を示すクラスタに属しているか、それとも配置配線の失敗を示すクラスタに属しているかを判定する。そして、配置配線の成功を示すクラスタに属している場合、推論部32Aは、配置配線が成功すると推論する。一方、配置配線の失敗を示すクラスタに属している場合、推論部は配置配線が失敗すると推論する。
あるいは、推論部32Aは、学習済モデルにデータ取得部31Aで取得したクロック周波数、反復合成用パラメータ、テクノロジ毎のリソース使用率データ、およびテクノロジマッピング時のタイミングスラック情報を入力することで、クロック周波数、反復合成用パラメータ、テクノロジ毎のリソース使用率データ、およびテクノロジマッピング時のタイミングスラック情報が配置配線の成功を示すクラスタに属する確率を推論し、出力することととしてもよい。たとえば、学習済モデルに入力されたクロック周波数、反復合成用パラメータ、テクノロジ毎のリソース使用率データ、およびテクノロジマッピング時のタイミングスラック情報と、配置配線の成功を示すクラスタの重心との距離が小さいほど、配置配線の成功を示すクラスタに属する確率が大きくなるものとしてもよい。
あるいは、モデル生成部13Aは、K平均法の代わりに、ソフトクラスタリング手法を用いて、配置配線の成功を示すクラスタに属する確率を生成するモデルを生成し、推論部32Aは、ソフトクラスタリング手法を用いて、生成されたモデルから配置配線の成功を示すクラスタに属する確率を推論するものとしてもよい。
本実施の形態では、プログラマブルロジックデバイスの開発用ツールチェーンのモデル生成部で学習した学習済モデルを用いて配置配線の成功確率を出力するものとして説明したが、他のプログラマブルロジックデバイスの開発用ツールチェーン等の外部から学習済モデルを取得し、この学習済モデルに基づいて配置配線の成功確率を出力するようにしてもよい。
このようにして、推論部32Aは、クロック周波数、反復合成用パラメータ、テクノロジ毎のリソース使用率データ、およびテクノロジマッピング時のタイミングスラック情報に基づいて得られた配置配線の成功確率をプログラマブルロジックデバイスの開発用ツールチェーンの入出力部に対して出力する。入出力部としては、例えばディスプレイなどの表示装置が挙げられる。
次に、図8を用いて、推論装置30Aを使って配置配線の成功確率を得るための処理を説明する。
図8は、実施の形態2における推論装置30Aの配置配線の成功確率の推論手順を表わすフローチャートである。
ステップS401において、データ取得部31Aは、クロック周波数、反復合成用パラメータ、テクノロジ毎のリソース使用率データ、およびテクノロジマッピング時のタイミングスラック情報を取得する。
ステップS402において、推論部32Aは、学習済モデル記憶部20Aに記憶された学習済モデルにクロック周波数、反復合成用パラメータ、テクノロジ毎のリソース使用率データ、およびテクノロジマッピング時のタイミングスラック情報を入力し、配置配線の成功確率を得る。
ステップS403において、推論部32Aは、学習済モデルにより得られた配置配線の成功確率をプログラマブルロジックデバイスの開発用ツールチェーンに出力する。
ステップS404において、プログラマブルロジックデバイスの開発用ツールチェーンは、出力された配置配線の成功確率を考慮して、プログラマブルデバイス上の実際のPE(Processing Element)、LE(Logic Element)、SRAM(Static Random Access Memory)およびインターコネクトリソースを用いた配置配線の試行を繰り返し、すなわち反復合成を行う。これにより、配置配線の成功確率をディスプレイなどの表示装置に表示することができる。
なお、本実施の形態では、モデル生成部13Aおよび推論部32Aが用いる学習アルゴリズムに教師なし学習を適用した場合について説明したが、これに限られるものではない。学習アルゴリズムについては、教師なし学習以外にも、強化学習、教師あり学習、又は半教師あり学習等を適用することも可能である。
また、学習に用いられる学習アルゴリズムとしては、特徴量そのものの抽出を学習する、深層学習(Deep Learning)を用いることもでき、他の公知の方法でもよい。
本実施形態における教師なし学習を実現する場合、上記のようなK平均(k-means)法による非階層型クラスタリングに限らず、クラスタリング可能な他の公知の方法であればよい。例えば、最短距離法等の階層型クラスタリングであってもよい。
本実施の形態において、学習装置10A及び推論装置30Aは、例えば、ネットワークを介してプログラマブルロジックデバイスの開発用ツールチェーンに接続され、このプログラマブルロジックデバイスの開発用ツールチェーンとは別個の装置であってもよい。また、学習装置10A及び推論装置30Aは、プログラマブルロジックデバイスの開発用ツールチェーンに内蔵されていてもよい。さらに、学習装置10A及び推論装置30Aは、クラウドサーバ上に存在していてもよい。
モデル生成部13Aは、複数のプログラマブルロジックデバイスの開発用ツールチェーンに対して作成される学習用データに従って、配置配線の成功確率を学習するようにしてもよい。なお、モデル生成部13Aは、同一のエリアで使用される複数のプログラマブルロジックデバイスの開発用ツールチェーンから学習用データを取得してもよいし、異なるエリアで独立して動作する複数のプログラマブルロジックデバイスの開発用ツールチェーンから収集される学習用データを利用して配置配線の成功確率を学習してもよい。また、学習用データを収集するプログラマブルロジックデバイスの開発用ツールチェーンを途中で対象に追加したり、対象から除去したりすることも可能である。さらに、あるプログラマブルロジックデバイスの開発用ツールチェーンに関して配置配線の成功確率を学習した学習装置を、これとは別のプログラマブルロジックデバイスの開発用ツールチェーンに適用し、当該別のプログラマブルロジックデバイスの開発用ツールチェーンに関して配置配線の成功確率を再学習して更新するようにしてもよい。
図9は、学習装置10,10A、推論装置30,30A、またはプログラマブルロジックデバイスの開発用ツールチェーン40のハードウェア構成を表わす図である。
学習装置10,10A、推論装置30,30A、およびプログラマブルロジックデバイスの開発用ツールチェーン40は、相当する動作をデジタル回路のハードウェアまたはソフトウェアで構成することができる。学習装置10,10A、推論装置30,30A、およびプログラマブルロジックデバイスの開発用ツールチェーン40の機能をソフトウェアを用いて実現する場合には、学習装置10,10A、推論装置30,30A、およびプログラマブルロジックデバイスの開発用ツールチェーン40は、例えば、図9に示すように、バス53によって接続されたプロセッサ51とメモリ52とを備え、メモリ52に記憶されたプログラムをプロセッサ51が実行するようにすることができる。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本開示の範囲は上記した説明ではなくて請求の範囲によって示され、請求の範囲と均等の意味及び範囲内でのすべての変更が含まれることが意図される。
10,10A 学習装置、12,12A データ取得部、13,13A モデル生成部、14 報酬計算部、15 関数更新部、20,20A 学習済みモデル記憶部、31,31A データ取得部、32,32A 推論部、40 プログラマブルロジックデバイスの開発用ツールチェーン、51 プロセッサ、52 メモリ、53 バス。

Claims (17)

  1. プログラマブルロジックデバイスの開発用ツールチェーンのテクノロジ毎のリソース使用率データおよびテクノロジマッピング時のタイミングスラック情報と、前記テクノロジ毎のリソース使用率データおよび前記テクノロジマッピング時のタイミングスラック情報における前記プログラマブルロジックデバイスの開発用ツールチェーンの目標クロック周波数および反復合成用パラメータとを含む学習用データを取得するデータ取得部と、
    前記学習用データを用いて、前記プログラマブルロジックデバイスの開発用ツールチェーンのテクノロジ毎のリソース使用率データおよびテクノロジマッピング時のタイミングスラック情報から配置配線を成功させるための前記プログラマブルロジックデバイスの開発用ツールチェーンに与える反復合成用パラメータを推論するための学習済モデルを生成するモデル生成部と、
    を備える学習装置。
  2. 前記テクノロジ毎のリソース使用率データは、前記プログラマブルロジックデバイス内のロジックエレメントまたはプロセッシングエレメントの算術論理演算ユニットの使用率と、マルチプレクサの使用率と、加算器の使用率と、減算器の使用率と、算術シフタの使用率とを含む、請求項1記載の学習装置。
  3. 前記テクノロジマッピング時のタイミングスラック情報は、前記目標クロック周波数で決まるサイクル時間に対して前記プログラマブルロジックデバイス内のフリップフロップ間の信号伝搬遅延時間のうち最も大きなものにおける前記サイクル時間に対する余裕値を含む、請求項1または2記載の学習装置。
  4. 前記反復合成用パラメータは、
    中心となるクロック周波数と、
    クロック周波数の下限値および上限値を決定するための閾値と、
    前記閾値で決定される前記クロック周波数の前記下限値から前記上限値までの範囲を網羅するためのステップ値とを含む、請求項1~3のいずれか1項に記載の学習装置。
  5. 前記配置配線を成功させるための反復合成用パラメータは、
    前記配置配線後の回路が目的とする信号処理性能を達成できるための前記中心となるクロック周波数と、
    反復合成実行時における前記配置配線の結果が成功となる確率が最も高く、かつ前記配置配線の試行回数が最も少なくて済むような条件を満たす前記閾値および前記ステップ値の組み合わせを含む、請求項に記載の学習装置。
  6. 前記モデル生成部は、報酬基準として、前記配置配線が成功した場合に、前記プログラマブルロジックデバイス内のロジックエレメントまたはプロセッシングエレメントの使用率の余裕度、または前記プログラマブルロジックデバイス内のインターコネクトリソースの使用率の余裕度、または前記プログラマブルロジックデバイス内の前記フリップフロップ間の前記信号伝搬遅延時間のうち最も大きなものにおける前記サイクル時間に対する余裕度を用いて報酬を増大させる、請求項に記載の学習装置。
  7. 前記モデル生成部は、報酬基準として、前記配置配線が失敗した場合に、前記プログラマブルロジックデバイス内のロジックエレメントまたはプロセッシングエレメントの使用率の溢れ度合、または前記プログラマブルロジックデバイス内の前記インターコネクトリソースの溢れ度合、または前記プログラマブルロジックデバイス内の前記フリップフロップ間の前記信号伝搬遅延時間のうち最も大きなものにおける前記サイクル時間に対するタイミング違反度合を用いて報酬を低減させる、請求項に記載の学習装置。
  8. プログラマブルロジックデバイスの開発用ツールチェーンのテクノロジ毎のリソース使用率データおよびテクノロジマッピング時のタイミングスラック情報を取得するデータ取得部と、
    テクノロジ毎のリソース使用率データおよびテクノロジマッピング時のタイミングスラック情報から配置配線を成功させるための前記プログラマブルロジックデバイスの開発用ツールチェーンに与える反復合成用パラメータを推論するための学習済モデルを用いて、前記データ取得部で取得した前記テクノロジ毎のリソース使用率データおよび前記テクノロジマッピング時のタイミングスラック情報から配置配線を成功させるための反復合成用パラメータを出力する推論部と、
    を備える推論装置。
  9. 前記テクノロジ毎のリソース使用率データは、前記プログラマブルロジックデバイス内のロジックエレメントまたはプロセッシングエレメントの算術論理演算ユニットの使用率と、マルチプレクサの使用率と、加算器の使用率と、減算器の使用率と、算術シフタの使用率とを含む、請求項8記載の推論装置。
  10. 前記テクノロジマッピング時のタイミングスラック情報は、前記プログラマブルロジックデバイスの開発用ツールチェーンの目標クロック周波数で決まるサイクル時間に対して前記プログラマブルロジックデバイス内のフリップフロップ間の信号伝搬遅延時間のうち最も大きなものにおける前記サイクル時間に対する余裕値を含む、請求項8または9記載の推論装置。
  11. 前記配置配線を成功させるための反復合成用パラメータは、
    前記配置配線後の回路が目的とする信号処理性能を達成できるための中心となるクロック周波数と、
    反復合成実行時における前記配置配線の結果が成功となる確率が最も高く、かつ前記配置配線の試行回数が最も少なくて済むような条件を満たすクロック周波数の下限値および上限値を決定するための閾値、および前記下限値から前記上限値までの範囲を網羅するためのステップ値の組み合わせとを含む、請求項8~10のいずれか1項に記載の推論装置。
  12. プログラマブルロジックデバイスの開発用ツールチェーンの目標クロック周波数と、反復合成用パラメータと、前記プログラマブルロジックデバイスの開発用ツールチェーンのテクノロジ毎のリソース使用率データと、テクノロジマッピング時のタイミングスラック情報とを含む学習用データを取得するデータ取得部と、
    前記学習用データを用いて、前記プログラマブルロジックデバイスの開発用ツールチェーンの前記目標クロック周波数と、前記反復合成用パラメータと、前記テクノロジ毎の前記リソース使用率データと、前記テクノロジマッピング時の前記タイミングスラック情報とから配置配線の成功確率を推論するための学習済モデルを生成するモデル生成部と、
    を備える学習装置。
  13. プログラマブルロジックデバイスの開発用ツールチェーンの目標クロック周波数と、反復合成用パラメータと、前記プログラマブルロジックデバイスの開発用ツールチェーンのテクノロジ毎のリソース使用率データと、テクノロジマッピング時のタイミングスラック情報とを取得するデータ取得部と、
    前記目標クロック周波数と、前記反復合成用パラメータと、前記テクノロジ毎の前記リソース使用率データと、前記テクノロジマッピング時の前記タイミングスラック情報とから配置配線の成功確率を推論するための学習済モデルを用いて、前記データ取得部で取得した前記目標クロック周波数と、前記反復合成用パラメータと、前記テクノロジ毎の前記リソース使用率データと、前記テクノロジマッピング時の前記タイミングスラック情報とから配置配線の成功確率を出力する推論部と、
    を備える推論装置。
  14. プログラマブルロジックデバイスの開発用ツールチェーンのテクノロジ毎のリソース使用率データおよびテクノロジマッピング時のタイミングスラック情報と、前記テクノロジ毎のリソース使用率データおよび前記テクノロジマッピング時のタイミングスラック情報における前記プログラマブルロジックデバイスの開発用ツールチェーンの目標クロック周波数および反復合成用パラメータとを含む学習用データを取得するステップと、
    前記学習用データを用いて、前記プログラマブルロジックデバイスの開発用ツールチェーンのテクノロジ毎のリソース使用率データおよびテクノロジマッピング時のタイミングスラック情報から配置配線を成功させるための前記プログラマブルロジックデバイスの開発用ツールチェーンに与える反復合成用パラメータを推論するための学習済モデルを生成するステップと、
    を備える学習方法。
  15. プログラマブルロジックデバイスの開発用ツールチェーンのテクノロジ毎のリソース使用率データおよびテクノロジマッピング時のタイミングスラック情報を取得するステップと、
    テクノロジ毎のリソース使用率データおよびテクノロジマッピング時のタイミングスラック情報から配置配線を成功させるための前記プログラマブルロジックデバイスの開発用ツールチェーンに与える反復合成用パラメータを推論するための学習済モデルを用いて、前記取得した前記テクノロジ毎のリソース使用率データおよび前記テクノロジマッピング時のタイミングスラック情報から配置配線を成功させるための反復合成用パラメータを出力するステップと、
    を備える推論方法。
  16. プログラマブルロジックデバイスの開発用ツールチェーンの目標クロック周波数と、反復合成用パラメータと、前記プログラマブルロジックデバイスの開発用ツールチェーンのテクノロジ毎のリソース使用率データと、テクノロジマッピング時のタイミングスラック情報とを含む学習用データを取得するステップと、
    前記学習用データを用いて、前記プログラマブルロジックデバイスの開発用ツールチェーンの前記目標クロック周波数と、前記反復合成用パラメータと、前記テクノロジ毎の前記リソース使用率データと、前記テクノロジマッピング時の前記タイミングスラック情報とから配置配線の成功確率を推論するための学習済モデルを生成するステップと、
    を備える学習方法。
  17. プログラマブルロジックデバイスの開発用ツールチェーンの目標クロック周波数と、反復合成用パラメータと、前記プログラマブルロジックデバイスの開発用ツールチェーンのテクノロジ毎のリソース使用率データと、テクノロジマッピング時のタイミングスラック情報とを取得するステップと、
    前記目標クロック周波数と、前記反復合成用パラメータと、前記テクノロジ毎の前記リソース使用率データと、前記テクノロジマッピング時の前記タイミングスラック情報とから配置配線の成功確率を推論するための学習済モデルを用いて、前記取得した前記目標クロック周波数と、前記反復合成用パラメータと、前記テクノロジ毎の前記リソース使用率データと、前記テクノロジマッピング時の前記タイミングスラック情報とから配置配線の成功確率を出力するステップと、
    を備える推論方法。
JP2022530483A 2020-06-09 2021-06-01 学習装置、推論装置、学習方法、および推論方法 Active JP7466643B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2020100016 2020-06-09
JP2020100016 2020-06-09
PCT/JP2021/020784 WO2021251206A1 (ja) 2020-06-09 2021-06-01 学習装置、推論装置、およびプログラマブルロジックデバイスの開発用ツールチェーン

Publications (3)

Publication Number Publication Date
JPWO2021251206A1 JPWO2021251206A1 (ja) 2021-12-16
JPWO2021251206A5 JPWO2021251206A5 (ja) 2023-02-01
JP7466643B2 true JP7466643B2 (ja) 2024-04-12

Family

ID=78845684

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022530483A Active JP7466643B2 (ja) 2020-06-09 2021-06-01 学習装置、推論装置、学習方法、および推論方法

Country Status (4)

Country Link
US (1) US12380264B2 (ja)
JP (1) JP7466643B2 (ja)
CN (1) CN115699010A (ja)
WO (1) WO2021251206A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US12353809B2 (en) * 2021-12-21 2025-07-08 Synopsys, Inc. Transformations for multicycle path prediction of clock signals
CN114371970B (zh) * 2022-01-10 2023-05-02 电子科技大学 一种基于图强化学习的fpga互联资源测试方法
JP2025515970A (ja) * 2022-06-13 2025-05-20 三菱電機株式会社 深層強化学習を用いたgan分散型rf電力増幅器自動化設計

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007538474A (ja) 2004-05-19 2007-12-27 アルテラ コーポレイション 集積回路の性能を調整するための装置および方法
JP2016095606A (ja) 2014-11-13 2016-05-26 国立大学法人電気通信大学 データ処理装置およびデータ処理方法、並びにプログラム
JP2020506491A (ja) 2017-01-08 2020-02-27 アルファイクス コーポレイションAlphaics Corporation 人工知能および強化学習によるシステムオンチップ(SoC)回路の設計システムおよび方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7500216B1 (en) * 2007-02-07 2009-03-03 Altera Corporation Method and apparatus for performing physical synthesis hill-climbing on multi-processor machines
US8365111B2 (en) * 2008-02-29 2013-01-29 Et International, Inc. Data driven logic simulation
EP2304622A1 (en) * 2008-05-15 2011-04-06 Universiteit Gent Parameterized configuration for a programmable logic device
US9703920B2 (en) * 2015-06-30 2017-07-11 International Business Machines Corporation Intra-run design decision process for circuit synthesis
US10192016B2 (en) 2017-01-17 2019-01-29 Xilinx, Inc. Neural network based physical synthesis for circuit designs
US10437954B1 (en) 2017-06-30 2019-10-08 Cadence Design Systems, Inc. System and method for recommending integrated circuit placement and routing options

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007538474A (ja) 2004-05-19 2007-12-27 アルテラ コーポレイション 集積回路の性能を調整するための装置および方法
JP2016095606A (ja) 2014-11-13 2016-05-26 国立大学法人電気通信大学 データ処理装置およびデータ処理方法、並びにプログラム
JP2020506491A (ja) 2017-01-08 2020-02-27 アルファイクス コーポレイションAlphaics Corporation 人工知能および強化学習によるシステムオンチップ(SoC)回路の設計システムおよび方法

Also Published As

Publication number Publication date
US20230342530A1 (en) 2023-10-26
JPWO2021251206A1 (ja) 2021-12-16
WO2021251206A1 (ja) 2021-12-16
US12380264B2 (en) 2025-08-05
CN115699010A (zh) 2023-02-03

Similar Documents

Publication Publication Date Title
JP7466643B2 (ja) 学習装置、推論装置、学習方法、および推論方法
CN110276442B (zh) 一种神经网络架构的搜索方法及装置
Salamat et al. F5-hd: Fast flexible fpga-based framework for refreshing hyperdimensional computing
US10755026B1 (en) Circuit design including design rule violation correction utilizing patches based on deep reinforcement learning
Kwon et al. A learning-based recommender system for autotuning design flows of industrial high-performance processors
Fadlullah et al. Value iteration architecture based deep learning for intelligent routing exploiting heterogeneous computing platforms
Muhsen et al. Enhancing NoC-based MPSoC performance: a predictive approach with ANN and guaranteed convergence arithmetic optimization algorithm
JP7150651B2 (ja) ニューラルネットワークのモデル縮約装置
Rada-Vilela et al. Optimal computing budget allocation in particle swarm optimization
CN112016611B (zh) 生成器网络和策略生成网络的训练方法、装置和电子设备
Du et al. Hubrouter: Learning global routing via hub generation and pin-hub connection
López et al. Addressing population heterogeneity and distribution in epidemics models using a cellular automata approach
Lee et al. Solving Stochastic Boolean Satisfiability under Random-Exist Quantification.
Feng et al. Precise mobility intervention for epidemic control using unobservable information via deep reinforcement learning
Ziegler et al. Online and offline machine learning for industrial design flow tuning:(Invited-ICCAD special session paper)
JP2023062490A (ja) 学習プログラム、学習方法及び情報処理装置
Mitra et al. Variable ordering for shared binary decision diagrams targeting node count and path length optimisation using particle swarm technique
Liao et al. Skip the benchmark: Generating system-level high-level synthesis data using generative machine learning
US20240411968A1 (en) Machine learning for netlist design
CN113711208A (zh) 多处理建模器和模拟器
JP2021140493A (ja) 情報処理装置、情報処理方法およびプログラム
JP2023138928A (ja) ニューラルネットワークを生成するための方法及び装置
Liao et al. System-Level Design Space Exploration for High-Level Synthesis Under End-to-End Latency Constraints
Reddy et al. Energy-Efficient VLSI Architecture for Real-Time Retinal Disease Detection using Deep Learning
US20250390775A1 (en) Non-transitory computer-readable recording medium, information processing apparatus, and simulation method

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20221025

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20221025

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20231128

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240111

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20240305

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240402

R150 Certificate of patent or registration of utility model

Ref document number: 7466643

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150