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(特許庁公式サイト)で参照する

関連特許

個人
裁判のAI化
2か月前
個人
フラワーコートA
1か月前
個人
工程設計支援装置
1か月前
個人
情報処理システム
2か月前
個人
検査システム
2か月前
個人
冷凍食品輸出支援構造
14日前
個人
為替ポイント伊達夢貯
14日前
個人
介護情報提供システム
1か月前
個人
表変換編集支援システム
7日前
個人
設計支援システム
1か月前
個人
設計支援システム
1か月前
個人
携帯情報端末装置
1か月前
個人
不動産売買システム
2か月前
キヤノン電子株式会社
携帯装置
2か月前
株式会社サタケ
籾摺・調製設備
2か月前
個人
結婚相手紹介支援システム
1か月前
個人
知財出願支援AIシステム
14日前
株式会社カクシン
支援装置
1か月前
個人
行動時間管理システム
9日前
個人
AIによる情報の売買の仲介
16日前
個人
パスワード管理支援システム
7日前
個人
備蓄品の管理方法
2か月前
個人
アンケート支援システム
1か月前
日本精機株式会社
施工管理システム
16日前
個人
パスポートレス入出国システム
20日前
株式会社アジラ
進入判定装置
20日前
個人
AIキャラクター制御システム
7日前
キヤノン株式会社
情報処理装置
2か月前
キヤノン株式会社
情報処理装置
2か月前
個人
食事受注会計処理システム
21日前
個人
社会還元・施設向け供給支援構造
7日前
サクサ株式会社
中継装置
7日前
個人
音声対話型帳票生成支援システム
7日前
個人
SaaS型勤務調整支援システム
7日前
個人
冷凍加工連携型農場運用システム
14日前
大阪瓦斯株式会社
住宅設備機器
28日前
続きを見る