JP2015001807A - 並列化コンパイル方法、並列化コンパイラ、並列化コンパイル装置、及び、車載装置 - Google Patents
並列化コンパイル方法、並列化コンパイラ、並列化コンパイル装置、及び、車載装置 Download PDFInfo
- Publication number
- JP2015001807A JP2015001807A JP2013125607A JP2013125607A JP2015001807A JP 2015001807 A JP2015001807 A JP 2015001807A JP 2013125607 A JP2013125607 A JP 2013125607A JP 2013125607 A JP2013125607 A JP 2013125607A JP 2015001807 A JP2015001807 A JP 2015001807A
- Authority
- JP
- Japan
- Prior art keywords
- task
- executed
- procedure
- parallel
- macro
- 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.)
- Granted
Links
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/45—Exploiting coarse grain parallelism in compilation, i.e. parallelism between groups of instructions
-
- 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/45—Exploiting coarse grain parallelism in compilation, i.e. parallelism between groups of instructions
- G06F8/451—Code distribution
- G06F8/452—Loops
-
- 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/45—Exploiting coarse grain parallelism in compilation, i.e. parallelism between groups of instructions
- G06F8/456—Parallelism detection
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
Description
しかし、車載装置用の組込みシステム向けの逐次プログラムは、ループ構造が存在しないか、或いは非常に少なく、主に条件分岐と代入文から構造されているため、中粒度並列化(ループ内イタレーションレベルの並列化)を適用することはできない。さらに、処理が非常に細かいため、マルチプロセッサシステムにより並列実行される際のオーバーヘッドを抑える必要がある。
本実施形態の自動並列化コンパイラ1は、組込みシステム向けのシングルプロセッサシステム用のソースプログラム(逐次プログラム)から、組込みシステム向けのマルチプロセッサシステム用の並列化プログラムを生成する機能を有している。
本実施形態の自動並列化コンパイラ1は、以下の機能を有している。
(1)マルチグレイン並列処理
(2)コンパイル時のスタティックスケジューリングコードの挿入
(3)実行時のダイナミックスケジューリングコードの生成
(4)階層型マクロデータフローの実現
(5)マクロタスクの分割/融合,Loop distribution/interchange等の並列性抽出
(6)データローカライズによるデータ転送効率の向上
(7)コンパイラによる電力削減
1−2.自動並列化コンパイラの内部処理
自動並列化コンパイラ1は、Front End(FE3),Middle Path(MP5),Back End(BE7)の3つのステージを有している(図1参照)。各ステージは実行形態として独立しており、FE3,MP5から生成される中間言語4,6(Intermediate language)によりコード授受が行われる。
自動並列化コンパイラ1は、逐次プログラムを、基本ブロック(BB),繰り返しブロック(RB),サブルーチンブロック(SB)の3種類の粗粒度タスク(マクロタスク(MT))に分割するマクロデータフロー処理を行う。
そこで、自動並列化コンパイラ1では、従来の単階層マクロデータフロー処理手法を拡張し、MT内部に対してマクロデータフロー処理を階層的に利用する階層型マクロデータフロー処理を採用している。階層的マクロデータフロー処理では、図2に示すようなMTの階層的な定義を行う。その上で、生成された各階層のマクロタスクに対して、マクロタスク間の並列性の解析を行う。
自動並列化コンパイラ1は、まず、生成された各階層のマクロタスクに対して、マクロタスク間の制御依存性とデータ依存性を解析する。この解析結果は、マクロフローグラフ(MFG)として表される(図3参照)。
MFGは、マクロタスク間の制御依存性とデータ依存性を表すが、並列性は表していない。並列性を抽出するためには、各マクロタスクに対し、制御依存性とデータ依存性の両方を考慮した最早実行可能条件解析を行う必要がある。最早実行可能条件とは、そのMTが最も早い時点で実行可能になる条件であり、次のような実行条件から求められる。
(2)MTjの条件分岐先が確定すれば、MTjの実行が終了しなくても、MTjに制御依存するMTiは実行できる。
(MTiが制御依存するMTjがMTiに分岐する)
AND
((MTiがデータ依存するMTk(0≦k≦|N|))が終了)OR(MTkが実行されないことが決定する))
例えば、図3のMFGのMT6の最早実行可能条件は、次のようになる。
AND
((MT3が終了する)OR(MT1がMT2に分岐))
MFGにおける制御依存性を考えると、MT3が終了するということは、MT1はMT3に分岐したということを含み、また、MT2がMT4に分岐するということは、MT1はMT2に分岐しているので、この条件は、簡略化されて次のようになる。
マクロタスクの最早実行可能条件は、図4に示すようなマクロタスクグラフ(MTG)で表される。
1−4.マルチグレイン並列処理
自動並列化コンパイラ1では、従来のループ並列化に加え、ループ間,サブルーチン間における粗粒度タスク間の並列性を利用する粗粒度タスク並列処理や、ステートメント間の並列性を利用する近細粒度並列処理を効果的に組み合わせたマルチグレイン並列処理(参考文献1(本多弘樹, 岩田雅彦, 笠原博徳、「Fortranプログラム粗粒度タスク間の並列性検出手法」、電子情報通信学会論文誌、1990年)参照)を実現している。
自動並列化コンパイラ1は、BB,RB,SB等のMT間の制御依存性とデータ依存性を表現したマクロフローグラフ(MFG)を生成し、さらに、MFGから最早実行可能条件解析により引きだしたMT間の並列性を、マクロタスクグラフ(MTG)として表現する(参考文献1,参考文献2(笠原,合田,吉田,岡本,本多、「Fortranマクロデータフロー処理のマクロタスク生成手法」、信学論、1992年、Vol.J75-D-I、No.8、pp.511-525)参照)。
<中粒度並列処理>
PGに割り当てられたMTが、DOALLループ、或いはイタレーションレベルで並列処理が可能なものであれば、そのMTには、プロセッサクラスタ内のプロセッサによって中粒度並列処理がなされる。この中粒度並列処理は、DOループイタレーション間の並列性を利用する並列処理のことであり、マルチプロセッサにおける並列処理では最も一般的なものである。
ステートメントレベルの近細粒度タスクに対する並列処理を、近細粒度並列処理という。これによって、依存の無いステートメントも並列実行が可能になり、実行時間が短縮される。これが行われるのは、分岐のない逐次実行される基本ブロックと、シーケンシャルループ内のボディ部である。近細粒度並列処理では、ステートメントを、コンパイラによるスタティックスケジューリングによって各PEに割り当て、自動並列化コンパイラ1は、各PE用のマクロタスクコードとして、必要な同期,データ転送コードと共に割り当てられたステートメントのみを生成する。近細粒度並列処理は、ステートメントという小さな粒度のタスクを用いた並列処理であり、タスクの実行時間は短いものが多い。したがって、効率的に行うためには、PE間の高速なデータ転送がサポートされていることが必要である。
粗粒度タスク並列処理では、各階層で生成されたマクロタスクは、PGに割り当てられて実行される。どのPGにマクロタスクを割り当てるかを決定するスケジューリング手法として、下記のダイナミックスケジューリングとスタティックスケジューリングがあり、これらは、マクロタスクグラフの形状や実行時非決定性等を元に選択される。
条件分岐等の実行時不確定性が存在する場合には、ダイナミックスケジューリングによって実行時にマクロタスクをPGに割り当てる。ダイナミックスケジューリングルーチンは、マクロタスクの終了や分岐方向の決定に応じてマクロタスク実行管理テーブルを操作し、各マクロタスクの最早実行可能条件を検査する。
一方、スタティックスケジューリングは、マクロタスクグラフがデータ依存エッジのみを持つ場合に使用され、自動並列化コンパイラ1が、コンパイル時にPGへのマクロタスクの割り当てを決める方式である。
1−6.データローカライゼーション
自動並列化コンパイラ1は、プログラム全域に渡るキャッシュ最適化を行うことが可能である。自動並列化コンパイラ1は、ループ間などの並列性を解析した後、図7の網掛けされた6つのMT2,3,7,8,11,14が、実線で示すデータ依存エッジで結ばれたマクロタスクグラフのようにループ間にデータ依存があることが分かると、依存があるループ間でのキャッシュのグローバル最適化を試みる(参考文献3(特許第4177681号公報)参照)。
(1)任意のサイズのローカルメモリ或いは分散共有メモリが与えられた時に、DMA(DTU)(参考文献4(特許第4476267号公報)参照)を用いアクセスされる前に、前記プロセッサに近接したローカル或いは分散共有メモリに事前ロードし、プログラム全域で再利用する。
1−7.自動並列化コンパイラによる電力削減
自動並列化コンパイラ1では、タスクのプロセッサへのスケジュール結果を解析し、自動的に各プロセッサの周波数電圧制御、パワーゲーティング制御により電力を削減することが可能である。
自動並列化コンパイラ1における並列化プログラムの生成は、自動並列化API(参考文献7(早稲田大学、「Optimally Scheduled Advanced Multiprocessor Application Program Interface」、2008年)参照)を用い、並列化C或いは並列化Fortranのような、source-to-sourceで並列化を行うことが可能である。
自動並列化APIは、後述する情報家電用のマルチコアアーキテクチャを意識したものであり、共有メモリ型マルチコアプロセッサで要求される、データのメモリ配置,DMAを用いたデータ転送,電力制御,グループバリア同期,リアルタイム制御を行うことができる。
例えば、自動並列化コンパイラ1を用いることにより、Fortran77或いはポインタ利用等に制限をつけた逐次Cプログラムを、自動的に自動並列化APIを加えた並列化Fortran 或いはCプログラムに翻訳できる。この並列化プログラムをサーバ上で動作させるときには、OpenMPコンパイラを通すことにより実行バイナリを生成することができる。
また、“dma transfer”はデータ転送APIで、“dma contiguous parameter”はDTUによる連続転送を表すAPIである。具体的には、該連続転送APIは、第1引数が転送元アドレス,第2引数が転送先アドレス,第3引数が転送サイズ,第4引数が転送終了時に値が設定されるフラグ変数,第5引数がフラグに設定する値となっている。
自動並列化API標準解釈系とは、自動並列化コンパイラ1で生成した並列化プログラムのポータビリティの実現を図るためのものである。自動並列化コンパイラ1は、生成した並列化プログラムを多様なアーキテクチャで動作させるため、自動並列化API標準解釈系により生成コードをランタイムライブラリに変換し、様々なプラットフォームに合わせた並列化プログラムを生成することができる。
1−11.マルチコアアーキテクチャについて
マルチコアプロセッサにおけるメモリアーキテクチャであるローカルメモリアーキテクチャは、キャッシュアーキテクチャとは異なり、ソフトウェア上で明示的なローカルメモリ管理を行うことで性能を引き出すことが可能である。
本実施形態の自動並列化API標準解釈系70は、自動並列化APIを含むCプログラム71(或いはFortranプログラム)を入力とし、設定ファイル72の設定に従いランタイムライブラリ関数を含むCプログラム73(或いはFortranプログラム)を出力する(図14参照)。
自動並列化APIの指示文は、Cプログラムでは“pragma”により記述されるが、これらの自動並列化APIの指示文は、自動並列化API標準解釈系によりランタイムライブラリ関数へ変換される。
図15の自動並列化APIの指示文では、“parallel subsections指示文”により4つのスレッドを生成している。図16のソースプログラムのように、自動並列化API標準解釈系では、スレッドとして実行するプログラム部分を、“thread_function_000〜003”という関数として切り出す。これらの切り出された関数のうち、“thread_function_001〜003”は、“oscar_thread_create関数”によりスレッドとして実行し、“thread_function_000”は、そのまま通常の関数として実行する。最後に、“oscar_thread_join”関数により、スレッド終了の待ち合わせを行う。
“thread private 指示文”等のメモリ配置指定は、ランタイムライブラリでは実現できない。そのため、これらのメモリ配置指定は、ネイティブコンパイラ用のメモリ属性指定の記述に変換する必要がある。
次に、モデルベース設計で自動生成された自動車制御プログラムの特徴について述べ、自動並列化コンパイラ1による並列化手法について説明する。
自動並列化コンパイラ1は、例えば、DVD,CD−ROM,USBメモリ,メモリカード(登録商標)等の光ディスク,磁気ディスク,半導体製メモリ等として構成された記憶媒体180に記憶された状態で、ユーザに提供される(図17参照)。無論、ネットワークを経由してユーザに提供されても良い。
また、入力装置160は、キーボード、マウス等から構成され、ユーザが操作することにより、その操作に応じた信号をCPU130に出力する。
また、RAM150は読み出し、書き込み可能な揮発性メモリであり、ROM140は読み出し専用の不揮発性メモリであり、HDD120は読み出し,書き込みが可能な不揮発性メモリである。ROM140,HDD120には、CPU130が読み出して実行するプログラム等が予め記憶されている。
本実施形態では、自動並列化コンパイラ1は、一例として、MathWork社のMatlab(登録商標),Simulink(登録商標)にてモデルベース設計により自動生成された自動車制御プログラム(逐次プログラム)から並列化プログラムを生成する。
また、マクロタスクの粒度を細かくするためには、S215での処理のように、始端タスクを始点として順次実行される複数の一連の処理の全てにおいて共通して実行されるマクロタスクのうち、最初に実行されるマクロタスクを終端タスクとして特定するのが好適である。しかし、これに限らず、これらのマクロタスクのうち、2番目以降に実行されるいずれか一つのマクロタスクを終端タスクとして特定しても良い。
2−3.自動車制御プログラムの特徴
例えば、エンジン制御を行う自動車制御プログラムは、基本的に、初期化関数と、繰り返し実行される主要エンジン制御計算関数から構成される。
そこで、自動並列化コンパイラ1は、Simulinkモデルから自動生成された自動車制御プログラムから十分に並列性を抽出し、よりオーバーヘッドを低くした状態で並列化が可能になるように、プログラムのリストラクチャリングを行う。
自動車制御プログラムは、処理が細かく、粗い粒度での並列化が困難であるため、制御関数内のサブルーチン内の並列性をも有効活用すべきである。このため、自動並列化コンパイラ1は、制御関数内のサブルーチンのインライン展開を行う(サブルーチンをコールする記述を、該サブルーチンにて定義されている処理の記述に置き換える)。
Simulinkモデルから自動生成された自動車制御プログラムでは、ROM使用量削減のため、多くの箇所でローカル変数が繰り返し使用されている。一例として、図24に記載の自動車制御プログラムでは、複数の箇所330,331でローカル変数“tmp”が繰り返し使用されている。
上述したように、自動車制御プログラムにはループ構造が存在しないため、近細粒度並列化か粗粒度タスク並列化を適用することが考えられるが、実行オーバーヘッドを相対的に小さく抑えるため、自動並列化コンパイラ1は、粗粒度タスク並列化を適用する。
また、“bb1”を始点とする一連の処理として、“bb1”,“bb2”,“bb4”…と、“bb1”,“bb3”,“bb4”…とが特定される。また、これらの一連の処理において共通して実行されるマクロタスクのうち、最初に実行される“bb4”が、終端タスクとして特定される。
3.性能評価について
次に、本実施形態の自動並列化コンパイラ1により生成された並列化プログラムにより動作するマルチコアプロセッサが搭載された車載装置の性能評価の結果について説明する。
まず、自動並列化コンパイラ1により生成された並列化プログラムにより動作するエンジン制御ECU400の構成について説明する(図29参照)。
ROM410は、自動並列化コンパイラ1により生成された並列化プログラムのバイナリデータを保存する部位であり、マルチコアプロセッサ440は、該バイナリデータに従い動作し、エンジン制御ECU400を統括制御する。
また、通信部430は、車内LAN等を介して接続された他のECUと通信を行う部位である。
また、入出力ポート460は、エンジン470を制御するための各種信号の送受信を行う部位である。
エンジン制御ECU400の制御システムのモデルは、ECUモデル,Driverモデル,Carモデル,Sensorモデルの4つのサブシステムを有している。マルチコアプロセッサ440としてRP2とV850E2Rを用いた場合における、エンジン制御ECU400の制御システム全体の性能評価や、各サブシステムの性能評価の結果について説明する。
まず、ECUモデル,Driverモデル,Sensorモデル,Carモデルを、2コアにより並列動作するRP2と、1コアにより逐次動作するRP2により動作させた。なお、これらのモデルから生成されたプログラムには、サイズ優先の最適化が施されている。
また、ECUモデルを、2コアにより並列動作するV850E2Rと、1コアにより逐次動作するV850E2Rにより動作させた。なお、ECUモデルから生成されたプログラムには、サイズ優先の最適化が施されている。
3−3.エンジン燃料噴射制御モデルでの評価結果について
また、自動並列化コンパイラ1によりエンジン燃料噴射制御モデルから生成された並列化プログラムを、RP2とV850E2Rで動作させた場合の性能評価の結果について説明する。
エンジン燃料噴射制御モデルを、4コアにより並列動作するRP2と、2コアにより並列動作するRP2と、1コアにより逐次動作するRP2により動作させた。なお、エンジン燃料噴射制御モデルから生成されたプログラムには、サイズ優先の最適化が施されている。
また、エンジン燃料噴射制御モデルを、2コアにより並列動作するV850E2Rと、1コアにより逐次動作するV850E2Rにより動作させた。なお、エンジン燃料噴射制御モデルから生成されたプログラムには、サイズ優先の最適化が施されている。
[他の実施形態]
(1)本実施形態の自動並列化コンパイラ1は、自動並列化処理のS200にて逐次プログラムのインライン展開を行うと共に、S205にてローカル変数のリネームを行うが、これらの処理の双方または一方を行わない構成としても良い。このような場合であっても、逐次プログラムの構造によっては、同様の効果が得られる。
上記実施形態の説明で用いた用語と、特許請求の範囲の記載に用いた用語との対応を示す。
また、S210が、並列化コンパイル方法,並列化コンパイラの分割手順と、並列化コンパイル装置の分割手段の一例に、S215が、並列化コンパイル方法,並列化コンパイラの特定手順,融合手順と、並列化コンパイル装置の特定手段,融合手段の一例に相当に相当する。
また、PE,PG,プロセッサコアが、プロセッサユニットの一例に相当する。
Claims (6)
- シングルプロセッサシステムにより実行される車載装置向けの組込みシステム用の逐次プログラムを、予め定められた方法に従い複数のマクロタスクに分割する分割手順(S210)と、
前記マクロタスク間の制御依存性に基づき、異なる前記マクロタスクに分岐する処理を有する前記マクロタスクを始端タスクとして特定すると共に、該始端タスクを始点として順次実行される複数の一連の処理の全てにおいて共通して実行される前記マクロタスクのうちのいずれか一つを終端タスクとして特定する特定手順(S215)と、
前記特定手順により特定された前記始端タスクと、該始端タスクを始点とする処理における前記終端タスクと、該始端タスクの実行後であって、該終端タスクの実行前に実行される全ての前記マクロタスクとを、新たな前記マクロタスクとして融合させる融合手順(S215)と、
前記融合手順による融合がなされた後の前記マクロタスク間のデータ依存性に基づき、車載装置に搭載されたマルチプロセッサシステムを構成する複数のプロセッサユニットにより並列実行可能な前記マクロタスクを抽出する抽出手順(S220)と、
並列実行可能な前記マクロタスクが異なる前記プロセッサユニットにより並列的に実行されるよう、それぞれの前記マクロタスクをいずれかの前記プロセッサユニットに割り当てるスタティックスケジューリングを行うスケジューリング手順(S225)と、
前記スタティックスケジューリングの結果に基づき、前記マルチプロセッサシステムにより実行される並列化プログラムを生成する生成手順(S225,S230)と、
を有することを特徴とする並列化コンパイル方法。 - 請求項1に記載の並列化コンパイル方法において、
前記逐次プログラムにおける関数をコールする記述を、該関数における処理の記述に置き換えるインライン展開を行う置換手順(S200)をさらに備え、
前記分割手順では、前記インライン展開がなされた前記逐次プログラムを、前記マクロタスクに分割すること、
を特徴とする並列化コンパイル方法。 - 請求項1または請求項2に記載の並列化コンパイル方法において、
前記逐次プログラムに記述された関数における特定の目的を実現するための記述の集まりを処理ブロックとし、関数における同一名称のローカル変数が用いられた異なる前記処理ブロックを特定すると共に、これらの処理ブロックにおいて異なる名称のローカル変数が用いられるよう、該関数の記述を変更するリネーム手順(S205)と、
前記特定手順では、前記リネーム手順によりローカル変数の名称の変更がなされた後に、前記マクロタスク間の制御依存性を解析し、前記始端タスクと前記終端タスクとを特定すること、
を特徴とする並列化コンパイル方法。 - シングルプロセッサシステムにより実行される車載装置向けの組込みシステム用の逐次プログラムを、予め定められた方法に従い複数のマクロタスクに分割する分割手順(S210)と、
前記マクロタスク間の制御依存性に基づき、異なる前記マクロタスクに分岐する処理を有する前記マクロタスクを始端タスクとして特定すると共に、該始端タスクを始点として順次実行される複数の一連の処理の全てにおいて共通して実行される前記マクロタスクのうちのいずれか一つを終端タスクとして特定する特定手順(S215)と、
前記特定手順により特定された前記始端タスクと、該始端タスクを始点とする処理における前記終端タスクと、該始端タスクの実行後であって、該終端タスクの実行前に実行される全ての前記マクロタスクとを、新たな前記マクロタスクとして融合させる融合手順(S215)と、
前記融合手順による融合がなされた後の前記マクロタスク間のデータ依存性に基づき、車載装置に搭載されたマルチプロセッサシステムを構成する複数のプロセッサユニットにより並列実行可能な前記マクロタスクを抽出する抽出手順(S220)と、
並列実行可能な前記マクロタスクが異なる前記プロセッサユニットにより並列的に実行されるよう、それぞれの前記マクロタスクをいずれかの前記プロセッサユニットに割り当てるスタティックスケジューリングを行うスケジューリング手順(S225)と、
前記スタティックスケジューリングの結果に基づき、前記マルチプロセッサシステムにより実行される並列化プログラムを生成する生成手順(S225,S230)と、
をコンピュータに実行させることを特徴とする並列化コンパイラ。 - シングルプロセッサシステムにより実行される車載装置向けの組込みシステム用の逐次プログラムを、予め定められた方法に従い複数のマクロタスクに分割する分割手段(S210)と、
前記マクロタスク間の制御依存性に基づき、異なる前記マクロタスクに分岐する処理を有する前記マクロタスクを始端タスクとして特定すると共に、該始端タスクを始点として順次実行される複数の一連の処理の全てにおいて共通して実行される前記マクロタスクのうちのいずれか一つを終端タスクとして特定する特定手段(S215)と、
前記特定手段により特定された前記始端タスクと、該始端タスクを始点とする処理における前記終端タスクと、該始端タスクの実行後であって、該終端タスクの実行前に実行される全ての前記マクロタスクとを、新たな前記マクロタスクとして融合させる融合手段(S215)と、
前記融合手段による融合がなされた後の前記マクロタスク間のデータ依存性に基づき、車載装置に搭載されたマルチプロセッサシステムを構成する複数のプロセッサユニットにより並列実行可能な前記マクロタスクを抽出する抽出手段(S220)と、
並列実行可能な前記マクロタスクが異なる前記プロセッサユニットにより並列的に実行されるよう、それぞれの前記マクロタスクをいずれかの前記プロセッサユニットに割り当てるスタティックスケジューリングを行うスケジューリング手段(S225)と、
前記スタティックスケジューリングの結果に基づき、前記マルチプロセッサシステムにより実行される並列化プログラムを生成する生成手段(S225,S230)と、
を備えることを特徴とする並列化コンパイル装置。 - シングルプロセッサシステムにより実行される車載装置向けの組込みシステム用の逐次プログラムを、予め定められた方法に従い複数のマクロタスクに分割する分割手順(S210)と、
前記マクロタスク間の制御依存性に基づき、異なる前記マクロタスクに分岐する処理を有する前記マクロタスクを始端タスクとして特定すると共に、該始端タスクを始点として順次実行される複数の一連の処理の全てにおいて共通して実行される前記マクロタスクのうちのいずれか一つを終端タスクとして特定する特定手順(S215)と、
前記特定手順により特定された前記始端タスクと、該始端タスクを始点とする処理における前記終端タスクと、該始端タスクの実行後であって、該終端タスクの実行前に実行される全ての前記マクロタスクとを、新たな前記マクロタスクとして融合させる融合手順(S215)と、
前記融合手順による融合がなされた後の前記マクロタスク間のデータ依存性に基づき、車載装置に搭載されたマルチプロセッサシステムを構成する複数のプロセッサユニットにより並列実行可能な前記マクロタスクを抽出する抽出手順(S220)と、
並列実行可能な前記マクロタスクが異なる前記プロセッサユニットにより並列的に実行されるよう、それぞれの前記マクロタスクをいずれかの前記プロセッサユニットに割り当てるスタティックスケジューリングを行うスケジューリング手順(S225)と、
前記スタティックスケジューリングの結果に基づき、前記マルチプロセッサシステムにより実行される並列化プログラムを生成する生成手順(S225,S230)と、
を有する並列化コンパイル方法により生成された前記並列化プログラムにより動作する前記マルチプロセッサシステムを備えることを特徴とする車載装置(400)。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013125607A JP6018022B2 (ja) | 2013-06-14 | 2013-06-14 | 並列化コンパイル方法、並列化コンパイラ、並列化コンパイル装置、及び、車載装置 |
DE102014211047.5A DE102014211047A1 (de) | 2013-06-14 | 2014-06-10 | Parallelisierungskompilierverfahren, Parallelisierungskompilierer, Parallelisierungskompiliervorrichtung und Bordvorrichtung |
US14/302,886 US9760355B2 (en) | 2013-06-14 | 2014-06-12 | Parallelizing compile method, parallelizing compiler, parallelizing compile apparatus, and onboard apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013125607A JP6018022B2 (ja) | 2013-06-14 | 2013-06-14 | 並列化コンパイル方法、並列化コンパイラ、並列化コンパイル装置、及び、車載装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2015001807A true JP2015001807A (ja) | 2015-01-05 |
JP6018022B2 JP6018022B2 (ja) | 2016-11-02 |
Family
ID=52009970
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013125607A Active JP6018022B2 (ja) | 2013-06-14 | 2013-06-14 | 並列化コンパイル方法、並列化コンパイラ、並列化コンパイル装置、及び、車載装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9760355B2 (ja) |
JP (1) | JP6018022B2 (ja) |
DE (1) | DE102014211047A1 (ja) |
Cited By (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016143378A (ja) * | 2015-02-05 | 2016-08-08 | 株式会社デンソー | 並列化コンパイル方法、並列化コンパイラ、及び、電子装置 |
JP2016143377A (ja) * | 2015-02-05 | 2016-08-08 | 株式会社デンソー | 並列化コンパイル方法、並列化コンパイラ、及び、電子装置 |
DE102016204970A1 (de) | 2015-03-31 | 2016-10-06 | Denso Corporation | Parallelisierungskompilierverfahren, Parallelisierungskomplierer und Fahrzeugvorrichtung |
DE102016204963A1 (de) | 2015-03-31 | 2016-10-06 | Denso Corporation | Parallelisierungskompilierverfahren, Parallelisierungskompilierer und Fahrzeugvorrichtung |
DE102016204960A1 (de) | 2015-03-31 | 2016-10-06 | Denso Corporation | Parallelisierungskompilierverfahren, Parallelisierungskompilierer und Fahrzeugvorrichtung |
DE102016208339A1 (de) | 2015-05-14 | 2016-11-17 | Denso Corporation | Parallelisierungskompilierverfahren, parallelisierungskompilierer und fahrzeuggebundene vorrichtung |
DE102016208178A1 (de) | 2015-05-18 | 2016-11-24 | Denso Corporation | Softwaresegmentierungsverfahren, Softwaresegmentierungsvorrichtung und fahrzeugeigene Vorrichtung |
DE102016216298A1 (de) | 2015-09-11 | 2017-03-16 | Denso Corporation | Parallelisierungsverfahren, parallelisierungstool und an einem fahrzeug befestigte vorrichtung |
JP2017073000A (ja) * | 2015-10-07 | 2017-04-13 | 株式会社デンソー | 並列化方法、並列化ツール、車載装置 |
DE102016219721A1 (de) | 2015-10-12 | 2017-04-13 | Denso Corporation | Parallelisierungsverfahren, parallelisierungswerkzeug und fahrzeugverbaute einrichtung |
JP2017073083A (ja) * | 2015-10-09 | 2017-04-13 | 株式会社デンソー | 並列化方法、並列化ツール、車載装置 |
DE102016220340A1 (de) | 2015-10-20 | 2017-04-20 | Denso Corporation | Parallelisierungsverfahren, parallelisierungswerkzeug und fahrzeugverbaute einrichtung |
DE102016221570A1 (de) | 2015-11-06 | 2017-05-11 | Denso Corporation | Parallelisierungsverfahren, parallelisierungswerkzeug und fahrzeugverbaute einrichtung |
DE102016223939A1 (de) | 2015-12-10 | 2017-06-14 | Denso Corporation | Parallelisierungsverfahren, Parallelisierungswerkzeug und fahrzeugeigene Vorrichtung |
DE102017209697A1 (de) | 2016-06-13 | 2017-12-14 | Denso Corporation | Parallelisierungsverfahren, Parallelisierungswerkzeug und fahrzeuginterne Vorrichtung |
DE102017209285A1 (de) | 2016-06-13 | 2017-12-14 | Denso Corporation | Parallelization method, parallelization tool, and in-vehicle device |
DE102017210126A1 (de) | 2016-06-21 | 2017-12-21 | Denso Corporation | Parallelisierungsverfahren, Parallelisierungswerkzeug und fahrzeuginterne Vorrichtung |
EP3343351A1 (en) | 2016-12-28 | 2018-07-04 | Waseda University | Parallel program generating method and parallelization compiling apparatus |
JP2018109943A (ja) * | 2016-12-28 | 2018-07-12 | 学校法人早稲田大学 | 並列化コンパイラ、並列化コンパイル装置、及び並列プログラムの生成方法 |
DE102017220181A1 (de) | 2017-01-31 | 2018-08-02 | Denso Corporation | Parallelisierungsverfahren, Parallelisierungstool und fahrzeuginterne Steuervorrichtung |
DE102017222292A1 (de) | 2017-02-02 | 2018-08-02 | Denso Corporation | Parallelisierungsverfahren, parallelisierungs-tool und fahrzeuginterne steuervorrichtung |
DE102018214521A1 (de) | 2017-09-07 | 2019-03-07 | Denso Corporation | Parallelisierverfahren, Parallelisierwerkzeug und Fahrzeugvorrichtung |
JP2019040317A (ja) * | 2017-08-23 | 2019-03-14 | 富士通株式会社 | 情報処理装置、コンパイル方法及びコンパイルプログラム |
JP2019074851A (ja) * | 2017-10-13 | 2019-05-16 | 株式会社デンソー | 電子制御装置 |
DE102019202228A1 (de) | 2018-02-21 | 2019-08-22 | Denso Corporation | Parallelisierungsverfahren, Parallelisierungswerkzeug, Mehrkernmikrocomputer und fahrzeuginterne Vorrichtung |
DE102019202870A1 (de) | 2018-03-14 | 2019-09-19 | Denso Corporation | Parallelisierungsverfahren, Parallelisierungswerkzeug und Multikernmikrocomputer |
DE102019205674A1 (de) | 2018-04-24 | 2019-10-24 | Denso Corporation | Parallelisierverfahren, Parallelisierwerkzeug und Mehrkern-Microcomputer |
DE102019207629A1 (de) | 2018-06-14 | 2019-12-19 | Denso Corporation | Mehrkernmikrocomputer und Parallelisierungsverfahren |
WO2023238276A1 (ja) * | 2022-06-08 | 2023-12-14 | 三菱電機株式会社 | 情報処理装置および情報処理方法 |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6481515B2 (ja) * | 2015-05-29 | 2019-03-13 | 富士通株式会社 | 情報処理装置、コンパイル方法、及びコンパイラプログラム |
US10996989B2 (en) * | 2016-06-13 | 2021-05-04 | International Business Machines Corporation | Flexible optimized data handling in systems with multiple memories |
US10671361B2 (en) * | 2016-10-25 | 2020-06-02 | Paypal, Inc. | Automatically determining data dependencies to facilitate code execution |
CN106874031B (zh) * | 2017-01-03 | 2020-08-28 | 海信视像科技股份有限公司 | 一种终端设备系统程序的启动方法及装置 |
US11496506B2 (en) * | 2017-07-03 | 2022-11-08 | Denso Corporation | Program generation method and electronic control unit for changing importance of functions based on detected operation state in a vehicle |
US10628142B2 (en) * | 2017-07-20 | 2020-04-21 | Texas Instruments Incorporated | Loop break |
US10884720B2 (en) * | 2018-10-04 | 2021-01-05 | Microsoft Technology Licensing, Llc | Memory ordering annotations for binary emulation |
WO2023177320A1 (en) * | 2022-03-17 | 2023-09-21 | Huawei Technologies Co., Ltd | Smt core controller, compiler, and methods for executeting compiled run-time code on smt core controller |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH02163833A (ja) * | 1988-12-16 | 1990-06-25 | Matsushita Electric Ind Co Ltd | プログラム繰り返し構造のブロック分割方法並びに同期処理位置決定方法及びプログラム変換装置 |
JP2007328416A (ja) * | 2006-06-06 | 2007-12-20 | Univ Waseda | ヘテロジニアスマルチプロセッサ向けグローバルコンパイラ |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04177681A (ja) | 1990-11-13 | 1992-06-24 | Canon Inc | テープカセット |
JP4177681B2 (ja) | 2003-02-20 | 2008-11-05 | 学校法人早稲田大学 | コンパイル方法、コンパイラ、およびコンパイル装置 |
JP4082706B2 (ja) | 2005-04-12 | 2008-04-30 | 学校法人早稲田大学 | マルチプロセッサシステム及びマルチグレイン並列化コンパイラ |
JP4936517B2 (ja) * | 2006-06-06 | 2012-05-23 | 学校法人早稲田大学 | ヘテロジニアス・マルチプロセッサシステムの制御方法及びマルチグレイン並列化コンパイラ |
US8261270B2 (en) * | 2006-06-20 | 2012-09-04 | Google Inc. | Systems and methods for generating reference results using a parallel-processing computer system |
US8136102B2 (en) * | 2006-06-20 | 2012-03-13 | Google Inc. | Systems and methods for compiling an application for a parallel-processing computer system |
JP4476267B2 (ja) | 2006-10-06 | 2010-06-09 | 株式会社日立製作所 | プロセッサ及びデータ転送ユニット |
JP5224498B2 (ja) | 2007-02-28 | 2013-07-03 | 学校法人早稲田大学 | メモリ管理方法、情報処理装置、プログラムの作成方法及びプログラム |
JP2009069921A (ja) * | 2007-09-11 | 2009-04-02 | Hitachi Ltd | マルチプロセッサシステム |
EP2065803A1 (en) * | 2007-11-30 | 2009-06-03 | Neutrino Concepts Ltd. | Parallel pipelining and width processing |
JP4784842B2 (ja) | 2008-03-31 | 2011-10-05 | 学校法人早稲田大学 | マルチプロセッサ及びマルチプロセッサシステム |
JP4629768B2 (ja) | 2008-12-03 | 2011-02-09 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 並列化処理方法、システム、及びプログラム |
JP4931978B2 (ja) | 2009-10-06 | 2012-05-16 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 並列化処理方法、システム、及びプログラム |
US20110271265A1 (en) * | 2010-04-28 | 2011-11-03 | Drozdov Alexander Y | Method of automatic generation of executable code for multi-core parallel processing |
US8799880B2 (en) * | 2011-04-08 | 2014-08-05 | Siemens Aktiengesellschaft | Parallelization of PLC programs for operation in multi-processor environments |
-
2013
- 2013-06-14 JP JP2013125607A patent/JP6018022B2/ja active Active
-
2014
- 2014-06-10 DE DE102014211047.5A patent/DE102014211047A1/de active Pending
- 2014-06-12 US US14/302,886 patent/US9760355B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH02163833A (ja) * | 1988-12-16 | 1990-06-25 | Matsushita Electric Ind Co Ltd | プログラム繰り返し構造のブロック分割方法並びに同期処理位置決定方法及びプログラム変換装置 |
JP2007328416A (ja) * | 2006-06-06 | 2007-12-20 | Univ Waseda | ヘテロジニアスマルチプロセッサ向けグローバルコンパイラ |
Non-Patent Citations (2)
Title |
---|
JPN6016033818; 金羽木 洋平 外6名: '「自動車エンジン制御ソフトウェアにおけるマルチコア上での並列処理」' 情報処理学会研究報告 2012(平成24)年度(5)[CD-ROM] , 20130215, pp.1-8, 一般社団法人情報処理学会 * |
JPN6016033819; 笠原 博徳 外4名: '「Fortranマクロデータフロー処理のマクロタスク生成手法」' 電子情報通信学会論文誌 第J75-D-I巻,第8号, 19920825, pp.511-525, 社団法人電子情報通信学会 * |
Cited By (45)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016143378A (ja) * | 2015-02-05 | 2016-08-08 | 株式会社デンソー | 並列化コンパイル方法、並列化コンパイラ、及び、電子装置 |
JP2016143377A (ja) * | 2015-02-05 | 2016-08-08 | 株式会社デンソー | 並列化コンパイル方法、並列化コンパイラ、及び、電子装置 |
DE102016204970A1 (de) | 2015-03-31 | 2016-10-06 | Denso Corporation | Parallelisierungskompilierverfahren, Parallelisierungskomplierer und Fahrzeugvorrichtung |
DE102016204963A1 (de) | 2015-03-31 | 2016-10-06 | Denso Corporation | Parallelisierungskompilierverfahren, Parallelisierungskompilierer und Fahrzeugvorrichtung |
DE102016204960A1 (de) | 2015-03-31 | 2016-10-06 | Denso Corporation | Parallelisierungskompilierverfahren, Parallelisierungskompilierer und Fahrzeugvorrichtung |
JP2016192154A (ja) * | 2015-03-31 | 2016-11-10 | 株式会社デンソー | 並列化コンパイル方法、並列化コンパイラ、及び車載装置 |
JP2016192152A (ja) * | 2015-03-31 | 2016-11-10 | 株式会社デンソー | 並列化コンパイル方法、並列化コンパイラ、及び車載装置 |
JP2016192153A (ja) * | 2015-03-31 | 2016-11-10 | 株式会社デンソー | 並列化コンパイル方法、並列化コンパイラ、及び車載装置 |
JP2016218503A (ja) * | 2015-05-14 | 2016-12-22 | 株式会社デンソー | 並列化コンパイル方法、並列化コンパイラ、及び車載装置 |
DE102016208339A1 (de) | 2015-05-14 | 2016-11-17 | Denso Corporation | Parallelisierungskompilierverfahren, parallelisierungskompilierer und fahrzeuggebundene vorrichtung |
DE102016208178A1 (de) | 2015-05-18 | 2016-11-24 | Denso Corporation | Softwaresegmentierungsverfahren, Softwaresegmentierungsvorrichtung und fahrzeugeigene Vorrichtung |
DE102016216298A1 (de) | 2015-09-11 | 2017-03-16 | Denso Corporation | Parallelisierungsverfahren, parallelisierungstool und an einem fahrzeug befestigte vorrichtung |
JP2017054447A (ja) * | 2015-09-11 | 2017-03-16 | 株式会社デンソー | 並列化方法、並列化ツール、車載装置 |
DE102016219403A1 (de) | 2015-10-07 | 2017-04-13 | Denso Corporation | Parallelisierungsverarbeitung, parallelisierungswerkzeug und fahrzeuggebundene vorrichtung |
JP2017073000A (ja) * | 2015-10-07 | 2017-04-13 | 株式会社デンソー | 並列化方法、並列化ツール、車載装置 |
JP2017073083A (ja) * | 2015-10-09 | 2017-04-13 | 株式会社デンソー | 並列化方法、並列化ツール、車載装置 |
DE102016219449A1 (de) | 2015-10-09 | 2017-04-13 | Denso Corporation | Parallelisierungsverfahren, Parallelisierungswerkzeug und fahrzeugverbaute Einrichtung |
DE102016219721A1 (de) | 2015-10-12 | 2017-04-13 | Denso Corporation | Parallelisierungsverfahren, parallelisierungswerkzeug und fahrzeugverbaute einrichtung |
DE102016220340A1 (de) | 2015-10-20 | 2017-04-20 | Denso Corporation | Parallelisierungsverfahren, parallelisierungswerkzeug und fahrzeugverbaute einrichtung |
JP2017078938A (ja) * | 2015-10-20 | 2017-04-27 | 株式会社デンソー | 並列化方法、並列化ツール、車載装置 |
DE102016221570A1 (de) | 2015-11-06 | 2017-05-11 | Denso Corporation | Parallelisierungsverfahren, parallelisierungswerkzeug und fahrzeugverbaute einrichtung |
JP2017091098A (ja) * | 2015-11-06 | 2017-05-25 | 株式会社デンソー | 並列化方法、並列化ツール、車載装置 |
DE102016223939A1 (de) | 2015-12-10 | 2017-06-14 | Denso Corporation | Parallelisierungsverfahren, Parallelisierungswerkzeug und fahrzeugeigene Vorrichtung |
JP2017107448A (ja) * | 2015-12-10 | 2017-06-15 | 株式会社デンソー | 並列化方法、並列化ツール、車載装置 |
DE102017209697A1 (de) | 2016-06-13 | 2017-12-14 | Denso Corporation | Parallelisierungsverfahren, Parallelisierungswerkzeug und fahrzeuginterne Vorrichtung |
DE102017209285A1 (de) | 2016-06-13 | 2017-12-14 | Denso Corporation | Parallelization method, parallelization tool, and in-vehicle device |
JP2017224046A (ja) * | 2016-06-13 | 2017-12-21 | 株式会社デンソー | 並列化方法、並列化ツール、車載装置 |
DE102017210126A1 (de) | 2016-06-21 | 2017-12-21 | Denso Corporation | Parallelisierungsverfahren, Parallelisierungswerkzeug und fahrzeuginterne Vorrichtung |
EP3343351A1 (en) | 2016-12-28 | 2018-07-04 | Waseda University | Parallel program generating method and parallelization compiling apparatus |
CN108255492A (zh) * | 2016-12-28 | 2018-07-06 | 学校法人早稻田大学 | 并行程序的生成方法以及并行化编译装置 |
JP2018109943A (ja) * | 2016-12-28 | 2018-07-12 | 学校法人早稲田大学 | 並列化コンパイラ、並列化コンパイル装置、及び並列プログラムの生成方法 |
US10698670B2 (en) | 2016-12-28 | 2020-06-30 | Waseda University | Parallel program generating method and parallelization compiling apparatus |
DE102017220181A1 (de) | 2017-01-31 | 2018-08-02 | Denso Corporation | Parallelisierungsverfahren, Parallelisierungstool und fahrzeuginterne Steuervorrichtung |
JP2018124876A (ja) * | 2017-02-02 | 2018-08-09 | 株式会社デンソー | 並列化方法、並列化ツール、車載制御装置 |
DE102017222292A1 (de) | 2017-02-02 | 2018-08-02 | Denso Corporation | Parallelisierungsverfahren, parallelisierungs-tool und fahrzeuginterne steuervorrichtung |
JP2019040317A (ja) * | 2017-08-23 | 2019-03-14 | 富士通株式会社 | 情報処理装置、コンパイル方法及びコンパイルプログラム |
DE102018214521A1 (de) | 2017-09-07 | 2019-03-07 | Denso Corporation | Parallelisierverfahren, Parallelisierwerkzeug und Fahrzeugvorrichtung |
JP2019074851A (ja) * | 2017-10-13 | 2019-05-16 | 株式会社デンソー | 電子制御装置 |
DE102019202228A1 (de) | 2018-02-21 | 2019-08-22 | Denso Corporation | Parallelisierungsverfahren, Parallelisierungswerkzeug, Mehrkernmikrocomputer und fahrzeuginterne Vorrichtung |
DE102019202870A1 (de) | 2018-03-14 | 2019-09-19 | Denso Corporation | Parallelisierungsverfahren, Parallelisierungswerkzeug und Multikernmikrocomputer |
JP2019159931A (ja) * | 2018-03-14 | 2019-09-19 | 株式会社デンソー | 並列化方法、並列化ツール、及びマルチコアマイコン |
JP7139633B2 (ja) | 2018-03-14 | 2022-09-21 | 株式会社デンソー | 並列化方法、並列化ツール、及びマルチコアマイコン |
DE102019205674A1 (de) | 2018-04-24 | 2019-10-24 | Denso Corporation | Parallelisierverfahren, Parallelisierwerkzeug und Mehrkern-Microcomputer |
DE102019207629A1 (de) | 2018-06-14 | 2019-12-19 | Denso Corporation | Mehrkernmikrocomputer und Parallelisierungsverfahren |
WO2023238276A1 (ja) * | 2022-06-08 | 2023-12-14 | 三菱電機株式会社 | 情報処理装置および情報処理方法 |
Also Published As
Publication number | Publication date |
---|---|
DE102014211047A1 (de) | 2014-12-18 |
JP6018022B2 (ja) | 2016-11-02 |
US20140372995A1 (en) | 2014-12-18 |
US9760355B2 (en) | 2017-09-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6018022B2 (ja) | 並列化コンパイル方法、並列化コンパイラ、並列化コンパイル装置、及び、車載装置 | |
JP6319880B2 (ja) | 並列性の抽出方法及びプログラムの作成方法 | |
JP4936517B2 (ja) | ヘテロジニアス・マルチプロセッサシステムの制御方法及びマルチグレイン並列化コンパイラ | |
JP4784827B2 (ja) | ヘテロジニアスマルチプロセッサ向けグローバルコンパイラ | |
KR101839544B1 (ko) | 이종 코어의 자동 부하 균형 | |
Cong et al. | Source-to-source optimization for HLS | |
JP6427054B2 (ja) | 並列化コンパイル方法、及び並列化コンパイラ | |
Karim et al. | A multilevel computing architecture for embedded multimedia applications | |
Yazdanpanah et al. | Analysis of the task superscalar architecture hardware design | |
JP6427053B2 (ja) | 並列化コンパイル方法、及び並列化コンパイラ | |
JP6488739B2 (ja) | 並列化コンパイル方法、及び、並列化コンパイラ | |
JP6488738B2 (ja) | 並列化コンパイル方法、及び、並列化コンパイラ | |
Chandraiah et al. | Code and data structure partitioning for parallel and flexible MPSoC specification using designer-controlled recoding | |
Karim et al. | The Hyperprocessor: A template System-on-Chip architecture for embedded multimedia applications | |
JP6933001B2 (ja) | 並列化方法、並列化ツール | |
Wada et al. | A parallelizing compiler cooperative heterogeneous multicore processor architecture | |
Rafique et al. | Synthesis of parallel software from heterogeneous dataflow models | |
Pop et al. | Automatic streamization in GCC | |
Jammer | Characterization and translation of OpenMP use cases to MPI using LLVM | |
Ha et al. | Software synthesis in the ESL methodology for multicore embedded systems | |
Zhong et al. | Accelerating Data Analytics Kernels with Heterogeneous Computing | |
Aydonat | Compiler support for a multimedia system-on-chip architecture | |
Kwon et al. | Data-parallel code generation from synchronous dataflow specification of multimedia applications | |
Cheng | Accelerator Synthesis and Integration for CPU+ FPGA Systems | |
Papakonstantinou | High-level automation of custom hardware design for high-performance computing |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20151111 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20151111 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20160829 |
|
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: 20160906 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20160929 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6018022 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |