JP2017107448A - 並列化方法、並列化ツール、車載装置 - Google Patents
並列化方法、並列化ツール、車載装置 Download PDFInfo
- Publication number
- JP2017107448A JP2017107448A JP2015241504A JP2015241504A JP2017107448A JP 2017107448 A JP2017107448 A JP 2017107448A JP 2015241504 A JP2015241504 A JP 2015241504A JP 2015241504 A JP2015241504 A JP 2015241504A JP 2017107448 A JP2017107448 A JP 2017107448A
- Authority
- JP
- Japan
- Prior art keywords
- address
- processes
- data
- core
- accessed
- 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.)
- Pending
Links
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/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
コアが一つであるシングルコアマイコン用のシングルプログラムにおける複数の処理(MT0〜MT11)から、複数のコア(21c、21d)を有するマルチコアマイコン(21)用に並列化した並列プログラム(21a1)を生成する並列化方法であって、
複数の処理とともに記憶領域に記憶され各処理が実行される際にアクセスされる複数のデータのうち、各処理が実行される際にアクセスされるデータの記憶領域におけるアドレスと、各処理が実行される際にアクセスされるデータのシンボル名を抽出する抽出手段(S11、S12)と、
抽出されたシンボル名に対して、抽出されたシンボル名のデータが記憶される記憶領域のアドレスを関連付ける関連付手順(S13)と、
複数の処理のうち並列化可能な処理を決めるために、抽出されたアドレスと関連付けられたアドレスとに基づいて各処理間での依存関係を解析し、同じアドレスにアクセスする二つの処理は依存関係があるとみなし、同じアドレスにアクセスしない二つの処理は依存関係がないとみなす解析手順(S14)と、を備えていることを特徴とする。
コアが一つであるシングルコアマイコン用のシングルプログラムにおける複数の処理(MT0〜MT11)から、複数のコア(21c、21d)を有するマルチコアマイコン(21)用に並列化した並列プログラム(21a1)を生成する、コンピュータを含む並列化ツールであって、
複数の処理とともに記憶領域に記憶され各処理が実行される際にアクセスされる複数のデータのうち、各処理が実行される際にアクセスされるデータの記憶領域におけるアドレスと、各処理が実行される際にアクセスされるデータのシンボル名を抽出する抽出部(S11、S12)と、
抽出されたシンボル名に対して、抽出されたシンボル名のデータが記憶される記憶領域のアドレスを関連付ける関連付部(S13)と、
複数の処理のうち並列化可能な処理を決めるために、抽出されたアドレスと関連付けられたアドレスとに基づいて各処理間での依存関係を解析し、同じアドレスにアクセスする二つの処理は依存関係があるとみなし、同じアドレスにアクセスしない二つの処理は依存関係がないとみなす解析部(S14)と、を備えている点にある。
複数のコア(21c、21d)を有するマルチコアマイコン(21)と、コアが一つであるシングルコアマイコン用のシングルプログラムにおける複数の処理(MT0〜MT11)からマルチコアマイコン用に並列化された並列プログラム(21a1)と、を備えた車載装置であって、
並列プログラムは、
複数の処理とともに記憶領域に記憶され各処理が実行される際にアクセスされる複数のデータのうち、各処理が実行される際にアクセスされるデータの記憶領域におけるアドレスと、各処理が実行される際にアクセスされるデータのシンボル名を抽出され、
抽出されたシンボル名に対して、抽出されたシンボル名のデータが記憶される記憶領域のアドレスが関連付けられ、
複数の処理のうち並列化可能な処理を決めるために、抽出されたアドレスと関連付けられたアドレスとに基づいて各処理間での依存関係を解析し、同じアドレスにアクセスする二つの処理は依存関係があるとみなし、同じアドレスにアクセスしない二つの処理は依存関係がないとみなされ、
複数の処理の夫々が各コアに割り当てられており、
マルチコアマイコンは、各コアが自身に割り当てられた処理を実行する点にある。
Claims (9)
- コアが一つであるシングルコアマイコン用のシングルプログラムにおける複数の処理(MT0〜MT11)から、複数の前記コア(21c、21d)を有するマルチコアマイコン(21)用に並列化した並列プログラム(21a1)を生成する並列化方法であって、
複数の前記処理とともに記憶領域に記憶され各処理が実行される際にアクセスされる複数のデータのうち、各処理が実行される際にアクセスされる前記データの前記記憶領域におけるアドレスと、各処理が実行される際にアクセスされる前記データのシンボル名を抽出する抽出手段(S11、S12)と、
抽出された前記シンボル名に対して、抽出された前記シンボル名の前記データが記憶される前記記憶領域の前記アドレスを関連付ける関連付手順(S13)と、
複数の前記処理のうち並列化可能な前記処理を決めるために、抽出された前記アドレスと前記関連付けられた前記アドレスとに基づいて各処理間での依存関係を解析し、同じ前記アドレスにアクセスする二つの前記処理は依存関係があるとみなし、同じ前記アドレスにアクセスしない二つの前記処理は依存関係がないとみなす解析手順(S14)と、を備えている並列化方法。 - 依存関係を解析する際に基にする前記アドレスは、前記記憶領域のレジスタにおけるアドレスを含んでいる請求項1に記載の並列化方法。
- 依存関係を解析する際に基にする前記アドレスは、前記シングルプログラムをコンパイルして各データをアドレスマッピングした結果におけるアドレスを含んでいる請求項1又は2に記載の並列化方法。
- コアが一つであるシングルコアマイコン用のシングルプログラムにおける複数の処理(MT0〜MT11)から、複数の前記コア(21c、21d)を有するマルチコアマイコン(21)用に並列化した並列プログラム(21a1)を生成する、コンピュータを含む並列化ツールであって、
複数の前記処理とともに記憶領域に記憶され各処理が実行される際にアクセスされる複数のデータのうち、各処理が実行される際にアクセスされる前記データの前記記憶領域におけるアドレスと、各処理が実行される際にアクセスされる前記データのシンボル名を抽出する抽出部(S11、S12)と、
抽出された前記シンボル名に対して、抽出された前記シンボル名の前記データが記憶される前記記憶領域の前記アドレスを関連付ける関連付部(S13)と、
複数の前記処理のうち並列化可能な前記処理を決めるために、抽出された前記アドレスと前記関連付けられた前記アドレスとに基づいて各処理間での依存関係を解析し、同じ前記アドレスにアクセスする二つの前記処理は依存関係があるとみなし、同じ前記アドレスにアクセスしない二つの前記処理は依存関係がないとみなす解析部(S14)と、を備えている並列化ツール。 - 依存関係を解析する際に基にする前記アドレスは、前記記憶領域のレジスタにおけるアドレスを含んでいる請求項4に記載の並列化ツール。
- 依存関係を解析する際に基にする前記アドレスは、前記シングルプログラムをコンパイルして各データをアドレスマッピングした結果におけるアドレスを含んでいる請求項4又は5に記載の並列化ツール。
- 複数のコア(21c、21d)を有するマルチコアマイコン(21)と、前記コアが一つであるシングルコアマイコン用のシングルプログラムにおける複数の処理(MT0〜MT11)から前記マルチコアマイコン用に並列化された並列プログラム(21a1)と、を備えた車載装置であって、
前記並列プログラムは、
複数の前記処理とともに記憶領域に記憶され各処理が実行される際にアクセスされる複数のデータのうち、各処理が実行される際にアクセスされる前記データの前記記憶領域におけるアドレスと、各処理が実行される際にアクセスされる前記データのシンボル名を抽出され、
抽出された前記シンボル名に対して、抽出された前記シンボル名の前記データが記憶される前記記憶領域の前記アドレスが関連付けられ、
複数の前記処理のうち並列化可能な前記処理を決めるために、抽出された前記アドレスと前記関連付けられた前記アドレスとに基づいて各処理間での依存関係を解析し、同じ前記アドレスにアクセスする二つの前記処理は依存関係があるとみなし、同じ前記アドレスにアクセスしない二つの前記処理は依存関係がないとみなされ、
複数の前記処理の夫々が各コアに割り当てられており、
前記マルチコアマイコンは、各コアが自身に割り当てられた前記処理を実行する車載装置。 - 依存関係を解析する際に基にする前記アドレスは、前記記憶領域のレジスタにおけるアドレスを含んでいる請求項7に記載の車載装置。
- 依存関係を解析する際に基にする前記アドレスは、前記シングルプログラムをコンパイルして各データをアドレスマッピングした結果におけるアドレスを含んでいる請求項7又は8に記載の車載装置。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015241504A JP2017107448A (ja) | 2015-12-10 | 2015-12-10 | 並列化方法、並列化ツール、車載装置 |
US15/350,368 US10296316B2 (en) | 2015-12-10 | 2016-11-14 | Parallelization method, parallelization tool, and in-vehicle apparatus |
DE102016223939.2A DE102016223939A1 (de) | 2015-12-10 | 2016-12-01 | Parallelisierungsverfahren, Parallelisierungswerkzeug und fahrzeugeigene Vorrichtung |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015241504A JP2017107448A (ja) | 2015-12-10 | 2015-12-10 | 並列化方法、並列化ツール、車載装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2017107448A true JP2017107448A (ja) | 2017-06-15 |
Family
ID=58773283
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015241504A Pending JP2017107448A (ja) | 2015-12-10 | 2015-12-10 | 並列化方法、並列化ツール、車載装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10296316B2 (ja) |
JP (1) | JP2017107448A (ja) |
DE (1) | DE102016223939A1 (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019049771A (ja) * | 2017-09-07 | 2019-03-28 | 株式会社デンソー | 並列化方法、並列化ツール、車載装置 |
JP2019159931A (ja) * | 2018-03-14 | 2019-09-19 | 株式会社デンソー | 並列化方法、並列化ツール、及びマルチコアマイコン |
JP2019191870A (ja) * | 2018-04-24 | 2019-10-31 | 株式会社デンソー | 並列化方法、並列化ツール、及びマルチコアマイコン |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017107448A (ja) * | 2015-12-10 | 2017-06-15 | 株式会社デンソー | 並列化方法、並列化ツール、車載装置 |
JP2017228029A (ja) * | 2016-06-21 | 2017-12-28 | 株式会社デンソー | 並列化方法、並列化ツール、車載装置 |
US10671361B2 (en) * | 2016-10-25 | 2020-06-02 | Paypal, Inc. | Automatically determining data dependencies to facilitate code execution |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009237762A (ja) * | 2008-03-26 | 2009-10-15 | Toshiba Corp | プログラム解析装置、プログラム解析方法および解析プログラム |
WO2013105158A1 (ja) * | 2012-01-13 | 2013-07-18 | パナソニック株式会社 | データ依存解析支援装置、データ依存解析支援プログラム、及びデータ依存解析支援方法 |
US20130212563A1 (en) * | 2010-02-18 | 2013-08-15 | Johan Kraft | Method and a System for Searching for Parts of a Computer Program Which Affects a Given Symbol |
JP2015001807A (ja) * | 2013-06-14 | 2015-01-05 | 株式会社デンソー | 並列化コンパイル方法、並列化コンパイラ、並列化コンパイル装置、及び、車載装置 |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3641997B2 (ja) * | 2000-03-30 | 2005-04-27 | 日本電気株式会社 | プログラム変換装置及び方法並びに記録媒体 |
JP3729064B2 (ja) * | 2000-11-29 | 2005-12-21 | 日本電気株式会社 | データ依存関係検出装置 |
US7159211B2 (en) * | 2002-08-29 | 2007-01-02 | Indian Institute Of Information Technology | Method for executing a sequential program in parallel with automatic fault tolerance |
KR100877138B1 (ko) * | 2004-03-29 | 2009-01-09 | 고쿠리츠 다이가쿠 호진 교토 다이가쿠 | 데이터 처리장치, 데이터 처리 프로그램, 및 데이터 처리프로그램을 기록한 기록매체 |
JP4923240B2 (ja) * | 2006-01-17 | 2012-04-25 | 国立大学法人東京工業大学 | プログラム処理装置、並列処理プログラム、プログラム処理方法、並列処理コンパイラ、並列処理コンパイラを格納した記録媒体およびマルチプロセッサシステム |
US20080162889A1 (en) * | 2007-01-03 | 2008-07-03 | International Business Machines Corporation | Method and apparatus for implementing efficient data dependence tracking for multiprocessor architectures |
JP2009129179A (ja) * | 2007-11-22 | 2009-06-11 | Toshiba Corp | プログラム並列化支援装置およびプログラム並列化支援方法 |
JP5148674B2 (ja) * | 2010-09-27 | 2013-02-20 | 株式会社東芝 | プログラム並列化装置およびプログラム |
JP5810316B2 (ja) * | 2010-12-21 | 2015-11-11 | パナソニックIpマネジメント株式会社 | コンパイル装置、コンパイルプログラム及びループ並列化方法 |
US8793675B2 (en) * | 2010-12-24 | 2014-07-29 | Intel Corporation | Loop parallelization based on loop splitting or index array |
WO2013010159A1 (en) * | 2011-07-14 | 2013-01-17 | Siemens Corporation | Reducing the scan cycle time of control applications through multi-core execution of user programs |
US9846673B2 (en) * | 2011-11-04 | 2017-12-19 | Waseda University | Processor, accelerator, and direct memory access controller within a processor core that each reads/writes a local synchronization flag area for parallel execution |
US9489180B1 (en) * | 2011-11-18 | 2016-11-08 | Reservoir Labs, Inc. | Methods and apparatus for joint scheduling and layout optimization to enable multi-level vectorization |
US8943511B2 (en) * | 2012-05-31 | 2015-01-27 | Nec Corporation | Parallel allocation optimization device, parallel allocation optimization method, and computer-readable recording medium |
US20150363230A1 (en) * | 2013-01-23 | 2015-12-17 | Waseda University | Parallelism extraction method and method for making program |
US10949200B2 (en) * | 2013-06-16 | 2021-03-16 | President And Fellows Of Harvard College | Methods and apparatus for executing data-dependent threads in parallel |
US9594644B2 (en) * | 2014-09-19 | 2017-03-14 | Sybase, Inc. | Converting a serial transaction schedule to a parallel transaction schedule |
US20160147577A1 (en) * | 2014-11-25 | 2016-05-26 | Qualcomm Incorporated | System and method for adaptive thread control in a portable computing device (pcd) |
JP6481585B2 (ja) * | 2015-10-20 | 2019-03-13 | 株式会社デンソー | 並列化方法、並列化ツール、車載装置 |
JP2017107448A (ja) * | 2015-12-10 | 2017-06-15 | 株式会社デンソー | 並列化方法、並列化ツール、車載装置 |
JP2017228029A (ja) * | 2016-06-21 | 2017-12-28 | 株式会社デンソー | 並列化方法、並列化ツール、車載装置 |
-
2015
- 2015-12-10 JP JP2015241504A patent/JP2017107448A/ja active Pending
-
2016
- 2016-11-14 US US15/350,368 patent/US10296316B2/en active Active
- 2016-12-01 DE DE102016223939.2A patent/DE102016223939A1/de not_active Withdrawn
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009237762A (ja) * | 2008-03-26 | 2009-10-15 | Toshiba Corp | プログラム解析装置、プログラム解析方法および解析プログラム |
US20130212563A1 (en) * | 2010-02-18 | 2013-08-15 | Johan Kraft | Method and a System for Searching for Parts of a Computer Program Which Affects a Given Symbol |
WO2013105158A1 (ja) * | 2012-01-13 | 2013-07-18 | パナソニック株式会社 | データ依存解析支援装置、データ依存解析支援プログラム、及びデータ依存解析支援方法 |
JP2015001807A (ja) * | 2013-06-14 | 2015-01-05 | 株式会社デンソー | 並列化コンパイル方法、並列化コンパイラ、並列化コンパイル装置、及び、車載装置 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019049771A (ja) * | 2017-09-07 | 2019-03-28 | 株式会社デンソー | 並列化方法、並列化ツール、車載装置 |
JP2019159931A (ja) * | 2018-03-14 | 2019-09-19 | 株式会社デンソー | 並列化方法、並列化ツール、及びマルチコアマイコン |
JP7139633B2 (ja) | 2018-03-14 | 2022-09-21 | 株式会社デンソー | 並列化方法、並列化ツール、及びマルチコアマイコン |
JP2019191870A (ja) * | 2018-04-24 | 2019-10-31 | 株式会社デンソー | 並列化方法、並列化ツール、及びマルチコアマイコン |
JP7059776B2 (ja) | 2018-04-24 | 2022-04-26 | 株式会社デンソー | 並列化方法、並列化ツール、及びマルチコアマイコン |
Also Published As
Publication number | Publication date |
---|---|
US10296316B2 (en) | 2019-05-21 |
DE102016223939A1 (de) | 2017-06-14 |
US20170168790A1 (en) | 2017-06-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2017107448A (ja) | 並列化方法、並列化ツール、車載装置 | |
US10860300B2 (en) | Direct function call substitution using preprocessor | |
US9009692B2 (en) | Minimizing register spills by using register moves | |
US20130185705A1 (en) | Providing performance tuned versions of compiled code to a cpu in a system of heterogeneous cores | |
US20100229161A1 (en) | Compile method and compiler | |
EP2687981A1 (en) | Automated compiler specialisation for global optimisation | |
JP2003323463A5 (ja) | ||
US10430191B2 (en) | Methods and apparatus to compile instructions for a vector of instruction pointers processor architecture to enable speculative execution and avoid data corruption | |
JP2017228029A (ja) | 並列化方法、並列化ツール、車載装置 | |
JP6427055B2 (ja) | 並列化コンパイル方法、及び並列化コンパイラ | |
JP6500626B2 (ja) | 計算機、コンパイラプログラム、リンクプログラムおよびコンパイル方法 | |
JP5576605B2 (ja) | プログラム変換装置およびプログラム変換方法 | |
JP2016192152A (ja) | 並列化コンパイル方法、並列化コンパイラ、及び車載装置 | |
Kessler | Compiling for VLIW DSPs | |
JP2008305337A (ja) | プログラム変換装置、プログラム変換方法、プログラム、記憶媒体、デバッグ装置、デバッグ方法及びプログラム開発システム | |
JP6933001B2 (ja) | 並列化方法、並列化ツール | |
JP5360506B2 (ja) | マルチコアにおけるプログラミングシステム、その方法及びそのプログラム | |
JP6488738B2 (ja) | 並列化コンパイル方法、及び、並列化コンパイラ | |
Kumar et al. | An approach for compiler optimization to exploit instruction level parallelism | |
Kessler | Compiling for VLIW DSPs | |
JP6558310B2 (ja) | 並列化方法、並列化ツール | |
JP2004038279A (ja) | コンパイラ、演算処理システム及び演算処理方法 | |
Marinkovic et al. | An Automatic Instruction-Level Parallelization of Machine Code. | |
Kalra | Design and evaluation of register allocation on gpus | |
US10379828B2 (en) | Parallelization method, parallelization tool, and in-vehicle device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20180227 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20181212 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20190205 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20190402 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20190723 |