JP5059174B2 - プログラム変換装置、およびそのプログラム - Google Patents
プログラム変換装置、およびそのプログラム Download PDFInfo
- Publication number
- JP5059174B2 JP5059174B2 JP2010179830A JP2010179830A JP5059174B2 JP 5059174 B2 JP5059174 B2 JP 5059174B2 JP 2010179830 A JP2010179830 A JP 2010179830A JP 2010179830 A JP2010179830 A JP 2010179830A JP 5059174 B2 JP5059174 B2 JP 5059174B2
- Authority
- JP
- Japan
- Prior art keywords
- thread
- program code
- variable
- core
- access
- 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; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/52—Binary to binary
Description
図1は、第1の実施形態に係るプログラム変換装置100を示す図である。プログラム変換装置100は、複数の変数を有するプログラムコードを、複数のコアを有するプロセッサ(マルチコアプロセッサ、メニーコアプロセッサ)によって実行されるプログラムコードへ変換する。プログラム変換装置100は、入力部110と、判定部120と、変換部130と、出力部140とを備える。これらの機能ブロック(入力部110、判定部120、変換部130、出力部140)は、他の機能ブロックと協調しながら動作しても良く、1つの機能ブロックが複数の機能ブロックに分割されても良く、以下の説明に係る各機能ブロックの処理の順番が入れ替わっても良い。
20、21、22、23・・・変換のグループ
30・・・変換後プログラムコード
100・・・プログラム変換装置
110・・・入力部
120・・・判定部
130・・・変換部
140・・・出力部
200・・・マルチコアプロセッサ
211〜214・・・コア
221〜224・・・L1キャッシュメモリ
220A〜220C・・・メモリマップ領域
230・・・L2キャッシュメモリ
240・・・メインメモリ
Claims (6)
- 複数の変数を有する第1プログラムコードを、複数のコアを有するプロセッサによって実行される第2プログラムコードへ変換するプログラム変換装置であって、
前記第1プログラムコードが実行される場合に、前記第1プログラムコードに含まれる変数に対する前記プロセッサによるアクセスパターンを判定する判定部と、
(a)第1アクセスパターンでアクセスされると判定された変数を含む第1メンバ構造体と、(b)前記複数のコアのうちのいずれかで実行される各スレッドのうち、第1スレッドを実行するコアによってアクセス可能であることを示す第1アクセス属性を有し、前記第1メンバ構造体を指定する第1ルートポインタと、(c)第2アクセスパターンでアクセスされると判定された変数を含む第2メンバ構造体と、(d)前記第1スレッドを実行するコア及び第2スレッドを実行するコアによってアクセス可能であることを示す第2アクセス属性を有し、前記第2メンバ構造体を指定する第2ルートポインタとを有する第2のプログラムコードへ、前記第1プログラムコードを変換する変換部とを備えるプログラム変換装置。 - 前記第2プログラムコードは、前記プロセッサのメモリが備える複数の記憶単位のうち、前記第1メンバ構造体が記憶される1つ以上の第1記憶単位と、前記第2メンバ構造体が記憶される1つ以上の第2記憶単位とを重複させないためのコードをさらに含むことを特徴とする請求項1に係るプログラム変換装置。
- 前記第1プログラムコードと、前記複数の変数のそれぞれに対する前記プロセッサによるアクセス回数を示すプロファイル情報とを入力する入力部をさらに備え、
前記判定部は、前記プロファイル情報を用いて、前記第1プログラムコードに含まれる変数に対する前記プロセッサによるアクセスパターンを判定することを特徴とする請求項1又は請求項2に係るプログラム変換装置。 - 前記判定部は、前記第1プログラムコードに含まれる変数のうち、
前記第1スレッドを実行するコアによって更新される変数を前記第1アクセスパターンでアクセスされる変数と判定し、
前記第1スレッドを実行するコア及び前記第2スレッドを実行するコアによって更新される変数を前記第2アクセスパターンでアクセスされる変数と判定し、
前記複数のコアのいずれによっても更新されない変数を第3アクセスパターンでアクセスされる変数と判定することを特徴とする請求項1乃至請求項3のいずれか1項に記載のプログラム変換装置。 - 前記第2プログラムコードは、前記第2ルートポインタの前記第2アクセス属性を、
前記第1スレッドに係るメモリアクセス期間は前記第1スレッドを実行するコアによってアクセス可能であることを示すアクセス属性へ変更し、
前記第2スレッドに係るメモリアクセス期間は前記第2スレッドを実行するコアによってアクセス可能であることを示すアクセス属性へ変更するためのコードをさらに含むことを特徴とする請求項1乃至請求項4のいずれか1項に記載のプログラム変換装置。 - 複数の変数を有する第1プログラムコードを、複数のコアを有するプロセッサによって実行される第2プログラムコードへ変換するためのプログラムであって、
コンピュータに、
前記第1プログラムコードが実行される場合に、前記第1プログラムコードに含まれる変数に対する前記プロセッサによるアクセスパターンを判定する機能と、
(a)第1アクセスパターンでアクセスされると判定された変数を含む第1メンバ構造体と、(b)前記複数のコアのうちのいずれかで実行される各スレッドのうち、第1スレッドを実行するコアによってアクセス可能であることを示す第1アクセス属性を有し、前記第1メンバ構造体を指定する第1ルートポインタと、(c)第2アクセスパターンでアクセスされると判定された変数を含む第2メンバ構造体と、(d)前記第1スレッドを実行するコア及び第2スレッドを実行するコアによってアクセス可能であることを示す第2アクセス属性を有し、前記第2メンバ構造体を指定する第2ルートポインタとを有する第2のプログラムコードへ、前記第1プログラムコードを変換する機能とを実現させるためのプログラム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010179830A JP5059174B2 (ja) | 2010-08-10 | 2010-08-10 | プログラム変換装置、およびそのプログラム |
US13/013,450 US8732684B2 (en) | 2010-08-10 | 2011-01-25 | Program conversion apparatus and computer readable medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010179830A JP5059174B2 (ja) | 2010-08-10 | 2010-08-10 | プログラム変換装置、およびそのプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2012038219A JP2012038219A (ja) | 2012-02-23 |
JP5059174B2 true JP5059174B2 (ja) | 2012-10-24 |
Family
ID=45565718
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010179830A Expired - Fee Related JP5059174B2 (ja) | 2010-08-10 | 2010-08-10 | プログラム変換装置、およびそのプログラム |
Country Status (2)
Country | Link |
---|---|
US (1) | US8732684B2 (ja) |
JP (1) | JP5059174B2 (ja) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5687603B2 (ja) | 2011-11-09 | 2015-03-18 | 株式会社東芝 | プログラム変換装置、プログラム変換方法、および変換プログラム |
JP2013171459A (ja) * | 2012-02-21 | 2013-09-02 | Toshiba Corp | プログラム解析装置、プログラム解析方法および記録媒体 |
CN102982009A (zh) * | 2012-11-06 | 2013-03-20 | 无锡江南计算技术研究所 | 一种用于众核处理器的函数处理方法及系统 |
JP6442967B2 (ja) * | 2014-10-10 | 2018-12-26 | 富士通株式会社 | 情報処理プログラム、情報処理装置、情報処理方法 |
KR101956992B1 (ko) * | 2016-11-25 | 2019-06-27 | 현대오트론 주식회사 | 멀티 코어 시스템 및 이의 구동 방법 |
CN111402570B (zh) * | 2020-02-11 | 2021-08-17 | 广州创知科技有限公司 | 红外遥控信号接收方法、接收系统、接收设备及存储介质 |
Family Cites Families (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07319710A (ja) * | 1994-05-20 | 1995-12-08 | Matsushita Electric Ind Co Ltd | コンパイル処理方法 |
JPH0844577A (ja) * | 1994-07-26 | 1996-02-16 | Sumisho Electron Kk | データ分割方法及びマルチプロセッサシステム |
US6031994A (en) * | 1997-04-01 | 2000-02-29 | Intel Corporation | Method for determining the set of variables that may be ambiguously defined at a point in a computer program |
JP3327818B2 (ja) * | 1997-08-29 | 2002-09-24 | 松下電器産業株式会社 | プログラム変換装置及び記録媒体 |
JP4130713B2 (ja) * | 1998-10-21 | 2008-08-06 | 松下電器産業株式会社 | プログラム変換装置 |
JP4041248B2 (ja) * | 1999-07-09 | 2008-01-30 | 松下電器産業株式会社 | コンパイラ装置、コンパイルプログラムが記録されたコンピュータ読み取り可能な記録媒体及びコンパイル方法 |
US6862729B1 (en) | 2000-04-04 | 2005-03-01 | Microsoft Corporation | Profile-driven data layout optimization |
JP3707727B2 (ja) * | 2000-10-30 | 2005-10-19 | インターナショナル・ビジネス・マシーンズ・コーポレーション | プログラムの最適化方法及びこれを用いたコンパイラ |
JP2002182926A (ja) * | 2000-12-12 | 2002-06-28 | Hitachi Ltd | コンパイル方法及びコンピュータ読み取り可能な記録媒体 |
GB0215035D0 (en) * | 2002-06-28 | 2002-08-07 | Critical Blue Ltd | Code generation method |
JP4129981B2 (ja) * | 2004-04-02 | 2008-08-06 | インターナショナル・ビジネス・マシーンズ・コーポレーション | コンパイラ、コンパイラプログラム、記録媒体、制御方法、及び中央処理装置 |
EP1788485A4 (en) * | 2004-08-23 | 2012-09-26 | Gaia System Solutions Inc | SOURCE PROGRAM ANALYSIS DEVICE AND METHOD |
GB2427045B (en) * | 2005-06-06 | 2007-11-21 | Transitive Ltd | Method and apparatus for converting program code with access coordination for a shared resource |
US8473934B2 (en) | 2005-07-15 | 2013-06-25 | Imec | Method for mapping applications on a multiprocessor platform/system |
US7810082B2 (en) * | 2005-07-22 | 2010-10-05 | Telefonaktiebolaget L M Ericsson (Publ) | System and method for transforming generic software code into operator specific code |
US7770163B2 (en) * | 2006-03-24 | 2010-08-03 | International Business Machines Corporation | Method of efficiently performing precise profiling in a multi-threaded dynamic compilation environment |
US7882498B2 (en) * | 2006-03-31 | 2011-02-01 | Intel Corporation | Method, system, and program of a compiler to parallelize source code |
US8108844B2 (en) * | 2006-06-20 | 2012-01-31 | Google Inc. | Systems and methods for dynamically choosing a processing element for a compute kernel |
US8136102B2 (en) * | 2006-06-20 | 2012-03-13 | Google Inc. | Systems and methods for compiling an application for a parallel-processing computer system |
US8375368B2 (en) * | 2006-06-20 | 2013-02-12 | Google Inc. | Systems and methods for profiling an application running on a parallel-processing computer system |
JP2008003882A (ja) * | 2006-06-23 | 2008-01-10 | Fujitsu Ltd | コンパイラプログラム,リストベクトルの領域割当て最適化方法,コンパイル処理装置およびコンパイラプログラムを記録したコンピュータ読み取り可能な記録媒体 |
US8201159B2 (en) * | 2006-08-04 | 2012-06-12 | International Business Machines Corporation | Method and apparatus for generating data parallel select operations in a pervasively data parallel system |
JP2008293378A (ja) * | 2007-05-25 | 2008-12-04 | Panasonic Corp | プログラム書き換え装置 |
JP2009169862A (ja) * | 2008-01-18 | 2009-07-30 | Panasonic Corp | プログラム変換装置、方法、プログラムおよび記録媒体 |
US8151252B2 (en) * | 2008-02-22 | 2012-04-03 | Oracle America, Inc. | Compiler framework for speculative automatic parallelization with transactional memory |
US8776030B2 (en) * | 2008-04-09 | 2014-07-08 | Nvidia Corporation | Partitioning CUDA code for execution by a general purpose processor |
US9678775B1 (en) * | 2008-04-09 | 2017-06-13 | Nvidia Corporation | Allocating memory for local variables of a multi-threaded program for execution in a single-threaded environment |
US8726248B2 (en) * | 2008-06-12 | 2014-05-13 | Oracle America, Inc. | Method and apparatus for enregistering memory locations |
JP4931978B2 (ja) * | 2009-10-06 | 2012-05-16 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 並列化処理方法、システム、及びプログラム |
US8650554B2 (en) * | 2010-04-27 | 2014-02-11 | International Business Machines Corporation | Single thread performance in an in-order multi-threaded processor |
-
2010
- 2010-08-10 JP JP2010179830A patent/JP5059174B2/ja not_active Expired - Fee Related
-
2011
- 2011-01-25 US US13/013,450 patent/US8732684B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2012038219A (ja) | 2012-02-23 |
US8732684B2 (en) | 2014-05-20 |
US20120042304A1 (en) | 2012-02-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Hildebrand et al. | Autotm: Automatic tensor movement in heterogeneous memory systems using integer linear programming | |
US10430190B2 (en) | Systems and methods for selectively controlling multithreaded execution of executable code segments | |
JP5059174B2 (ja) | プログラム変換装置、およびそのプログラム | |
Jablin et al. | Dynamically managed data for CPU-GPU architectures | |
TWI442235B (zh) | 記憶體交易群組 | |
JP2013524386A (ja) | ランスペース方法、システムおよび装置 | |
Rawat et al. | Resource conscious reuse-driven tiling for GPUs | |
JP2010009495A (ja) | 情報処理装置、プログラム処理方法及びコンピュータプログラム | |
Liu et al. | Instruction cache locking for multi-task real-time embedded systems | |
Jiang et al. | Reusing data reorganization for efficient simd parallelization of adaptive irregular applications | |
Tagliavini et al. | Optimizing memory bandwidth in OpenVX graph execution on embedded many-core accelerators | |
Wilkins et al. | Warden: Specializing cache coherence for high-level parallel languages | |
CN109901840A (zh) | 一种线程间冗余删除的异构编译优化方法 | |
Oswald et al. | Heterogen: Automatic synthesis of heterogeneous cache coherence protocols | |
Endo et al. | Software technology that deals with deeper memory hierarchy in post-petascale era | |
Huang et al. | Automated transformation of GPU-specific OpenCL kernels targeting performance portability on multi-core/many-core CPUs | |
Tian et al. | Optimizing gpu register usage: Extensions to openacc and compiler optimizations | |
Yuan et al. | Automatic enhanced CDFG generation based on runtime instrumentation | |
Bai et al. | A software-only scheme for managing heap data on limited local memory (LLM) multicore processors | |
CN111966397A (zh) | 一种异构并行程序自动移植和优化方法 | |
Kim et al. | Demand paging techniques for flash memory using compiler post-pass optimizations | |
CN107562430A (zh) | 一种针对移动π演算语言的文件处理功能的编译方法 | |
Stitt et al. | Thread warping: Dynamic and transparent synthesis of thread accelerators | |
Ranganath et al. | Lc-memento: A memory model for accelerated architectures | |
Tan et al. | Just-in-time locality and percolation for optimizing irregular applications on a manycore architecture |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20111125 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20111205 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20120627 |
|
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: 20120706 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20120801 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150810 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150810 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |