TOP
|
特許
|
意匠
|
商標
特許ウォッチ
Twitter
他の特許を見る
10個以上の画像は省略されています。
公開番号
2025008052
公報種別
公開特許公報(A)
公開日
2025-01-20
出願番号
2023109895
出願日
2023-07-04
発明の名称
コンパイルプログラム及びコンパイル方法
出願人
富士通株式会社
代理人
弁理士法人真田特許事務所
,
個人
主分類
G06F
8/41 20180101AFI20250109BHJP(計算;計数)
要約
【課題】SIMD演算するために、1つの命令の実行に要する時間を短縮するとともに、使用上の制約を軽減する。
【解決手段】メモリからロードされるメモリデータにおいて、演算ループの脱出条件を満たすデータ要素が属する少なくとも一つの配列のデータ領域を、一度に並列して処理できるデータ長であるSIMD幅以上に確保し、前記データ要素の存在する前記配列内でのデータ位置を取得し、前記データ位置に基づいて前記配列のそれぞれのデータ要素に演算マスクを設定し、前記演算マスクを用いて前記メモリデータに対するSIMD演算を実行する、処理をコンピュータが実行するコンパイル方法を提供する。
【選択図】図23
特許請求の範囲
【請求項1】
メモリからロードされるメモリデータにおいて、演算ループの脱出条件を満たすデータ要素が属する少なくとも一つの配列のデータ領域を、一度に並列して処理できるデータ長であるSIMD(Single Instruction Multiple Data)幅以上に確保し、
前記データ要素の存在する前記配列内でのデータ位置を取得し、
前記データ位置に基づいて前記配列のそれぞれの前記データ要素に演算マスクを設定し、
前記演算マスクを用いて前記メモリデータに対するSIMD演算を実行する、
処理をコンピュータに実行させるコンパイルプログラム。
続きを表示(約 950 文字)
【請求項2】
さらに、コンパイルについてのオプション設定を受け付ける処理を前記コンピュータに実行させ、
前記配列のデータ領域を前記SIMD幅以上に確保する処理は、前記オプション設定に基づいて実行される、
請求項1に記載のコンパイルプログラム。
【請求項3】
さらに、ソースプログラム中における利用者指示を認識する処理を前記コンピュータに実行させ、
前記配列のデータ領域を前記SIMD幅以上に確保する処理は、前記ソースプログラム中の前記利用者指示に基づいて実行される、
請求項1に記載のコンパイルプログラム。
【請求項4】
さらに、ループ命令を展開することによって並列実行可能なコードを増やすループアンロールを前記コンピュータに実行させ、
前記配列のデータ領域を前記SIMD幅以上に確保する処理は、前記SIMD幅をループアンロール回数倍した領域以上のデータ領域を確保する、
請求項1に記載のコンパイルプログラム。
【請求項5】
前記配列の少なくとも一つは、複数の離散したデータ領域を有する、
請求項1に記載のコンパイルプログラム。
【請求項6】
さらに、ソースプログラムを解析し、
解析結果に基づいて、前記ソースプログラムを中間コードに変換し、
前記中間コードを機械語プログラムに変換する、
処理を前記コンピュータに実行させる、
請求項1に記載のコンパイルプログラム。
【請求項7】
メモリからロードされるメモリデータにおいて、演算ループの脱出条件を満たすデータ要素が属する少なくとも一つの配列のデータ領域を、一度に並列して処理できるデータ長であるSIMD(Single Instruction Multiple Data)幅以上に確保し、
前記データ要素の存在する前記配列内でのデータ位置を取得し、
前記データ位置に基づいて前記配列のそれぞれの前記データ要素に演算マスクを設定し、
前記演算マスクを用いて前記メモリデータに対するSIMD演算を実行する、
処理をコンピュータが実行するコンパイル方法。
発明の詳細な説明
【技術分野】
【0001】
本発明は、コンパイルプログラム及びコンパイル方法に関する。
続きを表示(約 1,500 文字)
【背景技術】
【0002】
コンピュータにおいて、演算性能を向上させるために、複数のデータに対する演算を同じ演算器で並列に実行する、SIMD(Single Instruction Multiple Data)命令が利用されることが多くなっている。特に、高い演算性能が期待されるスーパーコンピュータ又はサーバ内で動作する演算処理装置において、SIMD命令が用意されている。演算処理装置は、プロセッサと呼ばれることもある。
【0003】
SIMD命令をサポートしているプロセッサは、SIMD命令の実行時に、メモリからメモリデータをレジスタに読み出し、そのレジスタを使用して、所定のSIMD要素単位(SIMD処理単位)に含まれる複数のデータ要素を単位として並列に演算を行なう。そして、プロセッサは、それらの複数のSIMD要素を含むSIMD要素単位として、演算結果をメモリに格納する。例えば、8バイトのデータ要素が8個集まってSIMD要素単位が構成されてよい。8個の要素に対して同時に同じ演算を行う場合、SIMD要素の個数(要素数)は8個である。
【0004】
また、ソフトウェアで記述されるプログラムロジック、特に、ループ処理(すなわち、繰り返し処理)を高速化するために、コンパイラが最適な命令展開を行うことが望まれる。ループ処理を高速化する技術として、ループアンロール、ソフトウェアパイプライン、ループマージ等、様々な方法が考案されている。
【0005】
ループ処理を伴うプログラムにおいてSIMD演算するために、ファーストフォールトロード(First fault load)命令を用いる手法が知られている。
【先行技術文献】
【特許文献】
【0006】
特表2018-534672号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
SIMD演算するために、ファーストフォールトロード命令を用いる手法は、ファーストフォールトロード命令を用いない通常のSIMD命令を用いる手法に比べて、1つの命令の実行に要する時間、すなわち、命令レイテンシが長くなるので、性能向上が難しい場合がある。
【0008】
また、ファーストフォールトロード命令は、アドレッシングに制限があり、命令の種類が少ない。したがって、ファーストフォールトロード命令は、コンパイラのオブジェクト展開及び最適化において制約となり得る。また、ファーストフォールトロード命令を用いることができるCPU(Central Processing Unit)は、ファーストフォールトロード命令に対応しているCPUに限られるという制約がある。
【0009】
1つの側面では、本発明は、SIMD演算するために、1つの命令の実行に要する時間を短縮するとともに、使用上の制約を軽減することを目的とする。
【課題を解決するための手段】
【0010】
1つの側面では、コンパイルプログラムは、メモリからロードされるメモリデータにおいて、演算ループの脱出条件を満たすデータ要素が属する少なくとも一つの配列のデータ領域を、一度に並列して処理できるデータ長であるSIMD幅以上に確保し、前記データ要素の存在する前記配列内でのデータ位置を取得し、前記データ位置に基づいて前記配列のそれぞれの前記データ要素に演算マスクを設定し、前記演算マスクを用いて前記メモリデータに対するSIMD演算を実行する、処理をコンピュータに実行させる。
【発明の効果】
(【0011】以降は省略されています)
この特許をJ-PlatPatで参照する
関連特許
富士通株式会社
基地局装置及び通信方法
4日前
富士通株式会社
疾患予測根拠表示方法及びプログラム
4日前
富士通株式会社
連携装置、連携方法、連携プログラム
4日前
富士通株式会社
モジュール搭載装置、及び、情報処理装置
4日前
富士通株式会社
演算プログラム、演算方法、および情報処理装置
4日前
富士通株式会社
通信制御装置、通信装置、端末、及び通信システム
4日前
富士通株式会社
情報処理プログラム、情報処理方法、及び情報処理装置
4日前
個人
情報提示方法
5日前
個人
RFタグ読取装置
22日前
個人
プログラム
4日前
個人
自動精算システム
13日前
個人
売買システム
19日前
個人
管理サーバ
1か月前
個人
市場受発注システム
11日前
個人
発想支援方法及びシステム
8日前
個人
分類処理プログラム及び方法
8日前
日本精機株式会社
車両用表示装置
21日前
日本精機株式会社
車両用表示装置
21日前
井関農機株式会社
ロボット作業車両
13日前
富士通株式会社
金融システム
5日前
個人
VRによる人体各部位の立体化
1か月前
トヨタ自動車株式会社
推定装置
1か月前
キヤノン株式会社
情報処理装置
1か月前
ブラザー工業株式会社
無線通信装置
11日前
トヨタ自動車株式会社
作業評価装置
20日前
個人
情報処理装置およびプログラム
1か月前
トヨタ自動車株式会社
情報通知方法
11日前
村田機械株式会社
人員配置システム
8日前
トヨタ自動車株式会社
作業評価装置
1か月前
トヨタ自動車株式会社
記号識別方法
1か月前
個人
販売支援システム
13日前
トヨタ自動車株式会社
作業管理装置
11日前
トヨタ自動車株式会社
画像処理装置
1か月前
AICRO株式会社
情報処理システム
11日前
大王製紙株式会社
RFIDタグ
1か月前
トヨタ自動車株式会社
生成装置
5日前
続きを見る
他の特許を見る