TOP特許意匠商標
特許ウォッチ Twitter
10個以上の画像は省略されています。
公開番号2025169113
公報種別公開特許公報(A)
公開日2025-11-12
出願番号2024074146
出願日2024-04-30
発明の名称コンパイルプログラムおよびコンパイル方法
出願人富士通株式会社
代理人個人
主分類G06F 8/41 20180101AFI20251105BHJP(計算;計数)
要約【課題】SFIによる性能低下を低減すること。
【解決手段】情報処理装置101は、最適化対象となるプログラム110から、対象ループ処理111を検出する。情報処理装置101は、対象ループ処理111を、第1ループ処理111aと第2ループ処理111bと第3ループ処理111cとに変更する。第1ループ処理111aは、ストア命令とロード命令とのアクセスアドレスが、プロセッサからメモリへの同じアクセス単位とならないように、対象ループ処理111の繰り返し回数のうちの第1回数分、ストア命令を先行して実行するループ処理である。第2ループ処理111bは、第1ループ処理111aの後に、対象ループ処理111の繰り返し回数から第1回数を減算した第2回数分、ストア命令とロード命令とを実行するループ処理である。第3ループ処理111cは、第2ループ処理111bの後に、第1回数分、ロード命令を実行するループ処理である。
【選択図】図1
特許請求の範囲【請求項1】
最適化対象となるプログラムから、ストア命令と当該ストア命令に後続するロード命令とを含む対象ループ処理を検出し、
検出した前記対象ループ処理を、前記ストア命令のアクセスアドレスと前記ロード命令のアクセスアドレスとが、プロセッサからメモリへの同じアクセス単位とならないように、前記対象ループ処理の繰り返し回数のうちの第1回数分、前記ストア命令を先行して実行する第1ループ処理と、前記第1ループ処理の後に、前記繰り返し回数から前記第1回数を減算した第2回数分、前記ストア命令と前記ロード命令とを実行する第2ループ処理と、前記第2ループ処理の後に、前記第1回数分、前記ロード命令を実行する第3ループ処理とに変更する、
処理をコンピュータに実行させることを特徴とするコンパイルプログラム。
続きを表示(約 900 文字)【請求項2】
前記ストア命令と前記ロード命令とのアクセスアドレス差と、前記ストア命令および前記ロード命令の処理単位のデータサイズと、前記アクセス単位のデータサイズとに基づいて、前記第1回数を算出する、
処理を前記コンピュータに実行させることを特徴とする請求項1に記載のコンパイルプログラム。
【請求項3】
前記検出する処理は、
同一の変数に対するストア命令と当該ストア命令に後続するロード命令とを含み、前記ストア命令と前記ロード命令とのアクセスアドレス差に前記ストア命令および前記ロード命令の処理単位のデータサイズを乗算した値が、前記アクセス単位のデータサイズ未満となるループ処理を、前記対象ループ処理として検出する、
ことを特徴とする請求項1に記載のコンパイルプログラム。
【請求項4】
前記検出する処理は、
前記プログラム内の指示文により指定されたループ処理を、前記対象ループ処理として検出する、ことを特徴とする請求項1に記載のコンパイルプログラム。
【請求項5】
前記アクセス単位は、キャッシュラインである、ことを特徴とする請求項1~4のいずれか一つに記載のコンパイルプログラム。
【請求項6】
最適化対象となるプログラムから、ストア命令と当該ストア命令に後続するロード命令とを含む対象ループ処理を検出し、
検出した前記対象ループ処理を、前記ストア命令のアクセスアドレスと前記ロード命令のアクセスアドレスとが、プロセッサからメモリへの同じアクセス単位とならないように、前記対象ループ処理の繰り返し回数のうちの第1回数分、前記ストア命令を先行して実行する第1ループ処理と、前記第1ループ処理の後に、前記繰り返し回数から前記第1回数を減算した第2回数分、前記ストア命令と前記ロード命令とを実行する第2ループ処理と、前記第2ループ処理の後に、前記第1回数分、前記ロード命令を実行する第3ループ処理とに変更する、
処理をコンピュータが実行することを特徴とするコンパイル方法。

発明の詳細な説明【技術分野】
【0001】
本発明は、コンパイルプログラムおよびコンパイル方法に関する。
続きを表示(約 2,500 文字)【背景技術】
【0002】
従来、コンピュータにおいてプログラムを実行するにあたり、配列やループに関するコンパイラの最適化手法が考案されている。例えば、ループ処理を高速化するためのループアンロール、ソフトウェアパイプライン、ループマージ、ループ結合や、配列高速化のための配列マージ、配列次元の削減などの手法がある。
【0003】
先行技術としては、例えば、配列変数のベクトルストア命令とベクトルロード命令を有するループを有する最適化対象プログラムについて、最適化処理を実行するものがある。最適化処理は、ループ内のベクトルストア命令とベクトルロード命令を、第1アンロール数または第1アンロール数より1つ少ない第2アンロール数だけアンローリングを行い、アンローリングした複数のベクトルロード命令のうち先頭のベクトルストア命令より後ろのベクトルロード命令を、先頭のベクトルストア命令より前に移動させるスケジューリングを行う。第1アンロール数は、ベクトル長を配列変数の配列サイズで除算して余りを切り上げた数である。
【先行技術文献】
【特許文献】
【0004】
特開2021-196637号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、従来技術では、先行するストア命令と後続するロード命令との間に発生するSFI(Store Fetch Interlock)により、プログラムの性能が低下する場合があるという問題がある。
【0006】
一つの側面では、本発明は、SFIによる性能低下を低減することを目的とする。
【課題を解決するための手段】
【0007】
1つの実施態様では、最適化対象となるプログラムから、ストア命令と当該ストア命令に後続するロード命令とを含む対象ループ処理を検出し、検出した前記対象ループ処理を、前記ストア命令のアクセスアドレスと前記ロード命令のアクセスアドレスとが、プロセッサからメモリへの同じアクセス単位とならないように、前記対象ループ処理の繰り返し回数のうちの第1回数分、前記ストア命令を先行して実行する第1ループ処理と、前記第1ループ処理の後に、前記繰り返し回数から前記第1回数を減算した第2回数分、前記ストア命令と前記ロード命令とを実行する第2ループ処理と、前記第2ループ処理の後に、前記第1回数分、前記ロード命令を実行する第3ループ処理とに変更する、コンパイルプログラムが提供される。
【発明の効果】
【0008】
本発明の一側面によれば、SFIによる性能低下を低減することができるという効果を奏する。
【図面の簡単な説明】
【0009】
図1は、実施の形態にかかるコンパイル方法の一実施例を示す説明図である。
図2は、第1のプログラム例を示す説明図である。
図3は、第2のプログラム例を示す説明図である。
図4は、情報処理装置101のハードウェア構成例を示すブロック図である。
図5は、情報処理装置101の機能的構成例を示すブロック図である。
図6は、storeとloadとの関係を示す説明図である。
図7は、ループ再構成後のプログラム例を示す説明図である。
図8は、初期ループにおける命令の関係を示す説明図である。
図9Aは、カーネルループにおける命令の関係を示す説明図(その1)である。
図9Bは、カーネルループにおける命令の関係を示す説明図(その2)である。
図10は、終了ループにおける命令の関係を示す説明図である。
図11は、情報処理装置101のコンパイル処理手順の一例を示すフローチャートである。
図12は、対象プログラムの一例を示す説明図である。
図13は、DOループ管理テーブルの記憶内容の一例を示す説明図である。
図14Aは、配列定義情報の記憶内容の一例を示す説明図(その1)である。
図14Bは、配列定義情報の記憶内容の一例を示す説明図(その2)である。
図14Cは、配列定義情報の記憶内容の一例を示す説明図(その3)である。
図15は、ループ分割例を示す説明図である。
図16は、ソースコードの分割例を示す説明図である。
図17は、初期ループの一例を示す説明図である。
図18は、カーネルループの一例を示す説明図である。
図19は、配列の添字の変更例を示す説明図である。
図20は、終了ループの一例を示す説明図である。
図21は、ループ構成変更後のカーネルループのアセンブラ展開を示す説明図である。
図22は、ocl文を含むプログラム例を示す説明図である。
図23は、プロファイル情報等を用いた動作例を示す説明図である。
図24は、情報処理装置101のプロファイル情報取得処理手順の一例を示すフローチャートである。
図25は、プロファイル情報の具体例を示す説明図である。
図26は、情報処理装置101のイベント情報取得処理手順の一例を示すフローチャートである。
図27は、コンパイラの構成例を示す説明図である。
図28は、情報処理装置101のコンパイル処理の具体的処理手順の一例を示すフローチャートである。
図29は、第1の対象ループ検出処理の具体的処理手順の一例を示すフローチャートである。
図30は、第2の対象ループ検出処理の具体的処理手順の一例を示すフローチャートである。
図31は、ループ構成変更処理の具体的処理手順の一例を示すフローチャートである。
【発明を実施するための形態】
【0010】
以下に図面を参照して、本発明にかかるコンパイルプログラムおよびコンパイル方法の実施の形態を詳細に説明する。
(【0011】以降は省略されています)

この特許をJ-PlatPat(特許庁公式サイト)で参照する

関連特許

富士通株式会社
半導体装置
1か月前
富士通株式会社
メッシュ微細化
1か月前
富士通株式会社
半導体デバイス
1か月前
富士通株式会社
画像処理モデル
23日前
富士通株式会社
演算器及び演算方法
1か月前
富士通株式会社
冷却装置及び電子機器
1か月前
富士通株式会社
ポイントクラウド分類
1か月前
富士通株式会社
アレイアンテナモジュール
1か月前
富士通株式会社
電子機器筐体及び電子機器
1か月前
富士通株式会社
OLT及びPONシステム
7日前
富士通株式会社
光送信器及び光トランシーバ
1か月前
富士通株式会社
演算処理装置及び情報処理装置
17日前
富士通株式会社
通信制御装置及び移動中継装置
1か月前
富士通株式会社
プログラム及びデータ処理装置
1日前
富士通株式会社
基板及びこれを備えた電子装置
1か月前
富士通株式会社
波長変換装置および波長変換方法
20日前
富士通株式会社
テキスト案内される画像エディタ
1か月前
富士通株式会社
メモリ管理装置及びメモリ管理方法
29日前
富士通株式会社
ラックマウント装置及びラック装置
20日前
富士通株式会社
受光デバイス及び受光デバイスの製造方法
6日前
富士通株式会社
通知プログラム、通知方法および通知装置
6日前
富士通株式会社
管理装置、管理方法、および管理プログラム
1か月前
富士通株式会社
コンパイルプログラムおよびコンパイル方法
1日前
富士通株式会社
生成プログラム、生成方法および情報処理装置
28日前
富士通株式会社
プログラム、情報処理方法および情報処理装置
1か月前
富士通株式会社
検出プログラム、検出方法および情報処理装置
20日前
富士通株式会社
キャッシュ装置およびキャッシュ装置の制御方法
1か月前
富士通株式会社
出張情報受付方法および出張情報受付プログラム
1か月前
富士通株式会社
プログラム、データ処理装置及びデータ処理方法
1か月前
富士通株式会社
半導体装置、半導体装置の製造方法及び電子装置
15日前
富士通株式会社
ターゲット追跡のための方法、装置及び記憶媒体
17日前
富士通株式会社
探索プログラム、探索方法、および情報処理装置
1か月前
富士通株式会社
制御プログラム、制御方法、および情報処理装置
1か月前
富士通株式会社
データ処理装置、データ処理方法およびプログラム
14日前
富士通株式会社
プログラム、データ処理方法およびデータ処理装置
28日前
富士通株式会社
並列コンピューティング・カテゴリー分けプロセス
1か月前
続きを見る