TOP特許意匠商標
特許ウォッチ Twitter
10個以上の画像は省略されています。
公開番号2024174762
公報種別公開特許公報(A)
公開日2024-12-17
出願番号2023092776
出願日2023-06-05
発明の名称コンパイラ、コンパイル方法、およびコンパイル装置
出願人富士通株式会社
代理人個人
主分類G06F 8/41 20180101AFI20241210BHJP(計算;計数)
要約【課題】ソフトウェアパイプライニングの最適化による性能向上を図ること。
【解決手段】コンパイル装置101は、プログラム110内のループ処理111について、レイテンシ情報120に基づきループ処理111内の命令を並び替えるソフトウェアパイプライニングを適用して実行された際のパフォーマンスカウンタ情報130を取得する。レイテンシ情報120は、コンパイル装置101のCPUに対応する命令のレイテンシであり、実行時に命令の実行に障害がない場合の理想的な値を示す。コンパイル装置101は、取得したパフォーマンスカウンタ情報130に基づいて、待ち時間が発生した命令の種類を特定する。コンパイル装置101は、ループ処理111内の命令のうち、特定した種類のいずれかの命令のレイテンシ情報120の値を増加させてソフトウェアパイプライニングを適用することにより実行可能プログラム150を作成する。
【選択図】図1
特許請求の範囲【請求項1】
プログラム内のループ処理について、CPUに対応する命令のレイテンシ情報に基づき前記ループ処理内の命令を並び替えるソフトウェアパイプライニングを適用して実行された際の前記CPUのパフォーマンスカウンタの情報を取得し、
取得した前記パフォーマンスカウンタの情報に基づいて、待ち時間が発生した命令の種類を特定し、
前記ループ処理内の命令のうち、特定した前記種類のいずれかの命令のレイテンシ情報の値を増加させて前記ソフトウェアパイプライニングを適用することにより実行可能プログラムを作成する、
処理をコンピュータに実行させることを特徴とするコンパイラ。
続きを表示(約 1,900 文字)【請求項2】
前記CPUで実行される命令と対応付けて、当該命令のレイテンシを増加させてソフトウェアパイプライニングを適用することにより性能の改善を試行した場合の改善率を表す情報を記憶する記憶部を参照して、前記ループ処理内の命令のうち、特定した前記種類の命令であって、かつ、前記改善率が高い命令を選択する、
処理を前記コンピュータに実行させ、
前記作成する処理は、
選択した前記命令のレイテンシ情報の値を増加させて、前記ループ処理内の命令を並び替えるソフトウェアパイプライニングを適用することにより実行可能プログラムを作成する、ことを特徴とする請求項1に記載のコンパイラ。
【請求項3】
前記プログラムに基づいて、クリティカルパスとなる命令列を検出し、
検出した前記命令列のうち、特定した前記種類のいずれかの命令を選択する、
処理を前記コンピュータに実行させ、
前記作成する処理は、
選択した前記命令のレイテンシ情報の値を増加させて、前記ループ処理内の命令を並び替えるソフトウェアパイプライニングを適用することにより実行可能プログラムを作成する、ことを特徴とする請求項1に記載のコンパイラ。
【請求項4】
作成した前記実行可能プログラムを出力する、処理を前記コンピュータに実行させることを特徴とする請求項1に記載のコンパイラ。
【請求項5】
作成した前記実行可能プログラムを実行した結果、当該実行可能プログラムの実行時間に基づいて、前記プログラムの性能が改善したか否かを判定し、
判定した判定結果に基づいて、前記記憶部に記憶された前記いずれかの命令に対応する改善率を表す情報を更新する、
処理を前記コンピュータに実行させることを特徴とする請求項2に記載のコンパイラ。
【請求項6】
作成した前記実行可能プログラムを実行した結果、当該実行可能プログラムの実行時間に基づいて、前記プログラムの性能が改善したか否かを判定し、
前記性能が改善した場合、前記いずれかの命令のレイテンシ情報の値を増加させた状態を維持して、前記実行可能プログラムを実行した際の前記パフォーマンスカウンタの情報に基づいて、待ち時間が発生した命令の種類を特定し、前記ループ処理内の命令のうち、特定した前記種類のいずれかの命令のレイテンシ情報の値を増加させて前記ソフトウェアパイプライニングを適用することにより実行可能プログラムを作成する、
処理を前記コンピュータにさらに実行させることを特徴とする請求項1に記載のコンパイラ。
【請求項7】
前記性能が改善しなかった場合、前記いずれかの命令のレイテンシ情報の値を増加させない状態に戻して、前記実行可能プログラムを実行した際の前記パフォーマンスカウンタの情報に基づいて、待ち時間が発生した命令の種類を特定し、前記ループ処理内の命令のうち、特定した前記種類のいずれかの命令のレイテンシ情報の値を増加させて前記ソフトウェアパイプライニングを適用することにより実行可能プログラムを作成する、
処理を前記コンピュータにさらに実行させることを特徴とする請求項6に記載のコンパイラ。
【請求項8】
プログラム内のループ処理について、CPUに対応する命令のレイテンシ情報に基づき前記ループ処理内の命令を並び替えるソフトウェアパイプライニングを適用して実行された際の前記CPUのパフォーマンスカウンタの情報を取得し、
取得した前記パフォーマンスカウンタの情報に基づいて、待ち時間が発生した命令の種類を特定し、
前記ループ処理内の命令のうち、特定した前記種類のいずれかの命令のレイテンシ情報の値を増加させて前記ソフトウェアパイプライニングを適用することにより実行可能プログラムを作成する、
処理をコンピュータが実行することを特徴とするコンパイル方法。
【請求項9】
プログラム内のループ処理について、CPUに対応する命令のレイテンシ情報に基づき前記ループ処理内の命令を並び替えるソフトウェアパイプライニングを適用して実行された際の前記CPUのパフォーマンスカウンタの情報を取得し、
取得した前記パフォーマンスカウンタの情報に基づいて、待ち時間が発生した命令の種類を特定し、
前記ループ処理内の命令のうち、特定した前記種類のいずれかの命令のレイテンシ情報の値を増加させて前記ソフトウェアパイプライニングを適用することにより実行可能プログラムを作成する、
制御部を有することを特徴とするコンパイル装置。

発明の詳細な説明【技術分野】
【0001】
本発明は、コンパイラ、コンパイル方法、およびコンパイル装置に関する。
続きを表示(約 1,800 文字)【背景技術】
【0002】
従来、HPC(High Performance Computing)アプリケーションでは、実行時間の大部分を単一の最内ループに消費する場合が多い。このようなアプリケーションでは、単一の最内ループにコンパイラによる最適化手法を適用することによって、実行時間の短縮が期待できる。最適化手法の一つとして、例えば、ソフトウェアパイプライニングが存在する。
【0003】
先行技術としては、プログラムをコンピュータに実行させてプロファイル情報を収集し、プロファイル情報に基づいて演算待ち時間を算出し、演算待ち時間が第1の閾値より長い場合、プログラムのループ内のSIMD命令率が第2の閾値より低い場合に、ループ内のIF文の命令をSIMD化するSIMD化制御行をプログラムのループに挿入するものがある。
【先行技術文献】
【特許文献】
【0004】
特開2016-40691号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、従来技術では、ソフトウェアパイプライニングによる最適化の効果が毀損する場合があるという問題がある。
【0006】
一つの側面では、本発明は、ソフトウェアパイプライニングの最適化による性能向上を図ることを目的とする。
【課題を解決するための手段】
【0007】
1つの実施態様では、プログラム内のループ処理について、CPUに対応する命令のレイテンシ情報に基づき前記ループ処理内の命令を並び替えるソフトウェアパイプライニングを適用して実行された際の前記CPUのパフォーマンスカウンタの情報を取得し、取得した前記パフォーマンスカウンタの情報に基づいて、待ち時間が発生した命令の種類を特定し、前記ループ処理内の命令のうち、特定した前記種類のいずれかの命令のレイテンシ情報の値を増加させて前記ソフトウェアパイプライニングを適用することにより実行可能プログラムを作成する、コンパイラが提供される。
【発明の効果】
【0008】
本発明の一側面によれば、ソフトウェアパイプライニングの最適化による性能向上を図ることができるという効果を奏する。
【図面の簡単な説明】
【0009】
図1は、実施の形態1にかかるコンパイル方法の一実施例を示す説明図である。
図2は、実施の形態2にかかる情報処理装置200のハードウェア構成例を示すブロック図である。
図3は、入力プログラムの具体例を示す説明図である。
図4は、中間言語表現の具体例を示す説明図である。
図5は、データ依存グラフの具体例を示す説明図である。
図6は、チューニングデータベース情報の記憶内容の一例を示す説明図である。
図7は、実施の形態2にかかる情報処理装置200の機能的構成例を示すブロック図である。
図8は、情報処理装置200の動作例を示す説明図である。
図9は、パフォーマンスカウンタ情報の具体例を示す説明図(その1)である。
図10は、チューニング作業情報の記憶内容の一例を示す説明図(その1)である。
図11は、チューニング作業情報の記憶内容の一例を示す説明図(その2)である。
図12は、パフォーマンスカウンタ情報の具体例を示す説明図(その2)である。
図13は、チューニング作業情報の記憶内容の一例を示す説明図(その3)である。
図14は、チューニング作業情報の記憶内容の一例を示す説明図(その4)である。
図15は、チューニング作業情報の記憶内容の一例を示す説明図(その5)である。
図16は、チューニングデータベース情報の更新例を示す説明図である。
図17は、実施の形態2にかかる情報処理装置200のコンパイル処理手順の一例を示すフローチャート(その1)である。
図18は、実施の形態2にかかる情報処理装置200のコンパイル処理手順の一例を示すフローチャート(その2)である。
【発明を実施するための形態】
【0010】
以下に図面を参照して、本発明にかかるコンパイラ、コンパイル方法、およびコンパイル装置の実施の形態を詳細に説明する。
(【0011】以降は省略されています)

この特許をJ-PlatPatで参照する
Flag Counter

関連特許

富士通株式会社
プロセッサ
3日前
富士通株式会社
異常な挙動の検出
4日前
富士通株式会社
機械学習方法および情報処理装置
4日前
富士通株式会社
異常検知装置および異常検知方法
3日前
富士通株式会社
画像視角変化類型検出装置と方法
4日前
富士通株式会社
ネットワーク装置及びモデル学習方法
3日前
富士通株式会社
歪み補正係数算出方法およびプログラム
11日前
富士通株式会社
データ連携方法及びデータ連携プログラム
11日前
富士通株式会社
支援プログラム、支援方法及び情報処理装置
3日前
富士通株式会社
推定プログラム、推定方法、及び情報処理装置
3日前
富士通株式会社
制御プログラム、制御方法および制御システム
10日前
富士通株式会社
プログラム、データ処理装置及びデータ処理方法
11日前
富士通株式会社
割当制御プログラム、割当制御方法および情報処理装置
10日前
富士通株式会社
データ処理装置、データ処理プログラム及びデータ処理方法
3日前
富士通株式会社
機械学習パイプライン部品判定プログラム、方法、及び装置
4日前
富士通株式会社
光給電/通信装置、光給電監視システム、及び光給電監視方法
11日前
富士通株式会社
レポート作成プログラム、レポート作成方法、レポート作成装置
3日前
富士通株式会社
データ管理プログラム、データ管理装置、およびデータ管理システム
4日前
富士通株式会社
ジョブスケジューリングプログラム、ジョブスケジューリング方法および情報処理装置
11日前
個人
情報提示方法
18日前
個人
プログラム
17日前
個人
RFタグ読取装置
1か月前
個人
アカウントマップ
11日前
個人
プログラム
10日前
個人
自動精算システム
26日前
個人
売買システム
1か月前
個人
管理サーバ
1か月前
個人
市場受発注システム
24日前
個人
発想支援方法及びシステム
21日前
個人
学習装置及び推論装置
10日前
日本精機株式会社
車両用表示装置
1か月前
個人
分類処理プログラム及び方法
21日前
日本精機株式会社
車両用表示装置
1か月前
個人
VRによる人体各部位の立体化
1か月前
井関農機株式会社
ロボット作業車両
26日前
株式会社発明屋
電池指向の構造設計
4日前
続きを見る