JP2016081135A - 情報処理プログラム、情報処理装置、情報処理方法 - Google Patents
情報処理プログラム、情報処理装置、情報処理方法 Download PDFInfo
- Publication number
- JP2016081135A JP2016081135A JP2014209309A JP2014209309A JP2016081135A JP 2016081135 A JP2016081135 A JP 2016081135A JP 2014209309 A JP2014209309 A JP 2014209309A JP 2014209309 A JP2014209309 A JP 2014209309A JP 2016081135 A JP2016081135 A JP 2016081135A
- Authority
- JP
- Japan
- Prior art keywords
- array
- access
- information processing
- area
- loop
- 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.)
- Granted
Links
- 230000010365 information processing Effects 0.000 title claims abstract description 70
- 238000003672 processing method Methods 0.000 title claims description 10
- 238000012545 processing Methods 0.000 claims abstract description 150
- 238000004458 analytical method Methods 0.000 claims abstract description 86
- 230000015654 memory Effects 0.000 claims description 62
- 238000000034 method Methods 0.000 description 153
- 230000008569 process Effects 0.000 description 142
- 238000010586 diagram Methods 0.000 description 47
- 238000007726 management method Methods 0.000 description 35
- 230000000694 effects Effects 0.000 description 22
- 238000003491 array Methods 0.000 description 20
- 238000013519 translation Methods 0.000 description 17
- 230000000903 blocking effect Effects 0.000 description 13
- 230000006872 improvement Effects 0.000 description 13
- 230000006870 function Effects 0.000 description 11
- 238000013500 data storage Methods 0.000 description 10
- 238000011156 evaluation Methods 0.000 description 9
- 238000005457 optimization Methods 0.000 description 9
- 238000012300 Sequence Analysis Methods 0.000 description 7
- 238000006243 chemical reaction Methods 0.000 description 5
- 230000004913 activation Effects 0.000 description 4
- 101100534512 Homo sapiens STMN1 gene Proteins 0.000 description 2
- 102100024237 Stathmin Human genes 0.000 description 2
- 230000001174 ascending effect Effects 0.000 description 2
- 230000015556 catabolic process Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000006731 degradation reaction Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000006866 deterioration Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
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
- G06F8/4441—Reducing the execution time required by the program code
- G06F8/4442—Reducing the number of cache misses; Data prefetching
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Devices For Executing Special Programs (AREA)
- Executing Machine-Instructions (AREA)
- Computing Systems (AREA)
Abstract
【解決手段】情報処理プログラムは、情報処理装置が有する解析部に、情報処理装置が主記憶装置上の連続する領域へのアクセスを検知してハードウェアプリフェッチを開始し、連続する領域へのアクセス終了を検知してハードウェアプリフェッチを停止する場合に、ソースプログラムの解析により、ループ処理において、ハードウェアプリフェッチの対象となる配列構造を特定させ、情報処理装置が有する生成部に、配列構造への第1のアクセスの次に生じる第2のアクセスが、第1のアクセスで参照される領域と連続する領域を参照するように配列構造を変更させた機械語プログラムを、ソースプログラムから生成させる。
【選択図】図22
Description
、性能低下の要因となる。
情報処理装置が有する解析部に、前記情報処理装置が主記憶装置上の連続する領域へのアクセスを検知してハードウェアプリフェッチを開始し、前記連続する領域へのアクセス終了を検知してハードウェアプリフェッチを停止する場合に、ソースプログラムの解析により、ループ処理において、ハードウェアプリフェッチの対象となる配列構造を特定させ、
前記情報処理装置が有する生成部に、前記配列構造への第1のアクセスの次に生じる第2のアクセスが、前記第1のアクセスで参照される領域と連続する領域を参照するように前記配列構造を変更させた機械語プログラムを、前記ソースプログラムから生成させる、ための情報処理プログラム
である。
図1から図3は、ハードウェアプリフェッチ機構を説明するための図である。図1は、
ハードウェアプリフェッチ起動の例を示す図である。図1のs1で示すプログラムソースコード(以下、ソースコードともいう)には、DOで始まるjについてのループ処理が記載されている。jのループ処理は、更に、iのループ処理を含む。iのループ処理は、配列A(i,j)を参照する処理を含む。配列A(i,j)の参照により、主記憶装置上の連続領域がアクセスされる。
るため、キャッシュミスは発生しない。
図4から図6は、キャッシュミスが発生する例を説明するための図である。図4は、ハードウェアプリフェッチの停止によりキャッシュミスが発生する例を示す図である。図4に示すソースコードには、iのループ処理が記載されている。iのループ処理は、更に、jのループ処理を含む。jのループ処理は、配列A(j)を参照する処理を含む。
回発生すると、ハードウェアプリフェッチが起動される。配列A(j)のデータは、最後までプリフェッチされる。
型の配列である。プロセッサのデータキャッシュのウェイのサイズを16Kバイトとすると、配列A、B、Cはウェイのサイズと一致するため、各領域の先頭アドレスは、同じキャッシュライン番号が割り当てられる。
2回目のキャッシュミスが発生する。これにより、ハードウェアプリフェッチが起動され、3つめ以降のキャッシュラインのデータがプリフェッチされる。しかしながら、jについてのループは17回で終了するため、3つめ以降のキャッシュラインのデータは活用されない。
図7及び図8は、キャッシュブロッキングを説明するための図である。図7は、キャッシュブロッキング適用前後のソースコードの例を示す図である。キャッシュブロッキングは、ソフトウェアによる一般的な最適化手法であり、所定の間隔をあけてアクセスする領域に対し、「部分的に連続領域へのアクセス」となるようにアクセス方法を変更する。アクセス方法の変更により、アクセスしたデータをキャッシュメモリに残すことで、キャッシュミスが削減される。以下、キャッシュブロッキングは、ブロッキングとも称される。
第1実施形態では、コンパイラは、複数階層のループ処理において、所定の条件を満たす配列を特定し、特定した配列を多次元化する。配列の多次元化により、外側のループ処理の繰り返しごとに配列の先頭へのアクセスが繰り返されるのではなく、外側のループ処理全体を通じて、連続したアドレスを持つ領域がアクセスされる。これにより、ハードウェアプリフェッチは継続され、キャッシュミスの発生は低減される。
す図である。外側のループ処理においてiがnのとき、配列Aのデータへのアクセスにより、矢印で示されるキャッシュミスが2回発生する。
図12は、情報処理装置1の装置構成の一例を示す図である。情報処理装置1は、プロセッサ101、主記憶装置102、補助記憶装置103、入力装置104、出力装置105、ネットワークインタフェース106、可搬記録媒体駆動装置107を備える。また、これらはバス109により互いに接続されている。
サ101は、補助記憶装置103又は可搬記録媒体110に保持されたOSや様々なアプリケーションプログラムを主記憶装置102にロードして実行することによって、様々な処理を実行する。プロセッサ101は、1つに限られず、複数備えられてもよい。
換、追加が可能である。コンパイラプログラムは、例えば、可搬記録媒体110に記録されていてもよい。
図13から図15Cは、情報処理装置1の処理構成を説明するための図である。図13は、情報処理装置の処理構成の一例を示す図である。情報処理装置1は、コンパイラ2、ソースプログラム11、機械語プログラム12、チューニング情報13を含む。
解析部34は、中間コードにおいて配列に定義と参照の依存関係があるか否かを解析し、解析結果をDO管理テーブル301及び配列管理テーブル311に格納する。
変数名」は空欄である。「次ネスト管理」は、jのループ処理のレコードを指す。
第1実施形態では、コンパイラ2は、ソースコードの解析により多次元化する配列を特定する。図16から図21は、配列の多次元化、及び多次元化対象の配列について説明するための図である。
パイラ2は、配列AA(j,i)を多次元化対象の配列として特定すると、配列AA(j,i)を3次元配列AAA(j,i,k)に多次元化する。
が一致しない場合は、多次元化により結果が異なる場合があるため、多次元化の対象としない。
図22及び図23は、第1実施形態の処理の流れを説明するための図である。図22は、所定の配列を多次元化したオブジェクトを生成する処理のフローチャートの一例である。図22に示される処理は、例えば、コンパイラ2の起動により開始される。
に置き換える。次に処理がOP5に進む。
ば、コンパイラ2の起動後、解析部22に処理が進むことにより開始される。
連続領域にアクセスする配列へのアクセスでは、外側のループごとに、先頭から同じ領域が繰り返しアクセスされる。即ち、ループネストの切り替えタイミングで、配列へのア
クセスは、同じ領域の先頭に戻る。このため、連続領域へのアクセスとならないため、ハードウェアプリフェッチは停止し、性能劣化が発生する。
第2実施形態では、コンパイラ2は、多次元化対象の配列を、プログラムの実行により得られるプロファイル情報に基づいて特定する。
第2実施形態では、コンパイラ2は、プロファイル情報10に基づいて、多次元化する配列を特定する。図26から図29は、配列の多次元化、及び多次元化対象の配列について説明するための図である。
きくなる。図27Bのように、キャッシュラインの競合が生じなければ、競合密度は図27Aの場合よりも小さくなる。競合密度に比例して、性能向上の効果は増加する。
E=R×M
=R×1/S×L
評価関数 =Σ(L(i)*l(i)+1/S(i)*s(i)+R(i)*r(i))
加し、組み合わせてもよい。さらに閾値は、プロセッサ101が取得した実測値(経験値)又は論理値でもよく、限定はない。
図30及び図31は、プロファイル情報10に基づいて配列を多次元化する処理を説明するための図である。図30は、プロファイル情報を取得する処理のフローチャートの一例である。図30に示される処理は、例えば、プロファイル情報10の取得を指示する翻訳オプションが指定されて、コンパイラ2が起動されることにより開始される。
第2実施形態では、コンパイラ2は、多次元化対象の配列を、プログラムの実行により得られるプロファイル情報に基づいて特定する。これにより、コンパイラ2は、配列が再アクセスされるまでの他の変数の処理状況、キャッシュメモリの使用状況等に応じて、性能向上の効果が期待できる配列を多次元化対象として特定し、性能向上を図ることができる。
第3実施形態では、コンパイラ2は、ユーザが指定した配列を多次元化の対象とすることができる。ユーザは、コンパイラ2により出力されたチューニング情報13に基づいて、多次元化対象の配列を選択することができる。ユーザは、コンパイラ2に対し、ソースコード中に翻訳指示行を追加することにより多次元化対象の配列を指定することができる。また、ユーザは、コンパイラ2に対し、オプションにより多次元化対象の配列を指定することがきる。
第3実施形態では、ユーザは、コンパイラ2に対し、ソースコード中に翻訳指示行を追加することにより多次元化対象の配列を指定することができる。
、配列A(j)を、100×nの整数型2次元配列に多次元化することを指定する。また、jのループ処理は、配列A(j)を参照する処理を含む。配列A(j)は、要素数100の整数型1次元配列である。
図33は、コンパイラが、翻訳指示行により指定された配列を展開する処理のフローチャートの一例である。図33に示される処理は、例えば、コンパイラ2の起動により開始される。
第3実施形態では、コンパイラ2は、ユーザが指定した配列を多次元化の対象とすることができる。これにより、多次元化の要素数及び次元数等も任意に指定することができ、多次元化対象の配列を柔軟に変更することができる。
多次元化対象の配列は、第1実施形態から第3実施形態による方法を適宜組み合わせて特定してもよい。これにより、コンパイラ2による自動抽出では対応できない場合でも、ユーザが個別に指定することで、多次元化対象の配列を柔軟に特定することができる。
コンピュータその他の機械、装置(以下、コンピュータ等)に上記いずれかの機能を実現させるプログラムをコンピュータ等が読み取り可能な記録媒体に記録することができる。そして、コンピュータ等に、この記録媒体のプログラムを読み込ませて実行させることにより、その機能を提供させることができる。
に固定された記録媒体としても利用可能である。
上述した実施形態は、以下の付記を開示する。以下の付記は適宜組み合わせることが可能である。
情報処理装置が有する解析部に、前記情報処理装置が主記憶装置上の連続する領域へのアクセスを検知してハードウェアプリフェッチを開始し、前記連続する領域へのアクセス終了を検知してハードウェアプリフェッチを停止する場合に、ソースプログラムの解析により、ループ処理において、ハードウェアプリフェッチの対象となる配列構造を特定させ、
前記情報処理装置が有する生成部に、前記配列構造への第1のアクセスの次に生じる第2のアクセスが、前記第1のアクセスで参照される領域と連続する領域を参照するように前記配列構造を変更させた機械語プログラムを、前記ソースプログラムから生成させる、ための情報処理プログラム。
前記解析部に、
前記機械語プログラムの実行により取得される、プログラムの性能に関するプロファイ
ル情報に基づいて前記配列構造を特定させる、
付記1に記載の情報処理プログラム。
前記プロファイル情報は、前記配列構造へのアクセス回数、前記配列構造を記憶する領域の長さ、及び前記配列構造を記憶するキャッシュメモリ上の領域への他の変数からのアクセス状況の少なくとも1つを含む、
付記2に記載の情報処理プログラム。
前記解析部に、
前記ソースプログラム中の命令による指示に基づいて、又は、前記機械語プログラム実行時のオプションによる指示に基づいて、前記配列構造を特定させることができる、
付記1から3のいずれか一項に記載の情報処理プログラム。
前記解析部に、前記情報処理装置が前記主記憶装置上の一定間隔のストライド幅が開いた領域へのアクセスを検知してハードウェアプリフェッチを開始し、前記一定間隔のストライド幅が開いた領域へのアクセス終了を検知してハードウェアプリフェッチを停止する場合に、前記ソースプログラムの解析により、ループ処理において、ハードウェアプリフェッチの対象となる配列構造を特定させる、
付記1から4のいずれか一項に記載の情報処理プログラム。
主記憶装置上の連続する領域へのアクセスを検知してハードウェアプリフェッチを開始し、前記連続する領域へのアクセス終了を検知してハードウェアプリフェッチを停止する情報処理装置において、
ソースプログラムの解析により、ループ処理において、ハードウェアプリフェッチの対象となる配列構造を特定する解析部と、
前記配列構造への第1のアクセスの次に生じる第2のアクセスが、前記第1のアクセスで参照される領域と連続する領域を参照するように前記配列構造を変更した機械語プログラムを、前記ソースプログラムから生成する生成部と、
を備える情報処理装置。
前記解析部は、
前記機械語プログラムの実行により取得される、プログラムの性能に関するプロファイル情報に基づいて前記配列構造を特定する、
付記6に記載の情報処理装置。
前記プロファイル情報は、前記配列構造へのアクセス回数、前記配列構造を記憶する領域の長さ、及び前記配列構造を記憶するキャッシュメモリ上の領域への他の変数からのアクセス状況の少なくとも1つを含む、
付記7に記載の情報処理装置。
前記解析部は、
前記ソースプログラム中の命令による指示に基づいて、又は、前記機械語プログラム実行時のオプションによる指示に基づいて、前記配列構造を特定することができる、
付記6から8のいずれか一項に記載の情報処理装置。
前記解析部は、前記情報処理装置が前記主記憶装置上の一定間隔のストライド幅が開いた領域へのアクセスを検知してハードウェアプリフェッチを開始し、前記一定間隔のストライド幅が開いた領域へのアクセス終了を検知してハードウェアプリフェッチを停止する場合に、前記ソースプログラムの解析により、ループ処理において、ハードウェアプリフェッチの対象となる配列構造を特定する、
付記6から9のいずれか一項に記載の情報処理装置。
情報処理装置が有する解析部が、前記情報処理装置が主記憶装置上の連続する領域へのアクセスを検知してハードウェアプリフェッチを開始し、前記連続する領域へのアクセス終了を検知してハードウェアプリフェッチを停止する場合に、ソースプログラムの解析により、ループ処理において、ハードウェアプリフェッチの対象となる配列構造を特定し、
前記情報処理装置が有する生成部が、前記配列構造への第1のアクセスの次に生じる第2のアクセスが、前記第1のアクセスで参照される領域と連続する領域を参照するように前記配列構造を変更した機械語プログラムを、前記ソースプログラムから生成する、
情報処理方法。
前記解析部は、
前記機械語プログラムの実行により取得される、プログラムの性能に関するプロファイル情報に基づいて前記配列構造を特定する、
付記11に記載の情報処理方法。
前記プロファイル情報は、前記配列構造へのアクセス回数、前記配列構造を記憶する領域の長さ、及び前記配列構造を記憶するキャッシュメモリ上の領域への他の変数からのアクセス状況の少なくとも1つを含む、
付記12に記載の情報処理方法。
前記解析部は、
前記ソースプログラム中の命令による指示に基づいて、又は、前記機械語プログラム実行時のオプションによる指示に基づいて、前記配列構造を特定することができる、
付記11から13のいずれか一項に記載の情報処理方法。
前記解析部は、前記情報処理装置が前記主記憶装置上の一定間隔のストライド幅が開いた領域へのアクセスを検知してハードウェアプリフェッチを開始し、前記一定間隔のストライド幅が開いた領域へのアクセス終了を検知してハードウェアプリフェッチを停止する場合に、前記ソースプログラムの解析により、ループ処理において、ハードウェアプリフェッチの対象となる配列構造を特定する、
付記11から14のいずれか一項に記載の情報処理方法。
10 プロファイル情報
11 ソースプログラム
12 機械語プログラム
13 チューニング情報
2 コンパイラ
20 パーサー部
21 中間コード変換部
22 解析部
23 最適化部
24 コード生成部
30 ループデータ記憶部
301 DO管理テーブル
31 配列データ記憶部
311 配列管理テーブル
32 ループ構造解析部
33 配列解析部
34 依存関係解析部
35 プロファイル情報解析部
101 プロセッサ
102 主記憶装置
103 補助記憶装置
104 入力装置
105 出力装置
106 ネットワークインタフェース
107 可搬記録媒体駆動装置
109 バス
110 可搬記録媒体
Claims (7)
- 情報処理装置が有する解析部に、前記情報処理装置が主記憶装置上の連続する領域へのアクセスを検知してハードウェアプリフェッチを開始し、前記連続する領域へのアクセス終了を検知してハードウェアプリフェッチを停止する場合に、ソースプログラムの解析により、ループ処理において、ハードウェアプリフェッチの対象となる配列構造を特定させ、
前記情報処理装置が有する生成部に、前記配列構造への第1のアクセスの次に生じる第2のアクセスが、前記第1のアクセスで参照される領域と連続する領域を参照するように前記配列構造を変更させた機械語プログラムを、前記ソースプログラムから生成させる、ための情報処理プログラム。 - 前記解析部に、
前記機械語プログラムの実行により取得される、プログラムの性能に関するプロファイル情報に基づいて前記配列構造を特定させる、
請求項1に記載の情報処理プログラム。 - 前記プロファイル情報は、前記配列構造へのアクセス回数、前記配列構造を記憶する領域の長さ、及び前記配列構造を記憶するキャッシュメモリ上の領域への他の変数からのアクセス状況の少なくとも1つを含む、
請求項2に記載の情報処理プログラム。 - 前記解析部に、
前記ソースプログラム中の命令による指示に基づいて、又は、前記機械語プログラム実行時のオプションによる指示に基づいて、前記配列構造を特定させることができる、
請求項1から3のいずれか一項に記載の情報処理プログラム。 - 前記解析部に、前記情報処理装置が前記主記憶装置上の一定間隔のストライド幅が開いた領域へのアクセスを検知してハードウェアプリフェッチを開始し、前記一定間隔のストライド幅が開いた領域へのアクセス終了を検知してハードウェアプリフェッチを停止する場合に、前記ソースプログラムの解析により、ループ処理において、ハードウェアプリフェッチの対象となる配列構造を特定させる、
請求項1から4のいずれか一項に記載の情報処理プログラム。 - 主記憶装置上の連続する領域へのアクセスを検知してハードウェアプリフェッチを開始し、前記連続する領域へのアクセス終了を検知してハードウェアプリフェッチを停止する情報処理装置において、
ソースプログラムの解析により、ループ処理において、ハードウェアプリフェッチの対象となる配列構造を特定する解析部と、
前記配列構造への第1のアクセスの次に生じる第2のアクセスが、前記第1のアクセスで参照される領域と連続する領域を参照するように前記配列構造を変更した機械語プログラムを、前記ソースプログラムから生成する生成部と、
を備える情報処理装置。 - 情報処理装置が有する解析部が、前記情報処理装置が主記憶装置上の連続する領域へのアクセスを検知してハードウェアプリフェッチを開始し、前記連続する領域へのアクセス終了を検知してハードウェアプリフェッチを停止する場合に、ソースプログラムの解析により、ループ処理において、ハードウェアプリフェッチの対象となる配列構造を特定し、
前記情報処理装置が有する生成部が、前記配列構造への第1のアクセスの次に生じる第2のアクセスが、前記第1のアクセスで参照される領域と連続する領域を参照するように
前記配列構造を変更した機械語プログラムを、前記ソースプログラムから生成する、
情報処理方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014209309A JP6442967B2 (ja) | 2014-10-10 | 2014-10-10 | 情報処理プログラム、情報処理装置、情報処理方法 |
US14/840,083 US9552197B2 (en) | 2014-10-10 | 2015-08-31 | Computer-readable recording medium storing information processing program, information processing apparatus, and information processing method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014209309A JP6442967B2 (ja) | 2014-10-10 | 2014-10-10 | 情報処理プログラム、情報処理装置、情報処理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2016081135A true JP2016081135A (ja) | 2016-05-16 |
JP6442967B2 JP6442967B2 (ja) | 2018-12-26 |
Family
ID=55655486
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014209309A Expired - Fee Related JP6442967B2 (ja) | 2014-10-10 | 2014-10-10 | 情報処理プログラム、情報処理装置、情報処理方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9552197B2 (ja) |
JP (1) | JP6442967B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019185486A (ja) * | 2018-04-12 | 2019-10-24 | 富士通株式会社 | コード変換装置、コード変換方法、及びコード変換プログラム |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118465684B (zh) * | 2024-07-10 | 2024-09-24 | 中国人民解放军海军航空大学 | 一种分布式二维嵌套阵列及其获取目标方位的算法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008003882A (ja) * | 2006-06-23 | 2008-01-10 | Fujitsu Ltd | コンパイラプログラム,リストベクトルの領域割当て最適化方法,コンパイル処理装置およびコンパイラプログラムを記録したコンピュータ読み取り可能な記録媒体 |
JP2009175797A (ja) * | 2008-01-21 | 2009-08-06 | Hitachi Ltd | コンパイル方法及びコンパイラプログラム |
JP2010003031A (ja) * | 2008-06-19 | 2010-01-07 | Fujitsu Ltd | コンパイル処理装置,ならびにアクセスパターン変更処理方法および処理プログラム |
JP2012038219A (ja) * | 2010-08-10 | 2012-02-23 | Toshiba Corp | プログラム変換装置、およびそのプログラム |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08212081A (ja) | 1995-02-08 | 1996-08-20 | Hitachi Ltd | メモリ割り付け方法、並びにコンパイル方法およびコンパイラ |
JP3551353B2 (ja) * | 1998-10-02 | 2004-08-04 | 株式会社日立製作所 | データ再配置方法 |
-
2014
- 2014-10-10 JP JP2014209309A patent/JP6442967B2/ja not_active Expired - Fee Related
-
2015
- 2015-08-31 US US14/840,083 patent/US9552197B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008003882A (ja) * | 2006-06-23 | 2008-01-10 | Fujitsu Ltd | コンパイラプログラム,リストベクトルの領域割当て最適化方法,コンパイル処理装置およびコンパイラプログラムを記録したコンピュータ読み取り可能な記録媒体 |
JP2009175797A (ja) * | 2008-01-21 | 2009-08-06 | Hitachi Ltd | コンパイル方法及びコンパイラプログラム |
JP2010003031A (ja) * | 2008-06-19 | 2010-01-07 | Fujitsu Ltd | コンパイル処理装置,ならびにアクセスパターン変更処理方法および処理プログラム |
JP2012038219A (ja) * | 2010-08-10 | 2012-02-23 | Toshiba Corp | プログラム変換装置、およびそのプログラム |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019185486A (ja) * | 2018-04-12 | 2019-10-24 | 富士通株式会社 | コード変換装置、コード変換方法、及びコード変換プログラム |
JP7035751B2 (ja) | 2018-04-12 | 2022-03-15 | 富士通株式会社 | コード変換装置、コード変換方法、及びコード変換プログラム |
Also Published As
Publication number | Publication date |
---|---|
JP6442967B2 (ja) | 2018-12-26 |
US9552197B2 (en) | 2017-01-24 |
US20160103658A1 (en) | 2016-04-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9798528B2 (en) | Software solution for cooperative memory-side and processor-side data prefetching | |
US8490065B2 (en) | Method and apparatus for software-assisted data cache and prefetch control | |
US6721943B2 (en) | Compile-time memory coalescing for dynamic arrays | |
JP3417984B2 (ja) | キャッシュ競合削減コンパイル方法 | |
JP4374221B2 (ja) | コンピュータシステムおよび記録媒体 | |
US6148439A (en) | Nested loop data prefetching using inner loop splitting and next outer loop referencing | |
US8886887B2 (en) | Uniform external and internal interfaces for delinquent memory operations to facilitate cache optimization | |
JP4751510B2 (ja) | メモリアクセス最適化方法 | |
JP2007531075A (ja) | プログラム・コードを変換するための共用コード・キャッシングの方法および装置 | |
US10372430B2 (en) | Method of compiling a program | |
WO2021056389A1 (en) | Methods and apparatus to process machine learning model in web-browser environment | |
US20100250854A1 (en) | Method and system for data prefetching for loops based on linear induction expressions | |
JP5966509B2 (ja) | プログラム、コード生成方法および情報処理装置 | |
JP6665720B2 (ja) | 情報処理装置、コンパイルプログラム、コンパイル方法、およびキャッシュ制御方法 | |
JP4177681B2 (ja) | コンパイル方法、コンパイラ、およびコンパイル装置 | |
JP6442967B2 (ja) | 情報処理プログラム、情報処理装置、情報処理方法 | |
US7530063B2 (en) | Method and system for code modification based on cache structure | |
JPH1069389A (ja) | ブランチの再配置によるタグなしブランチ予測キャッシュを活用する装置 | |
US20140157248A1 (en) | Conversion apparatus, method of converting, and non-transient computer-readable recording medium having conversion program stored thereon | |
WO2021036173A1 (zh) | 解释执行字节码指令流的方法及装置 | |
US7143399B2 (en) | Method and apparatus for prefetching memory pages during execution of a computer program | |
US10866790B2 (en) | Transforming loops in program code based on a capacity of a cache | |
US8166252B2 (en) | Processor and prefetch support program | |
US20160011889A1 (en) | Simulation method and storage medium | |
US20170115973A1 (en) | Operating method of semiconductor device and semiconductor system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20170704 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20180308 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20180327 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20180528 |
|
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: 20181030 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20181112 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6442967 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |