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

関連特許

個人
物品
17日前
個人
認証システム
1か月前
個人
自動精算システム
10日前
個人
保証金管理システム
25日前
個人
救急搬送システム
17日前
個人
鑑定証明システム
1か月前
キヤノン株式会社
印刷装置
10日前
個人
生成AIとの常時接続システム
17日前
株式会社MRC
集客システム
25日前
個人
技術マッチングシステム
1か月前
個人
未来型家系図構築システム
5日前
個人
コンテンツ開示順位判定システム
12日前
株式会社ネットブリッジ
展示販売装置
1か月前
トヨタ自動車株式会社
分析装置
25日前
トヨタ自動車株式会社
推定装置
3日前
株式会社COLORS
表示装置
11日前
キヤノン株式会社
印刷管理装置
23日前
株式会社SEKT
文字認識装置
6日前
トヨタ自動車株式会社
表認識装置
5日前
キヤノン電子株式会社
業務管理システム
10日前
ミサワホーム株式会社
プログラム
1か月前
個人
文字入力方法、文字入力プログラム
1か月前
ローム株式会社
ソース機器
17日前
ダイハツ工業株式会社
移動支援装置
5日前
トヨタ自動車株式会社
車載機
1か月前
トヨタ自動車株式会社
作業評価装置
3日前
富士通株式会社
情報処理プログラム
5日前
トヨタ自動車株式会社
作業評価装置
17日前
トヨタ自動車株式会社
作業評価装置
1か月前
日本精機株式会社
コミュニケーション端末
17日前
株式会社インザック
コンピュータシステム
1か月前
個人
後払いポイントシステム「先用後利」
1か月前
トヨタ自動車株式会社
部品管理装置
1か月前
株式会社LIFE
送迎管理システム
24日前
NISSHA株式会社
入力装置
10日前
花王株式会社
情報処理システム
10日前
続きを見る