JP6933052B2 - 情報処理装置、コンパイル方法及びコンパイルプログラム - Google Patents
情報処理装置、コンパイル方法及びコンパイルプログラム Download PDFInfo
- Publication number
- JP6933052B2 JP6933052B2 JP2017160611A JP2017160611A JP6933052B2 JP 6933052 B2 JP6933052 B2 JP 6933052B2 JP 2017160611 A JP2017160611 A JP 2017160611A JP 2017160611 A JP2017160611 A JP 2017160611A JP 6933052 B2 JP6933052 B2 JP 6933052B2
- Authority
- JP
- Japan
- Prior art keywords
- frequency control
- code
- loop
- information
- frequency
- 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
Images
Landscapes
- Devices For Executing Special Programs (AREA)
Description
メモリビジー率=メモリスループット/メモリスループット上限
L2ビジー率=(L2スループット+メモリスループット×係数)/L2スループット上限
L1ビジー率=L1パイプバリッド/サイクルカウント
演算ビジー率=浮動小数点演算パイプライン/サイクルカウント
である。
メモリスループット=(L2キャッシュミス数+L2ライトバック)×キャッシュラインサイズ/サイクルカウント/クロック周波数
L2スループット=L1キャッシュミス数×キャッシュラインサイズ/サイクルカウント/クロック周波数
である。また、L2ビジー率の算出に用いる係数は0.3、0.6等である。
前記コンパイル部により生成された第1の実行コードを実行して前記プロファイリングデータに基づく電力プロファイラ情報を出力する実行部と、
前記実行部により出力された電力プロファイラ情報を解析して前記実行部に含まれる複数のハードウェアモジュールの周波数制御に用いられる周波数制御情報を作成する解析部とを有し、
前記コンパイル部は、前記解析部により作成された周波数制御情報に基づいて前記ソースプログラムの前記ループに対して前記複数のハードウェアモジュールの周波数を制御する周波数制御コードを挿入して第2の実行コードを生成し、
前記実行部は、前記コンパイル部により生成された第2の実行コードを実行することを特徴とする情報処理装置。
前記電力プロファイラ情報に基づいて各ループにおける前記複数のハードウェアモジュールのビジー率を算出する算出部と、
前記算出部により算出された複数のビジー率に基づいて各ループの周波数制御方法を決定し前記周波数制御情報を作成する作成部と
を有することを特徴とする付記1に記載の情報処理装置。
前記実行部の複数のハードウェアモジュールにはメモリ、L2キャッシュ、L1キャッシュ及び演算装置が含まれ、
前記算出部は、サイクルカウント、L1キャッシュミス数、L2キャッシュミス数、浮動小数点演算パイプライン、L1パイプバリッド及びL2ライトバックに基づいてメモリ、L2キャッシュ、L1キャッシュ及び演算装置のビジー率を算出することを特徴とする付記2に記載の情報処理装置。
前記コンパイル部は、前記区間の平均実行時間が所定の閾値以上である場合に該ループに対して前記複数のハードウェアモジュールの周波数を制御する周波数制御コードを挿入して第2の実行コードを生成することを特徴とする付記1、2又は3に記載の情報処理装置。
プロファイリングデータを採取するコードをソースプログラムの分岐のないループに対して挿入して第1の実行コードを生成し、
前記第1の実行コードが処理装置により実行されて採取されたプロファイリングデータを用いて作成された電力プロファイラ情報に基づき前記処理装置に含まれる複数のハードウェアモジュールの周波数制御用に作成された周波数制御情報に基づいて、前記ソースプログラムの前記ループに対して前記複数のハードウェアモジュールの周波数を制御する周波数制御コードを挿入して第2の実行コードを生成する
処理を実行することを特徴とするコンパイル方法。
プロファイリングデータを採取するコードをソースプログラムの分岐のないループに対して挿入して第1の実行コードを生成し、
前記第1の実行コードが処理装置により実行されて採取されたプロファイリングデータを用いて作成された電力プロファイラ情報に基づき前記処理装置に含まれる複数のハードウェアモジュールの周波数制御用に作成された周波数制御情報に基づいて、前記ソースプログラムの前記ループに対して前記複数のハードウェアモジュールの周波数を制御する周波数制御コードを挿入して第2の実行コードを生成する
処理を実行させることを特徴とするコンパイルプログラム。
プロファイリングデータを採取するコードがソースプログラムの分岐のないループに対して挿入された実行コードが処理装置により実行されて採取されたプロファイリングデータを用いて作成された電力プロファイラ情報を読み込み、
読み込んだ電力プロファイラ情報を解析して前記処理装置に含まれる複数のハードウェアモジュールの周波数制御に用いられる周波数制御情報を作成する
処理を実行させることを特徴とする解析プログラム。
前記電力プロファイラ情報に基づいて各ループにおける前記複数のハードウェアモジュールのビジー率を算出し、
算出した複数のビジー率に基づいて各ループの周波数制御方法を決定し前記周波数制御情報を作成する
ことを特徴とする付記8に記載の解析プログラム。
2 管理装置
3 並列計算機
4 プログラムコード
5 実行コード
6 電力プロファイラ情報
7 周波数制御情報
21 コンパイル部
21a 第1挿入部
21b 第2挿入部
22 結合部
23 解析部
23a 算出部
23b 作成部
50 コンピュータ
51 メインメモリ
52 CPU
53 LANインタフェース
54 HDD
55 スーパーIO
56 DVI
57 ODD
Claims (5)
- プロファイリングデータを採取するコードをソースプログラムの分岐のないループに対して挿入して第1の実行コードを生成するコンパイル部と、
前記コンパイル部により生成された第1の実行コードを実行して前記プロファイリングデータに基づく電力プロファイラ情報であってメモリ、L2キャッシュ、L1キャッシュ及び演算装置が含まれる複数のハードウェアモジュールに関するサイクルカウント、L1キャッシュミス数、L2キャッシュミス数、浮動小数点演算パイプライン、L1パイプバリッド及びL2ライトバックが含まれる電力プロファイラ情報を出力する実行部と、
前記電力プロファイラ情報に基づいて各ループにおける前記複数のハードウェアモジュールのビジー率を算出する算出部と、
前記算出部により算出された複数のビジー率に基づいて各ループの周波数制御方法を決定し周波数制御情報を作成する作成部と、を有し、
前記コンパイル部は、前記作成部により作成された前記周波数制御情報に基づいて前記ソースプログラムの前記ループに対して前記複数のハードウェアモジュールの周波数を制御する周波数制御コードを挿入して第2の実行コードを生成し、
前記実行部は、前記コンパイル部により生成された第2の実行コードを実行することを特徴とする情報処理装置。 - 前記周波数制御情報には、前記ループに対応する区間の実行時間が含まれ、
前記コンパイル部は、前記区間の平均実行時間が所定の閾値以上である場合に該ループに対して前記複数のハードウェアモジュールの周波数を制御する周波数制御コードを挿入して第2の実行コードを生成することを特徴とする請求項1に記載の情報処理装置。 - 前記コンパイル部は、複数の前記ループについて各ループの前に周波数を変更する周波数制御コードを挿入し、各ループの後に周波数を元に戻す周波数制御コードを挿入し、周波数を元に戻す周波数制御コードの直後に周波数を変更する周波数制御コードがある場合には、周波数を元に戻す周波数制御コードを削除することを特徴とする請求項1又は2に記載の情報処理装置。
- コンピュータが、
プロファイリングデータを採取するコードをソースプログラムの分岐のないループに対して挿入して第1の実行コードを生成し、
前記第1の実行コードが処理装置により実行されて採取されたプロファイリングデータを用いて作成された電力プロファイラ情報であってメモリ、L2キャッシュ、L1キャッシュ及び演算装置が含まれる複数のハードウェアモジュールに関するサイクルカウント、L1キャッシュミス数、L2キャッシュミス数、浮動小数点演算パイプライン、L1パイプバリッド及びL2ライトバックが含まれる電力プロファイラ情報を出力し、
前記電力プロファイラ情報に基づいて各ループにおける前記複数のハードウェアモジュールのビジー率を算出し、
算出された複数のビジー率に基づいて各ループの周波数制御方法を決定し周波数制御情報を作成し、
作成された前記周波数制御情報に基づいて前記ソースプログラムの前記ループに対して前記複数のハードウェアモジュールの周波数を制御する周波数制御コードを挿入して第2の実行コードを生成し、
生成された第2の実行コードを前記処理装置に実行させる
処理を実行することを特徴とするコンパイル方法。 - コンピュータに、
プロファイリングデータを採取するコードをソースプログラムの分岐のないループに対して挿入して第1の実行コードを生成し、
前記第1の実行コードが処理装置により実行されて採取されたプロファイリングデータを用いて作成された電力プロファイラ情報であってメモリ、L2キャッシュ、L1キャッシュ及び演算装置が含まれる複数のハードウェアモジュールに関するサイクルカウント、L1キャッシュミス数、L2キャッシュミス数、浮動小数点演算パイプライン、L1パイプバリッド及びL2ライトバックが含まれる電力プロファイラ情報を出力し、
前記電力プロファイラ情報に基づいて各ループにおける前記複数のハードウェアモジュールのビジー率を算出し、
算出された複数のビジー率に基づいて各ループの周波数制御方法を決定し周波数制御情報を作成し、
作成された前記周波数制御情報に基づいて前記ソースプログラムの前記ループに対して前記複数のハードウェアモジュールの周波数を制御する周波数制御コードを挿入して第2の実行コードを生成し、
生成された第2の実行コードを前記処理装置に実行させる
処理を実行させることを特徴とするコンパイルプログラム。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2017160611A JP6933052B2 (ja) | 2017-08-23 | 2017-08-23 | 情報処理装置、コンパイル方法及びコンパイルプログラム |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2017160611A JP6933052B2 (ja) | 2017-08-23 | 2017-08-23 | 情報処理装置、コンパイル方法及びコンパイルプログラム |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2019040317A JP2019040317A (ja) | 2019-03-14 |
| JP6933052B2 true JP6933052B2 (ja) | 2021-09-08 |
Family
ID=65726624
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2017160611A Active JP6933052B2 (ja) | 2017-08-23 | 2017-08-23 | 情報処理装置、コンパイル方法及びコンパイルプログラム |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP6933052B2 (ja) |
Family Cites Families (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP3520611B2 (ja) * | 1995-07-06 | 2004-04-19 | 株式会社日立製作所 | プロセッサの制御方法 |
| JP4131909B2 (ja) * | 2001-07-26 | 2008-08-13 | 株式会社東芝 | コンパイル方法 |
| US7185215B2 (en) * | 2003-02-24 | 2007-02-27 | International Business Machines Corporation | Machine code builder derived power consumption reduction |
| JP2006127302A (ja) * | 2004-10-29 | 2006-05-18 | Internatl Business Mach Corp <Ibm> | 情報処理装置、コンパイラ、及びコンパイラプログラム |
| JP4082706B2 (ja) * | 2005-04-12 | 2008-04-30 | 学校法人早稲田大学 | マルチプロセッサシステム及びマルチグレイン並列化コンパイラ |
| JP2007334497A (ja) * | 2006-06-13 | 2007-12-27 | Renesas Technology Corp | 情報処理装置の省電力化方法、プログラム、およびプログラム実行システム |
| JP6018022B2 (ja) * | 2013-06-14 | 2016-11-02 | 株式会社デンソー | 並列化コンパイル方法、並列化コンパイラ、並列化コンパイル装置、及び、車載装置 |
| JP6217008B2 (ja) * | 2013-12-27 | 2017-10-25 | 高知県公立大学法人 | 電子機器、制御方法、及び、プログラム |
-
2017
- 2017-08-23 JP JP2017160611A patent/JP6933052B2/ja active Active
Also Published As
| Publication number | Publication date |
|---|---|
| JP2019040317A (ja) | 2019-03-14 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US9946523B2 (en) | Multiple pass compiler instrumentation infrastructure | |
| US8104030B2 (en) | Mechanism to restrict parallelization of loops | |
| US9996325B2 (en) | Dynamic reconfigurable compiler | |
| US8886887B2 (en) | Uniform external and internal interfaces for delinquent memory operations to facilitate cache optimization | |
| US9027007B2 (en) | Reducing excessive compilation times | |
| JP3351725B2 (ja) | パワーシミュレーション装置、パワーシミュレーション方法、及びパワーシミュレーションプログラムを記録した機械読み取り可能な記録媒体 | |
| US20090094590A1 (en) | Detecting change in program behavior for adaptive code optimization | |
| JP2007507807A (ja) | ソフトウェアアプリケーションにおけるメモリ待ち時間を低減するための方法及び装置 | |
| JP2006260067A (ja) | 先読み装置、先読み方法、および先読みプログラム | |
| US12450062B2 (en) | Deterministic replay of a multi-threaded trace on a multi-threaded processor | |
| US11989537B2 (en) | Dataflow-based computer program visualization and refactoring | |
| Tang et al. | Enabling transparent asynchronous I/O using background threads | |
| US10761890B2 (en) | Optimizing memory fences based on workload | |
| JPH1196130A (ja) | マルチプロセッシングシステムの性能評価方法および装置並びにマルチプロセッシングシステムの性能評価プログラムを格納した記憶媒体 | |
| CN108021563B (zh) | 一种指令间数据依赖的检测方法和装置 | |
| JP6933052B2 (ja) | 情報処理装置、コンパイル方法及びコンパイルプログラム | |
| US8340952B2 (en) | Power estimation method and device therefor | |
| Yeh et al. | Performing file prediction with a program-based successor model | |
| US20130054494A1 (en) | Efficient data profiling to optimize system performance | |
| Kristien et al. | Mitigating JIT compilation latency in virtual execution environments | |
| Roba et al. | An enhanced approach to dynamic power management for the Linux cpuidle subsystem | |
| US10042645B2 (en) | Method and apparatus for compiling a program for execution by a plurality of processing units | |
| Crosbie et al. | Strategies for improving data locality in embedded applications | |
| KR20250167784A (ko) | 모델관리장치 및 메모리 효율화 방법 | |
| Wu et al. | CTFS: A Configurable Tuning Framework on SHENWEI System |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20200514 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20210324 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20210406 |
|
| A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20210521 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20210608 |
|
| A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20210706 |
|
| 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: 20210720 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20210802 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 6933052 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |