JP6331865B2 - プログラム最適化方法,プログラム最適化プログラム及びプログラム最適化装置 - Google Patents
プログラム最適化方法,プログラム最適化プログラム及びプログラム最適化装置 Download PDFInfo
- Publication number
- JP6331865B2 JP6331865B2 JP2014164671A JP2014164671A JP6331865B2 JP 6331865 B2 JP6331865 B2 JP 6331865B2 JP 2014164671 A JP2014164671 A JP 2014164671A JP 2014164671 A JP2014164671 A JP 2014164671A JP 6331865 B2 JP6331865 B2 JP 6331865B2
- Authority
- JP
- Japan
- Prior art keywords
- loop
- program
- simd
- instruction
- optimization
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/443—Optimisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
- G06F11/3419—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/445—Exploiting fine grain parallelism, i.e. parallelism at instruction level
- G06F8/4452—Software pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/81—Threshold
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/865—Monitoring of software
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Devices For Executing Special Programs (AREA)
Description
前記プロファイル情報に基づいて演算待ち時間を算出し,
前記演算待ち時間が第1の閾値より長い場合,前記オリジナルプログラムのループ内のSIMD命令率が第2の閾値より低い場合に,前記ループ内のIF文の命令をSIMD化するSIMD化制御行を前記オリジナルプログラムのループに挿入してチューニングプログラムを生成する
処理を有するプログラム最適化方法である。
図8は,図3の最適化の解析工程S13のフローチャート図である。図8に示した最適化の解析は,図5においてボトルネックの一つである演算待ち時間が閾値を越えていたため,演算待ちのボトルネックを改善すべきと判断された場合の最適化の解析処理を示している。すなわち,図8の最適化の解析は,演算待ちを改善するためにどの最適化制御行をどこに挿入すべきかを解析する処理である。また,図8の最適化の解析工程は,解析範囲であるループ毎に行われる。
以下,マスク方式SIMD化とリスト方式SIMD化について簡単に説明する。まず,前提として,チューニングプログラムを実行するコンピュータのCPUコアの構成例について説明する。
次に,マスク方式のSIMD化する最適化について説明する。図11のオリジナルプログラム30は,DOループ内にIF文を含み,IF文の条件式が真の場合に演算命令を実行する。演算命令は,例えば加算演算の場合,第1,第2の数値をメモリからレジスタにロードし,両レジスタ内の第1,第2の数値を加算してレジスタに格納し,レジスタ内の加算結果をメモリにストアするという3つの命令文で構成される。したがって,ソースコードの加算命令は,ロード命令と加算命令とストア命令とに分解されたオブジェクトコードに変換されて,CPUにより実行される。その分解された命令を実行することで,コンピュータは,上記の加算対象の数値のロード命令を先行して実行し,ロード命令の完了を待って複数のSIMD演算器で加算演算を実行し,最後に加算結果をメモリに格納するストア命令を実行する。
次に,リスト方式SIMD化する最適化について説明する。DOループ内のIF文の演算命令をSIMD化する場合,前述のマスク方式SIMD化するのが一般的である。しかし,IF文の条件の真率が所定の閾値以下になると,マスク方式SIMD化では演算結果を廃棄する確率が高くなり,SIMD化による効率アップよりも無駄な演算を実行したことによる効率ダウンのほうが強くなる。
idx(1)=1, idx(2)=3, idx(3)=5, idx(4)=7となるので,第2のループでの演算命令は4回繰り返されるだけになり,その演算命令の演算結果は全てストアされ,演算の無駄が発生しない。
ループ構造の最適化は,上記の複数の命令を複数のSIMD演算器で並列に実行するSIMD化に加えて,ループ構造のオリジナルプログラムをアンローリング展開して繰り返し回数を減らす最適化方法と,連続する命令群をCPUコア内のパイプライン構造により並列に実行して処理サイクルを短縮するソフトウエアパイプライン化の最適化方法とが有効である。
そこで,図19の最適化制御行の例では,オリジナルプログラム31は,図10(B)に示したものと同じであり,DOループ内にIF文が存在せず繰り返し回数がn回のループを有するプログラムである。コンピュータがライブラリプログラムを実行することで,DOループの実行時情報を取得し,実行時情報に含まれるDOループの繰り返し回数が大(例えばnが144回以上)の場合は,最適化制御行として何も挿入しないチューニングプログラム34_1を生成することを決定する。このチューニングプログラム34_1は,オリジナルプログラム31に何も最適化制御行が挿入されていない。この場合は,コンピュータがコンパイラを実行して,チューニングプログラム34_1を次のような複数のループを有するオブジェクトコードに変換する。
図19に戻り,コンピュータがライブラリプログラムを実行することで,DOループの実行時情報を取得し,実行時情報に含まれるDOループの繰り返し回数が中(例えばnが144回未満,16回以上)の場合は,最適化制御行「!loc simd, unroll, noswp」を挿入したチューニングプログラム34_2を生成することを決定する。このチューニングプログラム34_2の場合,コンピュータがコンパイラを実行して,チューニングプログラム34_2を次のような複数のループを有するオブジェクトコードに変換する。
図19に戻り,コンピュータがライブラリプログラムを実行することで,DOループの実行時情報を取得し,実行時情報に含まれるDOループの繰り返し回数が少(例えばnが16回未満,2回以上)の場合は,最適化制御行「!loc simd, nounroll, noswp」を挿入したチューニングプログラム34_3を生成することを決定する。このチューニングプログラム34_3の場合,コンピュータがコンパイラを実行して,チューニングプログラム34_3を次のような複数のループを有するオブジェクトコードに変換する。
図19に戻り,コンピュータがライブラリプログラムを実行することで,DOループの実行時情報を取得し,実行時情報に含まれるDOループの繰り返し回数が微少(例えばnが2回未満)の場合は,最適化制御行「!loc nosimd, nounroll, noswp」を挿入したチューニングプログラム34_4を生成することを決定する。このチューニングプログラム34_4の場合,コンピュータがコンパイラを実行して,チューニングプログラム34_4を次のような複数のループを有するオブジェクトコードに変換する。
演算処理装置が,
最適化対象のオリジナルプログラムをコンピュータに実行させて実行時の分析結果を含むプロファイル情報を収集し,
前記プロファイル情報に基づいて演算待ち時間を算出し,
前記演算待ち時間が第1の閾値より長い場合,前記オリジナルプログラムのループ内のSIMD命令率が第2の閾値より低い場合に,前記ループ内のIF文の命令をSIMD化するSIMD化制御行を前記オリジナルプログラムのループに挿入してチューニングプログラムを生成する
処理を有するプログラム最適化方法。
前記SIMD化制御行を前記オリジナルプログラムのループに挿入して前記チューニングプログラムを生成する処理では,前記IF文の命令を実行する条件が真になる真率が第3の閾値を超えている場合は,マスク方式SIMD化制御行を挿入し,前記真率が前記第3の閾値以下の場合は,リスト方式SIMD化制御行を挿入し,
前記マスク方式SIMD化制御行が挿入されている場合は,前記IF文の条件にかかわらず前記IF文の命令を順次SIMD演算器で並列に実行し前記IF文の条件が真でない場合の命令実行結果を破棄するように,コンパイラが前記チューニングプログラムをオブジェクトコードに変換し,
前記リスト方式SIMD化制御行が挿入されている場合は,前記コンパイラが,前記ループを,前記IF文の条件を満たすループ制御変数の値を配列に登録する第1のループと,前記配列のサイズだけ回転して前記IF文の命令を実行する第2のループとに変換する,付記1に記載のプログラム最適化方法。
更に,
前記演算待ち時間が第1の閾値より長い場合,前記ループの繰り返し回数が第4の閾値以下の場合は,少ない回転向け最適化制御行を挿入し,前記ループの繰り返し回数が前記第4の閾値を超えている場合は,多い回転向け最適化制御行を挿入する処理を有し,
前記少ない回転向け最適化制御行が挿入されている場合は,前記ループ内の命令をCPUコアでパイプライン処理するパイプライン展開または前記ループ内の命令を複数の同じ命令に展開するアンローディング展開の実行ループを生成しないように,前記コンパイラが前記チューニングプログラムをオブジェクトコードに変換し,
前記多い回転向け最適化制御行が挿入されている場合は,前記ループ内の命令をCPUコアでパイプライン処理するパイプライン展開または前記ループ内の命令を複数の同じ命令に展開するアンローディング展開の実行ループを生成するように,前記コンパイラが前記チューニングプログラムをオブジェクトコードに変換する付記1または2に記載のプログラム最適化方法。
最適化対象のオリジナルプログラムをコンピュータに実行させて実行時の分析結果を含むプロファイル情報を収集し,
前記プロファイル情報に基づいて演算待ち時間を算出し,
前記演算待ち時間が第1の閾値より長い場合,前記オリジナルプログラムのループ内のSIMD命令率が第2の閾値より低い場合に,前記ループ内のIF文の命令をSIMD化するSIMD化制御行を前記オリジナルプログラムのループに挿入してチューニングプログラムを生成する
処理をコンピュータに実行させるプログラム最適化プログラム。
前記SIMD化制御行を前記オリジナルプログラムのループに挿入して前記チューニングプログラムを生成する処理では,前記IF文の命令を実行する条件が真になる真率が第3の閾値を超えている場合は,マスク方式SIMD化制御行を挿入し,前記真率が前記第3の閾値以下の場合は,リスト方式SIMD化制御行を挿入し,
前記マスク方式SIMD化制御行が挿入されている場合は,前記IF文の条件にかかわらず前記IF文の命令を順次SIMD演算器で並列に実行し前記IF文の条件が真でない場合の命令実行結果を破棄するように,コンパイラが前記チューニングプログラムをオブジェクトコードに変換し,
前記リスト方式SIMD化制御行が挿入されている場合は,前記コンパイラが,前記ループを,前記IF文の条件を満たすループ制御変数の値を配列に登録する第1のループと,前記配列のサイズだけ回転して前記IF文の命令を実行する第2のループとに変換する,付記4に記載のプログラム最適化プログラム。
最適化対象のオリジナルプログラムをコンピュータに実行させて実行時の分析結果を含むプロファイル情報を収集する手段と,
前記プロファイル情報に基づいて演算待ち時間を算出する手段と,
前記演算待ち時間が第1の閾値より長い場合,前記オリジナルプログラムのループ内のSIMD命令率が第2の閾値より低い場合に,前記ループ内のIF文の命令をSIMD化するSIMD化制御行を前記オリジナルプログラムのループに挿入してチューニングプログラムを生成する手段と
を有するプログラム最適化装置。
前記SIMD化制御行を前記オリジナルプログラムのループに挿入して前記チューニングプログラムを生成する手段は,前記IF文の命令を実行する条件が真になる真率が第3の閾値を超えている場合は,マスク方式SIMD化制御行を挿入し,前記真率が前記第3の閾値以下の場合は,リスト方式SIMD化制御行を挿入し,
前記マスク方式SIMD化制御行が挿入されている場合は,前記IF文の条件にかかわらず前記IF文の命令を順次SIMD演算器で並列に実行し前記IF文の条件が真でない場合の命令実行結果を破棄するように,コンパイラが前記チューニングプログラムをオブジェクトコードに変換し,
前記リスト方式SIMD化制御行が挿入されている場合は,前記コンパイラが,前記ループを,前記IF文の条件を満たすループ制御変数の値を配列に登録する第1のループと,前記配列のサイズだけ回転して前記IF文の命令を実行する第2のループとに変換する,付記1に記載のプログラム最適化装置。
20:オリジナルプログラム
21:オブジェクトコード,実行可能バイナリコード
22:最適化制御行データ
23:チューニングプログラム
Claims (5)
- 演算処理装置が,
最適化対象のオリジナルプログラムをコンピュータに実行させて実行時の分析結果を含むプロファイル情報を収集し,
前記プロファイル情報に基づいて演算待ち時間を算出し,
前記演算待ち時間が第1の閾値より長い場合,前記オリジナルプログラムのループ内のSIMD命令率が第2の閾値より低い場合に,前記ループ内のIF文の命令をSIMD化するSIMD化制御行を前記オリジナルプログラムのループに挿入してチューニングプログラムを生成する
処理を有するプログラム最適化方法。 - 前記SIMD化制御行を前記オリジナルプログラムのループに挿入して前記チューニングプログラムを生成する処理では,前記IF文の命令を実行する条件が真になる真率が第3の閾値を超えている場合は,マスク方式SIMD化制御行を挿入し,前記真率が前記第3の閾値以下の場合は,リスト方式SIMD化制御行を挿入し,
前記マスク方式SIMD化制御行が挿入されている場合は,前記IF文の条件にかかわらず前記IF文の命令を順次SIMD演算器で並列に実行し前記IF文の条件が真でない場合の命令実行結果を破棄するように,コンパイラが前記チューニングプログラムをオブジェクトコードに変換し,
前記リスト方式SIMD化制御行が挿入されている場合は,前記コンパイラが,前記ループを,前記IF文の条件を満たすループ制御変数の値を配列に登録する第1のループと,前記配列のサイズだけ回転して前記IF文の命令を実行する第2のループとに変換する,請求項1に記載のプログラム最適化方法。 - 更に,
前記演算待ち時間が第1の閾値より長い場合,前記ループの繰り返し回数が第4の閾値以下の場合は,少ない回転向け最適化制御行を挿入し,前記ループの繰り返し回数が前記第4の閾値を超えている場合は,多い回転向け最適化制御行を挿入する処理を有し,
前記少ない回転向け最適化制御行が挿入されている場合は,前記ループ内の命令をCPUコアでパイプライン処理するパイプライン展開または前記ループ内の命令を複数の同じ命令に展開するアンローディング展開の実行ループを生成しないように,前記コンパイラが前記チューニングプログラムをオブジェクトコードに変換し,
前記多い回転向け最適化制御行が挿入されている場合は,前記ループ内の命令をCPUコアでパイプライン処理するパイプライン展開または前記ループ内の命令を複数の同じ命令に展開するアンローディング展開の実行ループを生成するように,前記コンパイラが前記チューニングプログラムをオブジェクトコードに変換する請求項2に記載のプログラム最適化方法。 - 最適化対象のオリジナルプログラムをコンピュータに実行させて実行時の分析結果を含むプロファイル情報を収集し,
前記プロファイル情報に基づいて演算待ち時間を算出し,
前記演算待ち時間が第1の閾値より長い場合,前記オリジナルプログラムのループ内のSIMD命令率が第2の閾値より低い場合に,前記ループ内のIF文の命令をSIMD化するSIMD化制御行を前記オリジナルプログラムのループに挿入してチューニングプログラムを生成する
処理をコンピュータに実行させるプログラム最適化プログラム。 - 最適化対象のオリジナルプログラムをコンピュータに実行させて実行時の分析結果を含むプロファイル情報を収集する手段と,
前記プロファイル情報に基づいて演算待ち時間を算出する手段と,
前記演算待ち時間が第1の閾値より長い場合,前記オリジナルプログラムのループ内のSIMD命令率が第2の閾値より低い場合に,前記ループ内のIF文の命令をSIMD化するSIMD化制御行を前記オリジナルプログラムのループに挿入してチューニングプログラムを生成する手段と
を有するプログラム最適化装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014164671A JP6331865B2 (ja) | 2014-08-13 | 2014-08-13 | プログラム最適化方法,プログラム最適化プログラム及びプログラム最適化装置 |
US14/799,625 US9760352B2 (en) | 2014-08-13 | 2015-07-15 | Program optimization method, program optimization program, and program optimization apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014164671A JP6331865B2 (ja) | 2014-08-13 | 2014-08-13 | プログラム最適化方法,プログラム最適化プログラム及びプログラム最適化装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2016040691A JP2016040691A (ja) | 2016-03-24 |
JP6331865B2 true JP6331865B2 (ja) | 2018-05-30 |
Family
ID=55302229
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014164671A Active JP6331865B2 (ja) | 2014-08-13 | 2014-08-13 | プログラム最適化方法,プログラム最適化プログラム及びプログラム最適化装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9760352B2 (ja) |
JP (1) | JP6331865B2 (ja) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9229524B2 (en) * | 2012-06-27 | 2016-01-05 | Intel Corporation | Performing local power gating in a processor |
JP6492943B2 (ja) * | 2015-05-07 | 2019-04-03 | 富士通株式会社 | 計算機、コンパイル方法、コンパイルプログラム、およびパイプライン処理プログラム |
US9612810B2 (en) * | 2015-08-25 | 2017-04-04 | International Business Machines Corporation | Profile-based per-device code optimization |
US10191792B2 (en) * | 2016-03-04 | 2019-01-29 | International Business Machines Corporation | Application abnormality detection |
US10705836B2 (en) | 2018-04-20 | 2020-07-07 | International Business Machines Corporation | Mapping components of a non-distributed environment to a distributed environment |
JP7263994B2 (ja) | 2019-09-17 | 2023-04-25 | 富士通株式会社 | 情報処理方法及び最適化プログラム |
US11288046B2 (en) * | 2019-10-30 | 2022-03-29 | International Business Machines Corporation | Methods and systems for program optimization utilizing intelligent space exploration |
JP2021093012A (ja) * | 2019-12-11 | 2021-06-17 | 富士通株式会社 | コンパイルプログラム、および情報処理装置 |
CN112988194B (zh) * | 2021-03-29 | 2023-12-15 | 北京市商汤科技开发有限公司 | 基于设备信息的程序优化方法、装置、电子设备及存储介质 |
CN114465820B (zh) * | 2022-03-31 | 2024-07-30 | 京东方科技集团股份有限公司 | 数据加密方法、数据加密设备、电子设备、程序及介质 |
WO2024181090A1 (ja) * | 2023-02-27 | 2024-09-06 | 日本電気株式会社 | 多重ループ変換装置、情報処理方法および情報処理プログラム |
Family Cites Families (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS63632A (ja) | 1986-06-19 | 1988-01-05 | Fujitsu Ltd | 原始プログラムの最適化処理方式 |
JPS6353646A (ja) * | 1986-08-22 | 1988-03-07 | Nec Corp | 最適目的プログラム生成方式 |
JPH04274519A (ja) * | 1991-02-28 | 1992-09-30 | Nec Corp | プログラム高速化自動実行方式 |
US5857088A (en) * | 1991-10-24 | 1999-01-05 | Intel Corporation | System for configuring memory space for storing single decoder table, reconfiguring same space for storing plurality of decoder tables, and selecting one configuration based on encoding scheme |
US5522074A (en) * | 1992-12-14 | 1996-05-28 | Nec Corporation | Vectorization system for vectorizing loop containing condition induction variables |
US5579520A (en) * | 1994-05-13 | 1996-11-26 | Borland International, Inc. | System and methods for optimizing compiled code according to code object participation in program activities |
JPH08263298A (ja) | 1995-03-20 | 1996-10-11 | Fujitsu Ltd | コンパイラ装置 |
EP0869442A4 (en) * | 1996-10-18 | 2003-02-05 | Fujitsu Ltd | DEVICE AND METHOD FOR ACCELERATING THE MEMORY ACCESS SPEED |
US6134710A (en) | 1998-06-26 | 2000-10-17 | International Business Machines Corp. | Adaptive method and system to minimize the effect of long cache misses |
JP4077252B2 (ja) * | 2002-06-28 | 2008-04-16 | 富士通株式会社 | コンパイラプログラムおよびコンパイル処理方法 |
US7107585B2 (en) * | 2002-07-29 | 2006-09-12 | Arm Limited | Compilation of application code in a data processing apparatus |
US7496908B2 (en) * | 2004-01-14 | 2009-02-24 | International Business Machines Corporation | Method and apparatus for optimizing code execution using annotated trace information having performance indicator and counter information |
US7818720B2 (en) * | 2006-01-24 | 2010-10-19 | Freescale Semiconductor, Inc. | System and method for control logic code reordering based on stochastic execution time information |
US8739143B2 (en) * | 2007-01-31 | 2014-05-27 | Hewlett-Packard Development Company, L.P. | Profiling metrics for computer programs |
US8423987B2 (en) * | 2007-01-30 | 2013-04-16 | International Business Machines Corporation | Routing performance analysis and optimization within a massively parallel computer |
JP5326708B2 (ja) | 2009-03-18 | 2013-10-30 | 富士通株式会社 | 演算処理装置および演算処理装置の制御方法 |
US8387036B2 (en) * | 2010-01-27 | 2013-02-26 | Oracle America, Inc. | Method and system for execution profiling using loop count variance |
US8495607B2 (en) * | 2010-03-01 | 2013-07-23 | International Business Machines Corporation | Performing aggressive code optimization with an ability to rollback changes made by the aggressive optimizations |
US9128747B2 (en) * | 2012-03-20 | 2015-09-08 | Infosys Limited | Methods and systems for optimizing the performance of software applications at runtime |
JP5846006B2 (ja) * | 2012-03-29 | 2016-01-20 | 富士通株式会社 | プログラム、コード生成方法および情報処理装置 |
EP2901275A4 (en) * | 2012-09-28 | 2016-06-08 | Intel Corp | GRINDING VECTORIZATION PROCESS AND DEVICE |
US9052888B2 (en) * | 2013-02-21 | 2015-06-09 | International Business Machines Corporation | Vectorization in an optimizing compiler |
CN104956322B (zh) * | 2013-03-05 | 2019-03-01 | 英特尔公司 | 分析向量化的潜在效益 |
US9063754B2 (en) * | 2013-03-15 | 2015-06-23 | Cognitive Electronics, Inc. | Profiling and optimization of program code/application |
US9720667B2 (en) * | 2014-03-21 | 2017-08-01 | Intel Corporation | Automatic loop vectorization using hardware transactional memory |
-
2014
- 2014-08-13 JP JP2014164671A patent/JP6331865B2/ja active Active
-
2015
- 2015-07-15 US US14/799,625 patent/US9760352B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
JP2016040691A (ja) | 2016-03-24 |
US9760352B2 (en) | 2017-09-12 |
US20160048380A1 (en) | 2016-02-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6331865B2 (ja) | プログラム最適化方法,プログラム最適化プログラム及びプログラム最適化装置 | |
JP5356531B2 (ja) | シーケンス検出又は命令に関連付けられた情報に基づいた命令の最適化性能 | |
Franklin et al. | ARB: A hardware mechanism for dynamic reordering of memory references | |
Franklin et al. | The expandable split window paradigm for exploiting fine-grain parallelsim | |
US6412105B1 (en) | Computer method and apparatus for compilation of multi-way decisions | |
JP3311462B2 (ja) | コンパイル処理装置 | |
Marcuello et al. | Thread-spawning schemes for speculative multithreading | |
US5996060A (en) | System and method for concurrent processing | |
CN101965554B (zh) | 选择性地提交已执行指令的结果的系统和方法 | |
US6754893B2 (en) | Method for collapsing the prolog and epilog of software pipelined loops | |
JP6245031B2 (ja) | コンパイルプログラム、コンパイル方法およびコンパイル装置 | |
TWI740851B (zh) | 用於向量負載指示之資料處理設備、方法及電腦程式 | |
US9395986B2 (en) | Compiling method and compiling apparatus | |
US9483244B2 (en) | Compiling method and compiling device | |
Packirisamy et al. | Exploring speculative parallelism in SPEC2006 | |
Carr et al. | Unroll-and-jam using uniformly generated sets | |
US6516462B1 (en) | Cache miss saving for speculation load operation | |
Michaud et al. | An exploration of instruction fetch requirement in out-of-order superscalar processors | |
Sazeides | Modeling value speculation | |
Borin et al. | Lar-cc: Large atomic regions with conditional commits | |
CN116168765B (zh) | 基于改进strobemer的基因序列生成方法及系统 | |
JP3276479B2 (ja) | コンパイル方式 | |
August | Hyperblock performance optimizations for ILP processors | |
JPH10105412A (ja) | 主記憶の効率的アクセスを実現するオブジェクト生成方法 | |
Ootsu et al. | Loop performance improvement for min-cut program decomposition method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20170511 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20180223 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20180313 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20180320 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20180403 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20180416 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6331865 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |