JP7407192B2 - フィールド・プログラマブル・ゲート・アレイのためのコードを最適化する方法および装置 - Google Patents
フィールド・プログラマブル・ゲート・アレイのためのコードを最適化する方法および装置 Download PDFInfo
- Publication number
- JP7407192B2 JP7407192B2 JP2021531192A JP2021531192A JP7407192B2 JP 7407192 B2 JP7407192 B2 JP 7407192B2 JP 2021531192 A JP2021531192 A JP 2021531192A JP 2021531192 A JP2021531192 A JP 2021531192A JP 7407192 B2 JP7407192 B2 JP 7407192B2
- Authority
- JP
- Japan
- Prior art keywords
- code
- dfg
- hardware accelerator
- dataflow graph
- level
- 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
Links
- 238000000034 method Methods 0.000 title claims description 107
- 238000003491 array Methods 0.000 title description 5
- 238000005457 optimization Methods 0.000 claims description 80
- 238000004422 calculation algorithm Methods 0.000 claims description 12
- 238000013138 pruning Methods 0.000 claims description 5
- 239000000872 buffer Substances 0.000 claims description 4
- 230000003252 repetitive effect Effects 0.000 claims description 2
- 238000013459 approach Methods 0.000 description 23
- 238000000638 solvent extraction Methods 0.000 description 16
- 230000015572 biosynthetic process Effects 0.000 description 14
- 238000003786 synthesis reaction Methods 0.000 description 14
- 238000007792 addition Methods 0.000 description 10
- 230000008901 benefit Effects 0.000 description 8
- 239000013598 vector Substances 0.000 description 8
- 238000013461 design Methods 0.000 description 7
- 230000000694 effects Effects 0.000 description 7
- 239000000243 solution Substances 0.000 description 7
- 230000009466 transformation Effects 0.000 description 7
- 230000006399 behavior Effects 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 6
- 230000006872 improvement Effects 0.000 description 6
- 238000000926 separation method Methods 0.000 description 6
- 230000008685 targeting Effects 0.000 description 6
- 238000000844 transformation Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 238000009825 accumulation Methods 0.000 description 4
- 238000011960 computer-aided design Methods 0.000 description 3
- 230000001186 cumulative effect Effects 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 238000005265 energy consumption Methods 0.000 description 3
- 238000003780 insertion Methods 0.000 description 3
- 230000037431 insertion Effects 0.000 description 3
- 238000010801 machine learning Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000009467 reduction Effects 0.000 description 3
- 238000011160 research Methods 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 230000004888 barrier function Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000011156 evaluation Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- HPTJABJPZMULFH-UHFFFAOYSA-N 12-[(Cyclohexylcarbamoyl)amino]dodecanoic acid Chemical compound OC(=O)CCCCCCCCCCCNC(=O)NC1CCCCC1 HPTJABJPZMULFH-UHFFFAOYSA-N 0.000 description 1
- 241000755937 Corinna Species 0.000 description 1
- 101100136092 Drosophila melanogaster peng gene Proteins 0.000 description 1
- 101000694017 Homo sapiens Sodium channel protein type 5 subunit alpha Proteins 0.000 description 1
- INQLNSVYIFCUML-QZTLEVGFSA-N [[(2r,3s,4r,5r)-5-(6-aminopurin-9-yl)-3,4-dihydroxyoxolan-2-yl]methoxy-hydroxyphosphoryl] [(2r,3s,4r,5r)-5-(4-carbamoyl-1,3-thiazol-2-yl)-3,4-dihydroxyoxolan-2-yl]methyl hydrogen phosphate Chemical compound NC(=O)C1=CSC([C@H]2[C@@H]([C@H](O)[C@@H](COP(O)(=O)OP(O)(=O)OC[C@@H]3[C@H]([C@@H](O)[C@@H](O3)N3C4=NC=NC(N)=C4N=C3)O)O2)O)=N1 INQLNSVYIFCUML-QZTLEVGFSA-N 0.000 description 1
- 206010000210 abortion Diseases 0.000 description 1
- 238000009635 antibiotic susceptibility testing Methods 0.000 description 1
- 238000010420 art technique Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000005056 compaction Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000003708 edge detection Methods 0.000 description 1
- 239000003623 enhancer Substances 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 239000012086 standard solution Substances 0.000 description 1
- 238000003860 storage Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/443—Optimisation
- G06F8/4434—Reducing the memory space required by the program code
- G06F8/4435—Detection or removal of dead or redundant code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/34—Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
- G06F30/343—Logical level
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/43—Checking; Contextual analysis
- G06F8/433—Dependency analysis; Data or control flow analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/443—Optimisation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- Devices For Executing Special Programs (AREA)
Description
ソース間最適化は、HLSの分野における研究主題であった。例えば、Congら[5]は、コード再構築の問題について簡単に概説し、ソフトウェア開発者のためにコード再構築を容易にするためのフレームワークを提示している。Cardosoら[6]は、ユーザが、コード変換とディレクティブの挿入とを適用するために戦略をプログラムすることができるようにする手法を提示している。LegUp HLSツール[8]はまた、Cを入力として受け付け、HLS最適化を実装するために修正LLVMコンパイラ[9]によりコード再構築を実装する。
a=b;d=a+c;a=d+a;
この方法および装置は、第1の演算にa_1、b_0というIDを使用する。この後に、第2の演算のd_1、a_1、c_0というIDと、最後の演算のa_2、d_1、a_1というIDが続く。図2に、インストルメンテーション・コード112が付加されたドット積カーネルの実行の結果のDFG125を示す。
(a)アプリケーションが実行されるときに(GraphVizのドットなど)DFGのテキスト表現を報告するインストルメンテーション・コードを備えたアプリケーションを実行する。
(b)実行された命令を報告するインストルメンテーション・コードを備えるアプリケーションを実行し、次にソフトウェア・ツールが実行トレースからDFGを構築することができる。
(c)実行されたアセンブリ命令、バイトコード命令または中間表現命令を報告または監視する(これは、逆アセンブルおよびメモリ非曖昧化を含むことがある)。
(d)ループを完全にアンロールすることができ、関数をインライン展開することができ、結果のコードのDFGを生成するコンパイラ(入力データに依存する値を扱う場合、コンパイラは典型値、最小、平均および最大期待値に関する情報に依拠し得る)。
(a)ディレクティブ出力に関して可能な修正を必要とするFPGAを対象とする他のHLSツール(LegUpなど)
(b)ASICを対象とするHLSツール
(c)FPGAを対象とするOpenCLコードのコード生成
(d)マルチコアおよび/またはGPUを対象とするOpenCLまたはCUDAのコード生成
(e)場合によりOpenMPおよびOpenACCなどのディレクティブ駆動型プログラミング・モデルで拡張されたスレッド・ライブラリまたはCコードを使用してマルチスレッド・コードを生成する、マルチコアCPUおよび複数CPUを対象とするCコード生成
(f)SIMDアーキテクチャのための適切なCコード生成、および適切なベクトル化
本節では、本明細書の方法および装置によって得られた最初の実験結果を示す。一連のベンチマークを使用した。すべてのベンチマークが、制御フローがきわめて少ない演算量の多いアルゴリズムからなり、DSPアルゴリズムを代表する。ベンチマークは、テキサス・インスツルメンツのDSPLIB[3]、UTDSP Benchmark Suite[4]、またはMPEGアプリケーションからのものである。使用した最も単純なベンチマークは、DSPLIBのドット積である。DSPLIBの自己相関ベンチマークも使用している。1D firベンチマークは、N個のタップを有するFIR(有限インパルス応答)フィルタを実装する典型的なコードである。フィルタ・サブバンド・ベンチマークは、MPEGアプリケーションのものである。2D Convolutionが、最大のベンチマークであり、これは2D畳み込みを実行するカーネルである。この畳み込みは、UTDSPのソーベル・エッジ検出アプリケーションの一部である。
INESC TECは、プロジェクト「TEC4Growth -TL -SMILES-5 Pervasive Intelligence, Enhancers and Proofs of Concept with Industrial Impact」(NORTE-01-0145-FEDER-00020)の下で、本研究の開発の過程で助成金を提供しており、また、プロジェクトCONTEXTWA (POCI-01-0145-FEDER-016883)からの基金が使用され、両者は欧州地域開発基金によって資金提供されている。
[0001]R. Nane, V. M. Sima, C. Pilato, J. Choi, B. Fort, A. Canis, Y. T. Chen, H. Hsiao, S. Brown, F. Ferrandi, J. Anderson, and K. Bertels. A survey and evaluation of FPGA high-level synthesis tools. IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems, 35 (10):1591-1604, Oct 2016.
[0002]Joao M. P. Cardoso and Markus Weinhardt. High-level Synthesis, pages 23-47. Springer International Publishing, Cham, 2016.
[0003]Texas Instrument, TMS320C6000 DSP Library (DSPLIB), accessed in 16 June 2018. URL http://www.ti.com/tool/sprc265
[0004]Corina G.Lee, 15 Aug 2002, accessed in 16 June 2018. URL http://www.eecg.toronto.edu/~corinna/DSP/infrastructure/UTDSP.tar.gz
[0005]Cong, Jason Huang, Muhuan Pan, Peichen Wang, Yuxin Zhang, Peng. (2016). Source-to-Source Optimization for HLS, pages 137-163. Springer International Publishing, Cham, 2016.
[0006]J. M. P. Cardoso, J. Teixeira, J. C. Alves, R. Nobre, P. C. Diniz, J. G. F. Coutinho, and W. Luk. Specifying compiler strategies for FPGA-based systems. In 2012 IEEE 20th International Symposium on Field Programmable Custom Computing Machines, pages 192-199, April 2012.
[0007]O. Mencer. ASC: a stream compiler for computing with FPGAs. IEEE Transactions on Computer Aided Design of Integrated Circuits and Systems, 25(9):1603-1617, Sept 2006.
[0008]Andrew Canis, Jongsok Choi, Mark Aldham, Victor Zhang, Ahmed Kammoona, Tomasz Czajkowski, Stephen D. Brown, and Jason H. Anderson. LegUP: An open-source high-level synthesis tool for FPGA based processor/accelerator systems. ACM Trans. Embed. Comput. Syst., 13(2):24:1-24:27, Sep. 2013.
[0009]LLVM. The llvm compiler infrastructure project, 2018. URL https://llvm.org.
[0010]Maxeler Technologies. Maxcompiler white paper, 2017. https://www.maxeler.com/ media/documents/MaxelerWhitePaperProgramming.pdf.
[0011]N. Voss, S. Girdlestone, O. Mencer, and G. Gaydadjiev. Automated dataflow graph merging. In 2016 International Conference on Embedded Computer Systems: Architectures, Modeling and Simulation (SAMOS16), pages 219-226, July 2016.
Claims (10)
- 装置に含まれるフィールド・プログラマブル・ゲート・アレイ(FPGA)においてハードウェア・アクセラレータ(20)の構成を生成する方法であって、
前記ハードウェア・アクセラレータ(20)上で実装されるアルゴリズムを記述するコードの複数の行を有し、かつ、前記コードの複数の行の前にインストルメンテーション・コード(112)が差し込まれたプログラム(105)を前記装置のフロントエンド(110)において実行(115)し、メモリにおいてアンフォールドされたデータフロー・グラフ(DFG)を生成すること(125)と、
生成された前記アンフォールドされたデータフロー・グラフ(DFG)を前記装置のバックエンド(135)に渡すことと、
前記アンフォールドされたデータフロー・グラフ(DFG)における反復パターンを特定し、不要ノードの刈り込み(310)を行うことと、
冗長メモリ・アクセスを特定して冗長メモリ・アクセスを削除すること、再利用値のバッファへの記憶を行うこと、または前記ハードウェア・アクセラレータ(20)において利用可能な資源へのメモリ・アクセスを適応化することのうちの少なくとも1つによって、前記バックエンド(135)において前記アンフォールドされたデータフロー・グラフ(DFG)を最適化することと、
前記最適化されたデータフロー・グラフ(DFG)から出力プログラム(140)を出力(360)して、前記ハードウェア・アクセラレータ(20)の構成を生成することとを含む方法。 - 前記アンフォールドされたデータフロー・グラフ(DFG)の前記最適化は、前記特定された反復パターンを前記データフロー・グラフ(DFG)内にフォールディングすることを含む、請求項1に記載の方法。
- 不要ノードの前記刈り込み(310)は、ローカル配列をスカラー変数に変換することを含む、請求項1に記載の方法。
- 出力された配列内の出力値の個別データフローを特定することと、出力上の共通の演算を、前記出力の1つ1つに固有の演算から分けて、それにより、前記共通の演算を有するグラフと、前記固有の演算を有するグラフのリストとを生成することをさらに含む、請求項1から3のいずれかに記載の方法。
- 算術演算におけるステップの数を削減すること、または並行算術演算の数を増やすことのうちの少なくとも一方をさらに含む、請求項1から4のいずれか一項に記載の方法。
- 前記アンフォールドされたデータフロー・グラフ(DFG)におけるパイプライン化を特定すること(330)をさらに含む、請求項1から5のいずれかに記載の方法。
- 前記アンフォールドされたデータフロー・グラフ(DFG)は複数のループを含み、前記方法は、前記データフロー・グラフ(DFG)における前記複数のループのうちの1つまたは複数のループをアンフォールドすること(350)と、次に前記データフロー・グラフ(DFG)の前記最適化を繰り返すこととをさらに含む、請求項1から6のいずれか一項に記載の方法。
- ハードウェア・アクセラレータ(20)の構成方法であって、
請求項1から7のいずれか一項により前記ハードウェア・アクセラレータ(20)の構成を、前記ハードウェア・アクセラレータ(20)の前記構成を表す出力プログラム(140)の形態で生成することと、
前記出力プログラム(140)を前記ハードウェア・アクセラレータ(20)に提供し、それによって前記ハードウェア・アクセラレータ(20)の構成を可能にすることとを含む方法。 - 請求項1から7のいずれか一項に記載の方法を実装するように構成された装置。
- 複数の電子構成要素を含むハードウェア・アクセラレータ(20)であって、前記複数の電子構成要素は、請求項1から7のいずれか一項に記載の方法によって出力される出力プログラム(140)によってプログラムされる(370)、ハードウェア・アクセラレータ。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PT20181000054166 | 2018-08-09 | ||
PT2018154166 | 2018-08-09 | ||
EP18189022.9 | 2018-08-14 | ||
EP18189022.9A EP3611613A1 (en) | 2018-08-14 | 2018-08-14 | Method and apparatus for optimizing code for field programmable gate arrays |
PCT/EP2019/071491 WO2020030807A1 (en) | 2018-08-09 | 2019-08-09 | Method and apparatus for optimizing code for field programmable gate arrays |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2022508296A JP2022508296A (ja) | 2022-01-19 |
JP7407192B2 true JP7407192B2 (ja) | 2023-12-28 |
Family
ID=75684130
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021531192A Active JP7407192B2 (ja) | 2018-08-09 | 2019-08-09 | フィールド・プログラマブル・ゲート・アレイのためのコードを最適化する方法および装置 |
Country Status (5)
Country | Link |
---|---|
US (1) | US11656857B2 (ja) |
EP (1) | EP3827336A1 (ja) |
JP (1) | JP7407192B2 (ja) |
CN (1) | CN112840316A (ja) |
WO (1) | WO2020030807A1 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021097784A1 (en) * | 2019-11-22 | 2021-05-27 | Huawei Technologies Co., Ltd. | Method and system for constructing compiler intermediate representations from tensorflow graph |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010238054A (ja) | 2009-03-31 | 2010-10-21 | Mitsubishi Electric Corp | 半導体設計支援装置、高位合成方法及び半導体設計支援プログラム |
JP2012083901A (ja) | 2010-10-08 | 2012-04-26 | Nec Corp | 構成情報管理装置、その方法及びそのプログラム並びに動作合成装置 |
JP2014095955A (ja) | 2012-11-07 | 2014-05-22 | Ricoh Co Ltd | 半導体集積回路の設計装置及び設計方法 |
WO2017158785A1 (ja) | 2016-03-17 | 2017-09-21 | 三菱電機株式会社 | 高位合成装置、高位合成方法及び高位合成プログラム |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6507947B1 (en) * | 1999-08-20 | 2003-01-14 | Hewlett-Packard Company | Programmatic synthesis of processor element arrays |
FR2865047B1 (fr) * | 2004-01-14 | 2006-04-07 | Commissariat Energie Atomique | Systeme de generation automatique de codes optimises |
US7565631B1 (en) * | 2004-07-02 | 2009-07-21 | Northwestern University | Method and system for translating software binaries and assembly code onto hardware |
WO2010140883A2 (en) * | 2009-06-02 | 2010-12-09 | Vector Fabrics B.V. | Improvements in embedded system development |
US9367658B2 (en) | 2011-06-22 | 2016-06-14 | Maxeler Technologies Ltd. | Method and apparatus for designing and generating a stream processor |
US9424079B2 (en) * | 2013-06-27 | 2016-08-23 | Microsoft Technology Licensing, Llc | Iteration support in a heterogeneous dataflow engine |
US10089259B2 (en) | 2015-07-21 | 2018-10-02 | BigStream Solutions, Inc. | Precise, efficient, and transparent transfer of execution between an auto-generated in-line accelerator and processor(s) |
US10025566B1 (en) * | 2016-10-07 | 2018-07-17 | The Mathworks, Inc. | Scheduling technique to transform dataflow graph into efficient schedule |
EP3532937A1 (en) | 2016-10-25 | 2019-09-04 | Reconfigure.io Limited | Synthesis path for transforming concurrent programs into hardware deployable on fpga-based cloud infrastructures |
CN106775905A (zh) * | 2016-11-19 | 2017-05-31 | 天津大学 | 基于fpga的高级综合实现拟牛顿算法加速的方法 |
US10635823B2 (en) * | 2018-01-12 | 2020-04-28 | Intel Corporation | Compiling techniques for hardening software programs against branching programming exploits |
US20190370407A1 (en) * | 2018-05-30 | 2019-12-05 | Ab Initio Technology Llc | Systems and methods for dataflow graph optimization |
-
2019
- 2019-08-09 US US17/265,970 patent/US11656857B2/en active Active
- 2019-08-09 CN CN201980066777.9A patent/CN112840316A/zh active Pending
- 2019-08-09 WO PCT/EP2019/071491 patent/WO2020030807A1/en unknown
- 2019-08-09 EP EP19759513.5A patent/EP3827336A1/en active Pending
- 2019-08-09 JP JP2021531192A patent/JP7407192B2/ja active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010238054A (ja) | 2009-03-31 | 2010-10-21 | Mitsubishi Electric Corp | 半導体設計支援装置、高位合成方法及び半導体設計支援プログラム |
JP2012083901A (ja) | 2010-10-08 | 2012-04-26 | Nec Corp | 構成情報管理装置、その方法及びそのプログラム並びに動作合成装置 |
JP2014095955A (ja) | 2012-11-07 | 2014-05-22 | Ricoh Co Ltd | 半導体集積回路の設計装置及び設計方法 |
WO2017158785A1 (ja) | 2016-03-17 | 2017-09-21 | 三菱電機株式会社 | 高位合成装置、高位合成方法及び高位合成プログラム |
Also Published As
Publication number | Publication date |
---|---|
US11656857B2 (en) | 2023-05-23 |
CN112840316A (zh) | 2021-05-25 |
WO2020030807A1 (en) | 2020-02-13 |
EP3827336A1 (en) | 2021-06-02 |
US20210382702A1 (en) | 2021-12-09 |
JP2022508296A (ja) | 2022-01-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Windh et al. | High-level language tools for reconfigurable computing | |
Guo et al. | A compiler intermediate representation for reconfigurable fabrics | |
Rus et al. | Hybrid analysis: static & dynamic memory reference analysis | |
Numan et al. | Towards automatic high-level code deployment on reconfigurable platforms: A survey of high-level synthesis tools and toolchains | |
JP2007528059A (ja) | ソフトウェアのモデル化、抽象、および分析のためのシステムと方法 | |
Clark et al. | Scalable subgraph mapping for acyclic computation accelerators | |
Özkan et al. | FPGA-based accelerator design from a domain-specific language | |
Matai et al. | Enabling fpgas for the masses | |
Cardoso et al. | Controlling a complete hardware synthesis toolchain with LARA aspects | |
JP7407192B2 (ja) | フィールド・プログラマブル・ゲート・アレイのためのコードを最適化する方法および装置 | |
Sbirlea et al. | Dfgr an intermediate graph representation for macro-dataflow programs | |
Fischer et al. | Design space characterization for architecture/compiler co-exploration | |
Menotti et al. | LALP: A language to program custom FPGA-based acceleration engines | |
Ferreira et al. | Unfolding and folding: a new approach for code restructuring targeting HLS for FPGAs | |
Campos et al. | On data parallelism code restructuring for HLS targeting FPGAs | |
Vogt et al. | GCC-plugin for automated accelerator generation and integration on hybrid FPGA-SoCs | |
Ferreira et al. | Graph-based code restructuring targeting HLS for FPGAs | |
Hohenauer et al. | C Compilers for ASIPs | |
EP3611613A1 (en) | Method and apparatus for optimizing code for field programmable gate arrays | |
Lloyd et al. | A case for better integration of host and target compilation when using OpenCL for FPGAs | |
Nawaz et al. | Recursive variable expansion: A loop transformation for reconfigurable systems | |
Ferreira | Restructuring Software Code for High-Level Synthesis Using a Graph-based Approach Targeting FPGAs | |
Majumder et al. | Automatic multi-dimensional pipelining for high-level synthesis of dataflow accelerators | |
Ammar et al. | Heterogeneity of abstractions in EDA tools: Reviewing models of computation for many-core systems targeting intensive signal processing applications | |
Fischer et al. | BUILDABONG: A framework for architecture/compiler co-exploration for ASIPs |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20210218 Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20210407 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20210729 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20211020 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20220803 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20230622 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20230627 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20230927 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20231120 |
|
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: 20231205 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20231218 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7407192 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |