TOP
|
特許
|
意匠
|
商標
特許ウォッチ
Twitter
他の特許を見る
10個以上の画像は省略されています。
公開番号
2024165013
公報種別
公開特許公報(A)
公開日
2024-11-28
出願番号
2023080815
出願日
2023-05-16
発明の名称
コンパイラプログラム、判定方法および情報処理装置
出願人
富士通株式会社
代理人
弁理士法人扶桑国際特許事務所
主分類
G06F
8/41 20180101AFI20241121BHJP(計算;計数)
要約
【課題】演算の割り当て先を効率的に判定する。
【解決手段】処理部12は、中間コード11aに基づいて、データ間のデータ依存距離とループ制御に用いられるインデックス値の変化量であるストライド量とを取得する。処理部12は、中間コード11aに対応するデータフローグラフ20の経路ごとに、経路長とデータのベクトル長とに基づき、単位時間当たりにアクティブになるノード数を示すリソース使用率を計算する。処理部12は、各径路に対して、データ依存距離とストライド量とリソース使用率とに基づき、当該経路における各命令を並列に実行し得る演算リソースの数の指標である平均実行リソース数を計算する。処理部12は、各経路に対して計算した平均実行リソース数に基づいて、中間コード11aに対応する演算の割り当て先を、逐次演算を行う第1の演算器とするか、または、データ並列演算を行う第2の演算器とするかを判定する。
【選択図】図1
特許請求の範囲
【請求項1】
コンピュータに、
ソースプログラムから生成された中間コードに基づいて、前記中間コードの演算に用いられるデータ間のデータ依存距離と前記中間コードにおけるループ制御に用いられるインデックス値の変化量であるストライド量とを取得し、
前記中間コードに含まれる複数の命令に対応する複数のノードを含むデータフローグラフにおける1以上の経路であって、ロード命令のノードからストア命令のノードに至る前記1以上の経路それぞれに対して、当該経路の経路長と当該経路で用いられるデータのベクトル長とに基づき、当該経路に含まれるノードのうち、単位時間当たりにアクティブになるノード数を示すリソース使用率を計算し、
前記1以上の経路それぞれに対して、前記データ依存距離と前記ストライド量と当該経路に対応する前記リソース使用率とに基づき、当該経路における各命令を並列に実行し得る演算リソースの数の指標である平均実行リソース数を計算し、
前記1以上の経路それぞれに対して計算した前記平均実行リソース数に基づいて、前記中間コードに対応する演算の割り当て先を、逐次演算を行う第1の演算器とするか、または、データ並列演算を行う第2の演算器とするかを判定する、
処理を実行させるコンパイラプログラム。
続きを表示(約 2,000 文字)
【請求項2】
前記ロード命令の対象のデータを示す前記インデックス値と、前記ストア命令の対象のデータを示す前記インデックス値との差分を前記データ依存距離として取得する、
処理を前記コンピュータに実行させる請求項1記載のコンパイラプログラム。
【請求項3】
前記経路長と前記ベクトル長とに基づいて、該当の経路においてデータが出現する総ステップ数を計算し、当該経路の各ノードへデータが割り当てられる回数の総和を、前記総ステップ数と当該経路の総ノード数との積により割ることで、前記リソース使用率を計算する、
処理を前記コンピュータに実行させる請求項1記載のコンパイラプログラム。
【請求項4】
前記データ依存距離を、前記リソース使用率と前記ストライド量との積により割ることで、前記平均実行リソース数を計算する、
処理を前記コンピュータに実行させる請求項1記載のコンパイラプログラム。
【請求項5】
前記判定では、前記平均実行リソース数が閾値以上である経路の数と正の実数値との第1の積が、前記データフローグラフにおける前記ロード命令の数と前記ストア命令の数との第2の積以上であるか否かを判定し、
前記第1の積が前記第2の積未満である場合、前記割り当て先を前記第1の演算器とすると判定し、
前記第1の積が前記第2の積以上である場合、前記割り当て先を前記第2の演算器とすると判定する、
処理を前記コンピュータに実行させる請求項1記載のコンパイラプログラム。
【請求項6】
前記割り当て先を前記第1の演算器と判定すると、前記第1の演算器に対応する実行可能コードを生成する第1のコンパイラバックエンドに対して前記中間コードを出力し、
前記割り当て先を前記第2の演算器と判定すると、前記第2の演算器に対応する実行可能コードを生成する第2のコンパイラバックエンドに対して前記中間コードを出力する、
処理を前記コンピュータに実行させる請求項1記載のコンパイラプログラム。
【請求項7】
コンピュータが、
ソースプログラムから生成された中間コードに基づいて、前記中間コードの演算に用いられるデータ間のデータ依存距離と前記中間コードにおけるループ制御に用いられるインデックス値の変化量であるストライド量とを取得し、
前記中間コードに含まれる複数の命令に対応する複数のノードを含むデータフローグラフにおける1以上の経路であって、ロード命令のノードからストア命令のノードに至る前記1以上の経路それぞれに対して、当該経路の経路長と当該経路で用いられるデータのベクトル長とに基づき、当該経路に含まれるノードのうち、単位時間当たりにアクティブになるノード数を示すリソース使用率を計算し、
前記1以上の経路それぞれに対して、前記データ依存距離と前記ストライド量と当該経路に対応する前記リソース使用率とに基づき、当該経路における各命令を並列に実行し得る演算リソースの数の指標である平均実行リソース数を計算し、
前記1以上の経路それぞれに対して計算した前記平均実行リソース数に基づいて、前記中間コードに対応する演算の割り当て先を、逐次演算を行う第1の演算器とするか、または、データ並列演算を行う第2の演算器とするかを判定する、
判定方法。
【請求項8】
ソースプログラムから生成された中間コードを記憶する記憶部と、
前記中間コードに基づいて、前記中間コードの演算に用いられるデータ間のデータ依存距離と前記中間コードにおけるループ制御に用いられるインデックス値の変化量であるストライド量とを取得し、前記中間コードに含まれる複数の命令に対応する複数のノードを含むデータフローグラフにおける1以上の経路であって、ロード命令のノードからストア命令のノードに至る前記1以上の経路それぞれに対して、当該経路の経路長と当該経路で用いられるデータのベクトル長とに基づき、当該経路に含まれるノードのうち、単位時間当たりにアクティブになるノード数を示すリソース使用率を計算し、前記1以上の経路それぞれに対して、前記データ依存距離と前記ストライド量と当該経路に対応する前記リソース使用率とに基づき、当該経路における各命令を並列に実行し得る演算リソースの数の指標である平均実行リソース数を計算し、前記1以上の経路それぞれに対して計算した前記平均実行リソース数に基づいて、前記中間コードに対応する演算の割り当て先を、逐次演算を行う第1の演算器とするか、または、データ並列演算を行う第2の演算器とするかを判定する処理部と、
を有する情報処理装置。
発明の詳細な説明
【技術分野】
【0001】
本発明はコンパイラプログラム、判定方法および情報処理装置に関する。
続きを表示(約 1,700 文字)
【背景技術】
【0002】
異種の演算器が混在するヘテロジニアスな環境を有するコンピュータシステムが利用されている。当該コンピュータシステムは、逐次演算を行うCPU(Central Processing Unit)などの演算器やデータ並列演算を行うCGRA(Coarse Grained Reconfigurable Array)などの演算器を含み得る。
【0003】
例えば、命令セットの異なるプロセッサを集積するヘテロジニアス・マルチプロセッサシステムにおいて、タスクの実行コストに応じて汎用プロセッサグループまたはアクセラレータグループのいずれか一方へ当該タスクを割り当てるコンパイラの提案がある。提案のコンパイラは、汎用プロセッサグループおよびアクセラレータグループそれぞれのプロセッサについて、データ転送時間とタスク処理時間との和として、タスクの実行コストを求める。
【0004】
また、コンピュータが、逐次プログラムを構成する各タスクの実行時間を判断値として、それが一定値以上であれば仮の並列タスクとし、一定値未満であれば逐次タスクに分類する並列化方法の提案がある。提案の並列化方法では、コンピュータは更に、仮の並列タスクのうちハンドラ処理が干渉する可能性が低いものを並列タスクに採用し、干渉する可能性が高いものを並列タスクに採用せず逐次タスクとする。
【先行技術文献】
【特許文献】
【0005】
特開2007-328415号公報
特開2020-181407号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
上記のように、ヘテロジニアスなコンピュータシステムでは、コンパイル時に、演算の割り当て先とする演算器の判定処理が行われ得る。当該判定処理の効率性は、コンパイルに要する時間に影響する。例えば、実行時コンパイル(JIT(Just-In-Time)コンパイル)を行う場合、当該判定処理に時間がかかると、演算完了までの時間が遅延し得る。
【0007】
1つの側面では、本発明は、演算の割り当て先を効率的に判定可能にすることを目的とする。
【課題を解決するための手段】
【0008】
1つの態様では、コンパイラプログラムが提供される。このコンパイラプログラムは、コンピュータに次の処理を実行させる。コンピュータは、ソースプログラムから生成された中間コードに基づいて、中間コードの演算に用いられるデータ間のデータ依存距離と中間コードにおけるループ制御に用いられるインデックス値の変化量であるストライド量とを取得する。コンピュータは、中間コードに含まれる複数の命令に対応する複数のノードを含むデータフローグラフにおける1以上の経路であって、ロード命令のノードからストア命令のノードに至る1以上の経路それぞれに対して、当該経路の経路長と当該経路で用いられるデータのベクトル長とに基づき、当該経路に含まれるノードのうち、単位時間当たりにアクティブになるノード数を示すリソース使用率を計算する。コンピュータは、1以上の経路それぞれに対して、データ依存距離とストライド量と当該経路に対応するリソース使用率とに基づき、当該経路における各命令を並列に実行し得る演算リソースの数の指標である平均実行リソース数を計算する。コンピュータは、1以上の経路それぞれに対して計算した平均実行リソース数に基づいて、中間コードに対応する演算の割り当て先を、逐次演算を行う第1の演算器とするか、または、データ並列演算を行う第2の演算器とするかを判定する。
【0009】
また、1つの態様では、コンピュータによって実行される判定方法が提供される。また、1つの態様では、記憶部と処理部とを有する情報処理装置が提供される。
【発明の効果】
【0010】
1つの側面では、演算の割り当て先を効率的に判定できる。
【図面の簡単な説明】
(【0011】以降は省略されています)
この特許をJ-PlatPatで参照する
関連特許
富士通株式会社
予測
12日前
富士通株式会社
プロセッサ
19日前
富士通株式会社
シーン検出
12日前
富士通株式会社
異常な挙動の検出
20日前
富士通株式会社
冷却部品、及び冷却装置
6日前
富士通株式会社
機械学習方法および情報処理装置
20日前
富士通株式会社
画像視角変化類型検出装置と方法
20日前
富士通株式会社
異常検知装置および異常検知方法
19日前
富士通株式会社
ネットワーク装置及びモデル学習方法
19日前
富士通株式会社
能動学習プログラム、方法、及び装置
5日前
富士通株式会社
歪み補正係数算出方法およびプログラム
27日前
富士通株式会社
光伝送装置および送信光パワー制御方法
13日前
富士通株式会社
データ連携方法及びデータ連携プログラム
27日前
富士通株式会社
サーバ監視システムおよびサーバ監視方法
5日前
富士通株式会社
支援プログラム、支援方法及び情報処理装置
19日前
富士通株式会社
評価プログラム、評価方法および情報処理装置
12日前
富士通株式会社
制御プログラム、制御方法および制御システム
26日前
富士通株式会社
生成プログラム、生成方法および情報処理装置
12日前
富士通株式会社
推定プログラム、推定方法、及び情報処理装置
19日前
富士通株式会社
データ処理装置、プログラム及びデータ処理方法
9日前
富士通株式会社
プログラム、データ処理装置及びデータ処理方法
27日前
富士通株式会社
情報処理プログラム、情報処理方法及び情報処理装置
12日前
富士通株式会社
情報処理プログラム、情報処理方法及び情報処理装置
13日前
富士通株式会社
割当制御プログラム、割当制御方法および情報処理装置
26日前
富士通株式会社
データ処理装置、データ処理プログラム及びデータ処理方法
19日前
富士通株式会社
通知先決定プログラム、通知先決定方法及び通知先決定装置
12日前
富士通株式会社
機械学習パイプライン部品判定プログラム、方法、及び装置
20日前
富士通株式会社
光送信器、これを用いた光トランシーバ、及び波長制御方法
13日前
富士通株式会社
光給電/通信装置、光給電監視システム、及び光給電監視方法
27日前
富士通株式会社
レポート作成プログラム、レポート作成方法、レポート作成装置
19日前
富士通株式会社
アバター生成プログラム、アバター生成方法および情報処理装置
12日前
富士通株式会社
データ管理プログラム、データ管理装置、およびデータ管理システム
20日前
富士通株式会社
ジョブスケジューリングプログラム、ジョブスケジューリング方法および情報処理装置
27日前
個人
情報提示方法
1か月前
個人
プログラム
1か月前
個人
自動精算システム
1か月前
続きを見る
他の特許を見る