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で参照する
Flag Counter

関連特許

富士通株式会社
光伝送装置
6日前
富士通株式会社
排出の推定と異常
27日前
富士通株式会社
排出の推定と異常
27日前
富士通株式会社
情報処理プログラム
1か月前
富士通株式会社
通信装置及び通信方法
5日前
富士通株式会社
演算器及び情報処理装置
5日前
富士通株式会社
伝送装置及び伝送システム
13日前
富士通株式会社
キュービット・マッピング
2日前
富士通株式会社
プログラム,装置及び方法
6日前
富士通株式会社
キュービット・ルーティング
2日前
富士通株式会社
制御装置及び制御プログラム
2日前
富士通株式会社
基地局装置及び通信システム
5日前
富士通株式会社
電圧検知回路及び情報処理装置
5日前
富士通株式会社
バイタルサイン検出装置と方法
15日前
富士通株式会社
ネットワーク装置及び判定方法
7日前
富士通株式会社
電源ユニット及びその制御方法
5日前
富士通株式会社
機械学習プログラム、方法、及び装置
1か月前
富士通株式会社
ラマン増幅装置およびラマン増幅方法
1か月前
富士通株式会社
データ転送制御装置および情報処理装置
5日前
富士通株式会社
病変検出方法および病変検出プログラム
2日前
富士通株式会社
作業割当方法および作業割当プログラム
5日前
富士通株式会社
データ生成プログラム、方法、及び装置
1か月前
富士通株式会社
コンパイルプログラム及びコンパイル方法
2日前
富士通株式会社
制御プログラム、制御方法及びサーバ装置
5日前
富士通株式会社
キャッシュコントローラ及び演算処理装置
1か月前
富士通株式会社
制御プログラム、制御装置、及び制御方法
1か月前
富士通株式会社
車両販売支援システム、方法およびプログラム
28日前
富士通株式会社
遅延制御回路、光送信装置、及び遅延制御方法
15日前
富士通株式会社
プログラム、情報処理方法および情報処理装置
27日前
富士通株式会社
シート搬送制御プログラムおよびシート搬送装置
27日前
富士通株式会社
ロードバランサ,制御プログラムおよび制御方法
15日前
富士通株式会社
半導体装置、半導体装置の製造方法及び電子装置
13日前
富士通株式会社
半導体装置、半導体装置の製造方法及び電子装置
1か月前
富士通株式会社
半導体装置、半導体装置の製造方法及び電子装置
5日前
富士通株式会社
行動要因推定方法および行動要因推定プログラム
1か月前
富士通株式会社
特定プログラム、特定方法、および情報処理装置
1か月前
続きを見る