JPWO2014064798A1 - 実行制御方法及び情報処理装置 - Google Patents
実行制御方法及び情報処理装置 Download PDFInfo
- Publication number
- JPWO2014064798A1 JPWO2014064798A1 JP2014543074A JP2014543074A JPWO2014064798A1 JP WO2014064798 A1 JPWO2014064798 A1 JP WO2014064798A1 JP 2014543074 A JP2014543074 A JP 2014543074A JP 2014543074 A JP2014543074 A JP 2014543074A JP WO2014064798 A1 JPWO2014064798 A1 JP WO2014064798A1
- Authority
- JP
- Japan
- Prior art keywords
- code
- loop
- true
- conditional branch
- true rate
- 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
- 238000000034 method Methods 0.000 title claims description 55
- 230000010365 information processing Effects 0.000 title claims 2
- 238000004364 calculation method Methods 0.000 claims abstract description 35
- 230000008569 process Effects 0.000 claims description 42
- 238000005516 engineering process Methods 0.000 abstract description 10
- 238000012545 processing Methods 0.000 description 72
- 238000011835 investigation Methods 0.000 description 32
- 238000010586 diagram Methods 0.000 description 28
- 238000013500 data storage Methods 0.000 description 11
- 230000008859 change Effects 0.000 description 5
- 230000000694 effects Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 230000007423 decrease Effects 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000012447 hatching Effects 0.000 description 2
- 238000007781 pre-processing Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000004088 simulation 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/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
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3842—Speculative instruction execution
- G06F9/3844—Speculative instruction execution using dynamic branch prediction, e.g. using branch history tables
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
-
- 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/4441—Reducing the execution time required by the program code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3005—Arrangements for executing specific machine instructions to perform operations for flow control
- G06F9/30058—Conditional branch instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/32—Address formation of the next instruction, e.g. by incrementing the instruction counter
- G06F9/322—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
- G06F9/325—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address for loops, e.g. loop detection or loop counter
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
- G06F9/45516—Runtime code conversion or optimisation
- G06F9/45525—Optimisation or modification within the same instruction set architecture, e.g. HP Dynamo
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/865—Monitoring of software
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/88—Monitoring involving counting
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
- Complex Calculations (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
Description
b(TruexTm+α)+(a−b)(TrueyTm+α)
=TruexbTm+bα+TrueyaTm−TrueybTm+(a−b)α
=(Truex−Truey)bTm+TrueyaTm+aα (1)
bTm+(a−b)(TrueyTm+α)
=bTm+TrueyaTm−TrueybTm+(a−b)α
=(1−Truey)bTm+TrueyaTm+(a−b)α
=((1−Truey)b+Trueya)Tm+(a−b)α (2)
aTm>((1−Truey)b+Trueya)Tm+(a−b)α
aTm−((1−Truey)b+Trueya)Tm>(a−b)α
(1−Truey)aTm−(1−Truey)bTm>(a−b)α
(1−Truey)(a−b)Tm>(a−b)α
(1−Truey)Tm>α (3)
(Truex−Truey)bTm+Trueya+aα>((1−Truey)b+Trueya)Tm+(a−b)α
TruexbTm−bTm>−bα
bα>(1−Truex)bTm
α>(1−Truex)Tm (4)
(1−Truex)Tm<α<(1−Truey)Tm
(Truex−Truey)bTm+TrueyaTm+aα>((1−Truey)b+Trueya)Tm+(a−b)α
TruexbTm−bTm>−bα
bα>(1−Truex)bTm
α>(1−Truex)Tm (4)
Claims (6)
- 内部に条件分岐を含み且つ予め指定されたループを含むソースコードから生成されたオブジェクトコードに含まれ且つ前記条件分岐がそのままコード化された前記ループについての第1のコード、又は前記オブジェクトコードに含まれ且つ前記条件分岐による条件が真となるループインデックスを抽出した上で抽出されたループインデックスのみについて前記条件が真となる場合における分岐先演算を実行するための第2のコードを実行している間において、前記条件分岐による条件が真となった回数についての特徴量を取得し、
取得された前記特徴量に基づき、前記第2のコードと、前記オブジェクトコードに含まれ且つ述語付き命令を用いて前記条件分岐による分岐先演算のいずれかの演算結果をメモリに書き込むための第3のコードとのうちいずれかをプロセッサに実行させる
処理を、前記プロセッサに実行させるためのプログラム。 - 前記特徴量が、前記回数、前記回数の割合、前記回数の平均値、前記回数の割合の平均値、前記回数の最小値、又は前記回数の割合の最小値である
請求項1記載のプログラム。 - 前記取得する処理を、前記オブジェクトコードの実行中定期的又は不定期に実行する
請求項1記載のプログラム。 - 前記回数についてのデータを、前記プロセッサのカウンタから取得する
請求項1乃至3のいずれか1つ記載のプログラム。 - 内部に条件分岐を含み且つ予め指定されたループを含むソースコードから生成されたオブジェクトコードに含まれ且つ前記条件分岐がそのままコード化された前記ループについての第1のコード、又は前記オブジェクトコードに含まれ且つ前記条件分岐による条件が真となるループインデックスを抽出した上で抽出されたループインデックスのみについて前記条件が真となる場合における分岐先演算を実行するための第2のコードを実行している間において、前記条件分岐による条件が真となった回数についての特徴量を取得し、
取得された前記特徴量に基づき、前記第2のコードと、前記オブジェクトコードに含まれ且つ述語付き命令を用いて前記条件分岐による分岐先演算のいずれかの演算結果をメモリに書き込むための第3のコードとのうちいずれかをプロセッサに実行させる
処理を含み、前記プロセッサにより実行される実行制御方法。 - 内部に条件分岐を含み且つ予め指定されたループを含むソースコードから生成されたオブジェクトコードに含まれ且つ前記条件分岐がそのままコード化された前記ループについての第1のコード、又は前記オブジェクトコードに含まれ且つ前記条件分岐による条件が真となるループインデックスを抽出した上で抽出されたループインデックスのみについて前記条件が真となる場合における分岐先演算を実行するための第2のコードを実行している間において、前記条件分岐による条件が真となった回数についての特徴量を取得する手段と、
取得された前記特徴量に基づき、前記第2のコードと、前記オブジェクトコードに含まれ且つ述語付き命令を用いて前記条件分岐による分岐先演算のいずれかの演算結果をメモリに書き込むための第3のコードとのうちいずれかをプロセッサに実行させる手段と、
有する情報処理装置。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2012/077599 WO2014064798A1 (ja) | 2012-10-25 | 2012-10-25 | 実行制御方法及び情報処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2014064798A1 true JPWO2014064798A1 (ja) | 2016-09-05 |
JP6179524B2 JP6179524B2 (ja) | 2017-08-16 |
Family
ID=50544196
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014543074A Active JP6179524B2 (ja) | 2012-10-25 | 2012-10-25 | 実行制御方法及び情報処理装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9459852B2 (ja) |
EP (1) | EP2913761A4 (ja) |
JP (1) | JP6179524B2 (ja) |
WO (1) | WO2014064798A1 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10521208B2 (en) * | 2017-06-23 | 2019-12-31 | Microsoft Technology Licensing, Llc. | Differentiated static analysis for dynamic code optimization |
JP7091726B2 (ja) * | 2018-03-08 | 2022-06-28 | 富士通株式会社 | 情報処理装置,プログラム及び情報処理方法 |
US20230315453A1 (en) * | 2022-04-01 | 2023-10-05 | Intel Corporation | Forward conditional branch event for profile-guided-optimization (pgo) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS608942A (ja) * | 1983-06-28 | 1985-01-17 | Fujitsu Ltd | 条件文のベクトル処理方式 |
JPS63632A (ja) * | 1986-06-19 | 1988-01-05 | Fujitsu Ltd | 原始プログラムの最適化処理方式 |
JPS6353646A (ja) * | 1986-08-22 | 1988-03-07 | Nec Corp | 最適目的プログラム生成方式 |
JPH03110670A (ja) * | 1989-09-25 | 1991-05-10 | Nec Corp | ベクトル計算機 |
JPH10240573A (ja) * | 1996-12-26 | 1998-09-11 | Nec Corp | コンパイル装置、コンパイル方法およびコンパイラを記録した記録媒体 |
WO2000038054A1 (fr) * | 1998-12-22 | 2000-06-29 | Fujitsu Limited | Appareil et procede de generation d'objet d'optimisation |
US20080127134A1 (en) * | 2006-10-27 | 2008-05-29 | Sun Microsystems, Inc. | Adaptive code through self steered execution |
WO2012087988A2 (en) * | 2010-12-24 | 2012-06-28 | Intel Corporation | Loop parallelization based on loop splitting or index array |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS59165147A (ja) | 1983-03-11 | 1984-09-18 | Fujitsu Ltd | コンパイラにおける条件文のベクトル命令化方式 |
-
2012
- 2012-10-25 EP EP12887026.8A patent/EP2913761A4/en not_active Withdrawn
- 2012-10-25 JP JP2014543074A patent/JP6179524B2/ja active Active
- 2012-10-25 WO PCT/JP2012/077599 patent/WO2014064798A1/ja active Application Filing
-
2015
- 2015-04-24 US US14/695,344 patent/US9459852B2/en active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS608942A (ja) * | 1983-06-28 | 1985-01-17 | Fujitsu Ltd | 条件文のベクトル処理方式 |
JPS63632A (ja) * | 1986-06-19 | 1988-01-05 | Fujitsu Ltd | 原始プログラムの最適化処理方式 |
JPS6353646A (ja) * | 1986-08-22 | 1988-03-07 | Nec Corp | 最適目的プログラム生成方式 |
JPH03110670A (ja) * | 1989-09-25 | 1991-05-10 | Nec Corp | ベクトル計算機 |
JPH10240573A (ja) * | 1996-12-26 | 1998-09-11 | Nec Corp | コンパイル装置、コンパイル方法およびコンパイラを記録した記録媒体 |
WO2000038054A1 (fr) * | 1998-12-22 | 2000-06-29 | Fujitsu Limited | Appareil et procede de generation d'objet d'optimisation |
US20080127134A1 (en) * | 2006-10-27 | 2008-05-29 | Sun Microsystems, Inc. | Adaptive code through self steered execution |
WO2012087988A2 (en) * | 2010-12-24 | 2012-06-28 | Intel Corporation | Loop parallelization based on loop splitting or index array |
Also Published As
Publication number | Publication date |
---|---|
JP6179524B2 (ja) | 2017-08-16 |
US9459852B2 (en) | 2016-10-04 |
EP2913761A4 (en) | 2016-06-15 |
US20150234641A1 (en) | 2015-08-20 |
WO2014064798A1 (ja) | 2014-05-01 |
EP2913761A1 (en) | 2015-09-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9569179B1 (en) | Modifying models based on profiling information | |
KR100875836B1 (ko) | 병렬 처리 vliw 컴퓨터를 위한 인스트럭션 명령어 압축장치 및 그 방법 | |
US20120154412A1 (en) | Run-time allocation of functions to a hardware accelerator | |
CN105579967A (zh) | Gpu发散栅栏 | |
JP6379654B2 (ja) | 処理実行プログラム、処理実行方法、及び情報処理装置 | |
US10558500B2 (en) | Scheduling heterogenous processors | |
JP6179524B2 (ja) | 実行制御方法及び情報処理装置 | |
CN105404635B (zh) | 字符串匹配的方法、设备和异构计算系统 | |
KR102603377B1 (ko) | 데이터 처리 | |
US20110154337A1 (en) | Relational Modeling for Performance Analysis of Multi-Core Processors Using Virtual Tasks | |
KR20200128702A (ko) | 분기 명령의 추적 | |
US20160357655A1 (en) | Performance information generating method, information processing apparatus and computer-readable storage medium storing performance information generation program | |
US9804849B2 (en) | Space reduction in processor stressmark generation | |
US10108529B2 (en) | Dynamic instrumentation based on detected errors | |
US11061988B2 (en) | Reducing web page load times | |
WO2015062369A1 (zh) | 轮廓技术编译的优化方法及装置 | |
JP6528531B2 (ja) | コンパイラプログラム、コンパイル方法、及び情報処理装置 | |
CN114020274B (zh) | 一种计算具有循环结构的OpenMP程序WCRT方法 | |
KR101721341B1 (ko) | 이종 멀티코어 환경에서 사용되는 수행장치 결정 모듈 및 이를 이용한 수행장치 결정방법 | |
Pompougnac et al. | Performance bottlenecks detection through microarchitectural sensitivity | |
KR102297435B1 (ko) | 응용 프로그램의 이벤트 스트림 데이터 처리 성능 향상 방법 및 장치 | |
US9772825B2 (en) | Program structure-based blocking | |
KR20240119492A (ko) | Gpu 데이터 접근 코알레싱 시각화 방법 | |
CN104462368A (zh) | 数据计算方法、装置和服务器 | |
CN118672661A (zh) | 数据处理方法、装置、电子设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20160705 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20160902 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20170214 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20170417 |
|
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: 20170620 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20170703 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6179524 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |