JP5516596B2 - 高レベル合成での設計空間探索の方法及び装置 - Google Patents
高レベル合成での設計空間探索の方法及び装置 Download PDFInfo
- Publication number
- JP5516596B2 JP5516596B2 JP2011541000A JP2011541000A JP5516596B2 JP 5516596 B2 JP5516596 B2 JP 5516596B2 JP 2011541000 A JP2011541000 A JP 2011541000A JP 2011541000 A JP2011541000 A JP 2011541000A JP 5516596 B2 JP5516596 B2 JP 5516596B2
- Authority
- JP
- Japan
- Prior art keywords
- search
- design
- synthesis
- attribute
- source code
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/327—Logic synthesis; Behaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2111/00—Details relating to CAD techniques
- G06F2111/06—Multi-objective optimisation, e.g. Pareto optimisation using simulated annealing [SA], ant colony algorithms or genetic algorithms [GA]
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)
- Design And Manufacture Of Integrated Circuits (AREA)
Description
for(x=0; x < 10; x++) ....
この例は、高レベル言語に対し、for loop(フォー・ループ)を完全にアンロールすることを指示する。
weight[A10:L2]", explore3="unroll=(2-6), weight[A5:L5]" */
for(x=0; x < 10; x++) ....
ローカルなプラグマが定義されていない場合、外部ライブラリで指定されたプラグマが使用されるであろう。初期の重み値は、これらの属性の「通常の、直観的に理解できる」動作に基づいて特徴づけられる。直観的に、“goto”として関数が合成される場合には、関数が呼び出されるたびに新しいハードウェア・ブロックが生成されるインラインの場合と比べ、全体の面積を小さくすることができるだろう。しかしながら、これは全ての場合にあてはまるわけではない。いくつかの場合には、この関数を共有するために挿入される多重化回路の数が、“goto”として関数を実装する場合に得られる節約分を超過する。小さな関数の本体部(ボディ)をインライン組み込みする場合に、よりよい面積/性能の結果をもたらすことができるだろう。
GCF = x A + y L + x P,
によって与えられる。ここで重み因子x,y,zは、それぞれ、全面積(A)、全レイテンシ(L)及び電力(P)を最小化することの重要度を示している。重みは、設計空間の全体を探索するために、探索中に、適応的に変更される。x>>y,zであれば、面積の重みを最高に最小化する属性について、その属性が使用される確率がより高くなる。設計空間の一部分のみの探索が望まれる場合には、コスト関数は固定したままとして、所与のコスト関数の周囲の設計だけを探索する。この方法のランダムさは、局所的極小(ローカル・ミニマム)の問題を回避することを可能にする。
次に、実施例に照らして、本実施形態をさらにより詳細に説明する。図3に示される入力が自動化された探索に与えられらるものと仮定する。この実施例では、問題定義は、2つのゴールからなる。すなわち、(1)コスト関数を最小化する設計(例えば、最小の設計、最小のレイテンシを有する設計)を生成すること、及び(2)異なるトレードオフ関係をユーザが分析することができるようにするために、属性とグローバル合成オプションと機能ユニットの数との組み合わせを探索すること、である。これら2つの結果は、前者ができるだけ最小の数の設計を生成することを意味するのに対し、後者はできるだけ多くの異なる組み合わせを生成することを意味しているので、相互に矛盾しているように見えるかもしれない。それにも関わらず、本実施形態は、これら2つのゴールを目的とすることができる。前者は、固定されたGCFを指定してその周りの設計を探索することによって達成される。後者は、全検索を指定することによって達成される。この場合、検索は、適応的にGCF重みを変更し、検索空間の全体を探索するであろう。
Claims (15)
- 時刻概念を含まない高レベル言語の設計空間を自動的に探索する方法であって、
制約条件、高レベル言語ソース・コード、入力オプション、及びライブラリ情報をコンピュータに入力するステップと、
前記コンピュータが、探索可能な属性を有する全ての操作についての、時刻概念を有しないオリジナルのソース・コードの依存関係解析木を生成するステップと、
前記コンピュータが、前記依存関係解析木における前記操作の位置に基づいて、属性の重みを自動的に調整するステップと、
面積、レイテンシ及び電力を削減するために、各操作の自然な傾向に応じ、前記コンピュータが、ユーザから外部入力によって指定されたまたは内部で宣言された属性に自動的に偏りを与えるステップと、
前記属性を選択する実際の確率に対し、前記コンピュータが、当該属性の重みをマッピングして、前記ユーザによって指定されたグローバル・コスト関数の最小化を導くステップと、
下記(a)〜(c):
(a)前記高レベル言語ソース・コードに含まれる、少なくとも演算、ループ、メモリ及び関数に対する前記属性のユニークな組を生成することと、
(b)前記高レベル言語ソース・コードに含まれる、少なくとも演算、ループ、メモリ及び関数に対するグローバル合成オプションのユニークな組を生成することと、
(c)前記高レベル言語ソース・コードに含まれる演算に対する機能ユニットの数及び種類の組を生成することと、
の少なくとも1つを実行することにより、前記コンピュータが設計空間を探索する探索ステップと、
前記探索ステップで得られた結果に基づいて、前記コンピュータが高レベル合成を行う高レベル合成ステップと、
所定の終了条件を満たしているときに、前記コンピュータが、前記属性と前記グローバル合成オプションと前記機能ユニットの数及び種類とに関する情報の組を含む新しい設計を出力し、前記所定の終了条件を満たしていないときには前記探索ステップと前記高レベル合成ステップとを繰り返すステップと、
を有し、
前記属性は、所与のソース・コードの合成において高レベル合成ツールの動作を案内するものである、方法。 - 前記依存関係解析木での前記操作の位置に基づいて、前記属性の重みを動的に調節することをさらに有する、請求項1に記載の方法。
- 出力される各設計が一意のものとなるように、使用されたローカル属性とグローバル合成オプションと機能ユニットの数及び種類とに応じて、出力された各新しい設計に対する一意のハッシュ・インデックスを生成することをさらに有する、請求項1に記載の方法。
- 所与の探索中であるいは前記探索を再実行する際にエラーが再度起こることを防ぐために、不正な属性の割り当て、不正な合成オプションの割り当てまたはそれらの組み合わせによるいかなる合成エラーも記録することをさらに有する、請求項1に記載の方法。
- 同じ設計が再出力されないことを保証する一意のキーを読み出すことによって探索を停止したり続行したりできるように、出力された全ての前記設計を各設計の一意のハッシュ・インデックスとともに登録することを有する、請求項1に記載の方法。
- 全設計空間探索を実行するために、前記グローバル・コスト関数の重みを適応的に変更することを有する、請求項1に記載の方法。
- 前記適応的な変更は、小面積の設計をもたらす属性を使用する確率がより高くなるように、より高い面積重みを有する小面積設計から始まり、より小さなレイテンシの設計をもたらす属性とグローバル合成オプションとを選択することについてのより大きな確率を有する高レイテンシ重みを有して終わる、請求項6に記載の方法。
- 前記オプションは、単一の設計探索か全体探索かのいずれかが打ち切られることになるまでのタイムアウトを指定する、請求項1に記載の方法。
- 前記オプションは、時刻概念を含まない高レベル言語のソース・コードにおいて、プラグマとして、探索されるべき属性の組を直接指定し、
所与の属性のみが所与の操作に対して使用され、前記重みは、オプションとして指定可能な、各属性の面積/レイテンシを削減する確率である、請求項1に記載の方法。 - グローバル・コスト関数に基づいて属性の固定した組が割り当てられる、異なる粒度のクラスタを生成することをさらに有し、
異なる粒度は、前記設計空間を削減する属性の組み合わせの数を制御し、ここでより大きなクラスタは、より高速の設計空間をもたらすが、最適設計の検出に失敗する可能性があり、
クラスタ属性は、前記グローバル・コスト関数が最大化する目標が変化したときに、変化することができる、請求項1に記載の方法。 - 前記オプションは、いつ前記探索を終了するかを指定し、
所与の数の設計の後で、以前の設計を改善する新規の設計を出力できないときは、前記探索が終了する、請求項1に記載の方法。 - 前記探索を再実行させて、重複した設計を有しない設計の新たなユニークな組を出力できる、請求項11に記載の方法。
- 時刻概念を含まない高レベル言語の設計空間を自動的に探索する装置であって、
自動化された探索に対する、制約条件、高レベル言語ソース・コード、入力オプション、及びライブラリ情報を含む入力を受け付ける入力装置と、
前記高レベル言語ソース・コードに基づき、探索可能な属性を有する全ての操作についての、時刻概念を有しないオリジナルのソース・コードの依存関係解析木を生成する解析木生成器と、
前記依存関係解析木における前記操作の位置に基づいて、属性の重みを自動的に調整する重み調整部と、
(a)前記高レベル言語ソース・コードに含まれる、少なくとも演算、ループ、メモリ及び関数に対する前記属性のユニークな組を生成することと、(b)前記高レベル言語ソース・コードに含まれる、少なくとも演算、ループ、メモリ及び関数に対するグローバル合成オプションのユニークな組を生成することと、(c)前記高レベル言語ソース・コードに含まれる演算に対する機能ユニットの数及び種類の組を生成することと、の少なくとも1つを行うことによって設計空間を探索する探索装置と、
前記探索装置による探索の結果に基づいて高レベル合成を実行する高レベル合成部と、
探索結果を出力する出力装置と、
を有し、
前記属性は、所与のソース・コードの合成において高レベル合成ツールの動作を案内するものであり、
面積、レイテンシ及び電力を削減するために、各操作の自然な傾向に応じ、ユーザから外部入力によって指定されたまたは内部で宣言された属性に自動的に偏りが与えられ、
前記属性を選択する実際の確率に対し、当該属性の重みがマッピングされて、前記ユーザによって指定されたグローバル・コスト関数の最小化が導かれ、
前記出力装置は、所定の終了条件を満たしているときに、前記高レベル合成部から出力された新規の設計を出力する、装置。 - グローバル・コスト関数に基づいて属性の固定した組が割り当てられる、異なる粒度のクラスタを生成するクラスタ生成器を有する、請求項13に記載の装置。
- コンピュータに、
制約条件、高レベル言語ソース・コード、入力オプション、及びライブラリ情報を受け取る処理と、
探索可能な属性を有する全ての操作についての、時刻概念を有しないオリジナルのソース・コードの依存関係解析木を生成する処理と、
前記依存関係解析木における前記操作の位置に基づいて、前記属性の重みを自動的に調整する処理と、
面積、レイテンシ及び電力を削減するために、各操作の自然な傾向に応じ、ユーザから外部入力によって指定されたまたは内部で宣言された属性に自動的に偏りを与える処理と、
前記属性を選択する実際の確率に対し、当該属性の重みをマッピングして、前記ユーザによって指定されたグローバル・コスト関数の最小化を導く処理と、
下記(a)〜(c):
(a)前記高レベル言語ソース・コードに含まれる、少なくとも演算、ループ、メモリ及び関数に対する前記属性のユニークな組を生成することと、
(b)前記高レベル言語ソース・コードに含まれる、少なくとも演算、ループ、メモリ及び関数に対するグローバル合成オプションのユニークな組を生成することと、
(c)前記高レベル言語ソース・コードに含まれる演算に対する機能ユニットの数及び種類の組を生成することと、
の少なくとも1つを実行することにより設計空間を探索する探索処理と、
前記探索処理で得られた結果に基づいて高レベル合成を行う高レベル合成処理と、
所定の終了条件を満たしているときに、前記属性と前記グローバル合成オプションと前記機能ユニットの数及び種類に関する情報の組を含む新しい設計を出力し、前記所定の終了条件を満たしていないときには前記探索処理と前記高レベル合成処理とを繰り返す処理と、
を実行させ、
前記属性は、所与のソース・コードの合成において高レベル合成ツールの動作を案内するものである、コンピュータ・プログラム。
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/JP2009/057043 WO2010113330A2 (en) | 2009-03-31 | 2009-03-31 | Method and apparatus for design space exploration in high level synthesis |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2012522281A JP2012522281A (ja) | 2012-09-20 |
| JP5516596B2 true JP5516596B2 (ja) | 2014-06-11 |
Family
ID=41137635
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2011541000A Expired - Fee Related JP5516596B2 (ja) | 2009-03-31 | 2009-03-31 | 高レベル合成での設計空間探索の方法及び装置 |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US20120036138A1 (ja) |
| JP (1) | JP5516596B2 (ja) |
| WO (1) | WO2010113330A2 (ja) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US10599803B2 (en) | 2016-03-10 | 2020-03-24 | Mitsubishi Electric Corporation | High level synthesis apparatus, high level synthesis method, and computer readable medium |
| US11720080B2 (en) | 2018-06-13 | 2023-08-08 | Nippon Telegraph And Telephone Corporation | Parameter optimization device, method and program |
Families Citing this family (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8745607B2 (en) * | 2011-11-11 | 2014-06-03 | International Business Machines Corporation | Reducing branch misprediction impact in nested loop code |
| US9703920B2 (en) * | 2015-06-30 | 2017-07-11 | International Business Machines Corporation | Intra-run design decision process for circuit synthesis |
| US10031987B2 (en) | 2016-06-15 | 2018-07-24 | International Business Machines Corporation | Verification of untimed nets |
| US11361133B2 (en) * | 2017-09-26 | 2022-06-14 | Intel Corporation | Method of reporting circuit performance for high-level synthesis |
| US11113437B2 (en) * | 2017-09-30 | 2021-09-07 | Siemens Aktiengesellschaft | Joint hardware and controller design |
| KR102454026B1 (ko) * | 2018-08-13 | 2022-10-12 | 빅아이디 인크. | 개인 정보 조사 결과의 신뢰도 레벨을 결정하기 위한 머신 러닝 시스템 및 방법 |
| KR102777276B1 (ko) | 2019-06-04 | 2025-03-10 | 삼성전자주식회사 | Fpga를 포함하는 전자 시스템 및 이의 동작 방법 |
| US20220019720A1 (en) * | 2020-07-17 | 2022-01-20 | University Of Florida Research Foundation, Incorporated | Framework for automated synthesis of secure, optimized system-on-chip architectures |
Family Cites Families (12)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP3907398B2 (ja) * | 2000-11-16 | 2007-04-18 | 松下電器産業株式会社 | 半導体集積回路装置の設計方法 |
| US7120879B2 (en) * | 2001-04-20 | 2006-10-10 | Peter Pius Gutberlet | Hierarchical presentation techniques for a design tool |
| CA2411328C (en) * | 2001-11-07 | 2009-06-23 | Analog Design Automation Inc. | Method of interactive optimization in circuit design |
| US6915496B2 (en) * | 2002-09-26 | 2005-07-05 | International Business Machines Corporation | Apparatus and method for incorporating driver sizing into buffer insertion using a delay penalty estimation technique |
| GB0228751D0 (en) * | 2002-12-10 | 2003-01-15 | Bae Systems Plc | Method of design using genetic programming |
| JP4028490B2 (ja) * | 2004-01-13 | 2007-12-26 | 株式会社東芝 | 信頼性解析装置、信頼性解析方法及び信頼性解析プログラム |
| JP2005284577A (ja) * | 2004-03-29 | 2005-10-13 | Matsushita Electric Ind Co Ltd | コンパイラ |
| US7739092B1 (en) * | 2006-01-31 | 2010-06-15 | Xilinx, Inc. | Fast hardware co-simulation reset using partial bitstreams |
| US7603643B2 (en) * | 2007-01-30 | 2009-10-13 | Cadence Design Systems, Inc. | Method and system for conducting design explorations of an integrated circuit |
| US20090164184A1 (en) * | 2007-12-21 | 2009-06-25 | Cadence Design Systems, Inc. | Method and System for Implementing a Complex System or Process |
| US8307315B2 (en) * | 2009-01-30 | 2012-11-06 | Synopsys, Inc. | Methods and apparatuses for circuit design and optimization |
| US8473895B2 (en) * | 2010-06-08 | 2013-06-25 | Microsoft Corporation | Providing diverse solutions using design space exploration |
-
2009
- 2009-03-31 WO PCT/JP2009/057043 patent/WO2010113330A2/en not_active Ceased
- 2009-03-31 JP JP2011541000A patent/JP5516596B2/ja not_active Expired - Fee Related
- 2009-03-31 US US13/260,302 patent/US20120036138A1/en not_active Abandoned
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US10599803B2 (en) | 2016-03-10 | 2020-03-24 | Mitsubishi Electric Corporation | High level synthesis apparatus, high level synthesis method, and computer readable medium |
| US11720080B2 (en) | 2018-06-13 | 2023-08-08 | Nippon Telegraph And Telephone Corporation | Parameter optimization device, method and program |
Also Published As
| Publication number | Publication date |
|---|---|
| WO2010113330A2 (en) | 2010-10-07 |
| JP2012522281A (ja) | 2012-09-20 |
| US20120036138A1 (en) | 2012-02-09 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP5516596B2 (ja) | 高レベル合成での設計空間探索の方法及び装置 | |
| de Fine Licht et al. | Transformations of high-level synthesis codes for high-performance computing | |
| Villarreal et al. | Designing modular hardware accelerators in C with ROCCC 2.0 | |
| CA2097230C (en) | Timing verification by successive approximation | |
| de Fine Licht et al. | StencilFlow: Mapping large stencil programs to distributed spatial computing systems | |
| US20070277130A1 (en) | System and method for architecture verification | |
| Liu et al. | Compositional system-level design exploration with planning of high-level synthesis | |
| US10296689B2 (en) | Automated bottom-up and top-down partitioned design synthesis | |
| JP5605435B2 (ja) | 設計空間探索を加速する方法及び装置 | |
| Goswami et al. | Machine learning based fast and accurate high level synthesis design space exploration: From graph to synthesis | |
| WO2022134307A1 (zh) | 一种可重构芯片的内存耦合编译方法及系统 | |
| US7086047B1 (en) | Determining hardware generated by high level language compilation through loop optimizations | |
| Weng et al. | Unifying spatial accelerator compilation with idiomatic and modular transformations | |
| Zhang et al. | DUET: A compiler-runtime subgraph scheduling approach for tensor programs on a coupled CPU-GPU architecture | |
| US20220164510A1 (en) | Automated design of field programmable gate array or other logic device based on artificial intelligence and vectorization of behavioral source code | |
| Fischer et al. | Efficient architecture/compiler co-exploration for ASIPs | |
| Janik et al. | An overview of altera sdk for opencl: A user perspective | |
| Du et al. | FADO: Floorplan-aware directive optimization based on synthesis and analytical models for high-level synthesis designs on multi-die FPGAs | |
| US7305650B1 (en) | Data path synthesis apparatus and method for optimizing a behavioral design description being processed by a behavioral synthesis tool | |
| Yu et al. | MLIR-to-CGRA: A Versatile MLIR-Based Compiler Framework for CGRAs | |
| US20240256237A1 (en) | Computation graph compiling method and apparatus | |
| Liu et al. | Compiling halide programs to push-memory accelerators | |
| Chen et al. | Attentionengine: A versatile framework for efficient attention mechanisms on diverse hardware platforms | |
| Kruppe et al. | Efficient operator sharing modulo scheduling for sum-product network inference on fpgas | |
| Shahzad | Optimizing the optimizer increasing performance efficiency of modern compilers |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130416 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130723 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130920 |
|
| 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: 20140304 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20140317 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 5516596 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| LAPS | Cancellation because of no payment of annual fees |