JP6666554B2 - 情報処理装置、変換プログラム、及び変換方法 - Google Patents
情報処理装置、変換プログラム、及び変換方法 Download PDFInfo
- Publication number
- JP6666554B2 JP6666554B2 JP2016102291A JP2016102291A JP6666554B2 JP 6666554 B2 JP6666554 B2 JP 6666554B2 JP 2016102291 A JP2016102291 A JP 2016102291A JP 2016102291 A JP2016102291 A JP 2016102291A JP 6666554 B2 JP6666554 B2 JP 6666554B2
- Authority
- JP
- Japan
- Prior art keywords
- array
- mask
- program
- elements
- calculation
- 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
- 238000000034 method Methods 0.000 title claims description 28
- 230000010365 information processing Effects 0.000 title claims description 17
- 238000006243 chemical reaction Methods 0.000 title claims description 5
- 238000012545 processing Methods 0.000 claims description 43
- 230000008569 process Effects 0.000 claims description 17
- 238000010586 diagram Methods 0.000 description 34
- 230000014509 gene expression Effects 0.000 description 27
- 230000006870 function Effects 0.000 description 14
- 238000003491 array Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 6
- 230000009467 reduction Effects 0.000 description 6
- 230000007423 decrease Effects 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 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/45—Exploiting coarse grain parallelism in compilation, i.e. parallelism between groups of instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30181—Instruction operation extension or modification
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30018—Bit or string instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30021—Compare instructions, e.g. Greater-Than, Equal-To, MINMAX
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30029—Logical and Boolean instructions, e.g. XOR, NOT
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30036—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30036—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
- G06F9/30038—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations using a mask
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30072—Arrangements for executing specific machine instructions to perform conditional operations, e.g. using predicates or guards
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
- G06F9/3887—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by a single instruction for multiple data lanes [SIMD]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
- G06F9/3887—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by a single instruction for multiple data lanes [SIMD]
- G06F9/38873—Iterative single instructions for multiple data lanes [SIMD]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Devices For Executing Special Programs (AREA)
- Complex Calculations (AREA)
Description
記憶手段は、第1の配列に設定された複数の要素それぞれが計算の実行対象か否かを示す複数のマスクを指定する第1のマスク配列を用い、計算実行対象の要素の計算を指示する第1の命令列を含む第1のプログラムを記憶する。配列設定手段は、第1のマスク配列に示される計算の実行対象か否かの発生パターンが、所定の要素数ごとの第1のパターンの繰り返しの場合、計算の実行対象か否かの発生パターンが所定の要素数以上の2のべき乗個の要素数ごとの第2のパターンの繰り返しとなるように第1の配列に要素を追加した第2の配列を、第2のプログラムに設定する。マスク配列設定手段は、計算の実行対象ではないことを示すマスクが第1のマスク配列に追加された第2のマスク配列であり、第2のパターンに含まれる要素数と同数のマスクを含む第2のマスク配列を、第2のプログラムに設定する。命令列設定手段は、第2の配列内での要素の順番を示す数値を用いたビットごとの論理積により、第2のマスク配列のうちの該要素に適用するマスクを指定し、第2の配列に設定された複数の要素のうち、計算の実行対象であることが示されているマスクを適用する要素の計算を指示する第2の命令列を、第2のプログラムに設定する。
〔第1の実施の形態〕
図1は、第1の実施の形態に係る情報処理装置の機能構成例を示す図である。情報処理装置10は、記憶手段11、配列設定手段12、マスク配列設定手段13、および命令列設定手段14を有する。
〔第2の実施の形態〕
次に、第2の実施の形態について説明する。第2の実施の形態は、HPCシステムで並列実行させるプログラムの開発時に、マスク配列の添字式をビット単位の論理積に単純化することで、SIMD命令を有効に利用した効率的なプログラムを生成するものである。また、第2の実施の形態では、SIMD命令を利用できることによる処理効率が確実に向上する場合にのみ、SIMD命令を利用したプログラムを生成するようにする。これにより、SIMD命令を利用できることにしたことにより、却って処理効率が低下してしまうことを抑止できる。
記憶部110は、ソースプログラム111や実行プログラム112を記憶する。記憶部110は、例えばメモリ102またはストレージ装置103の記憶領域の一部である。なお、記憶部110は、図1に示した記憶手段11の一例である。
図13は、拡張したマスクパターンとアクセス対象範囲との関係を示す図である。拡張したマスクパターン63を適用するために、ループ処理で使用する配列の宣言範囲43も拡張される。そして、拡張された配列の宣言範囲43の計算領域44に対して、マスクパターン63を繰り返し適用することで、ループ処理において計算領域44内で連続した要素をアクセス対象とすることができる。また、2のべき乗個の要素分のマスクパターン62を使用することで、マスク配列の添字式としてビットの論理積を用いることができ、SIMD化が可能となる。
図15は、コンパイラの機能を示すブロック図である。図15には、コンパイラ120が有する機能のうち、多重ループの一重化やSIMD化を用いたプログラムの最適化機能が示されている。
図16は、マスク利用ループ処理プログラムの生成例を示す図である。図16に示すソースプログラム73は、図5に示したステンシル計算プログラム51を一般化したものである。ソースプログラム解析部121は、ソースプログラム73を解析して、マスク利用ループ処理プログラム71を生成する。マスク利用ループ処理プログラム71は、ソースプログラム73と同じ処理を表している。
図17は、判定処理の手順を示すフローチャートである。以下、図17に示す処理をステップ番号に沿って説明する。
[ステップS102]判定部122は、配列の種類数を示す値「2」を取得する。
[ステップS104]判定部122は、マスクパターンの大きさ(要素数)を示す値「M」を取得する。
[ステップS106]判定部122は、M以上の2のべき乗のうち最小の値「X」(Xは1以上の整数)取得する。
[ステップS108]判定部122は、マスクパターンの大きさをMからXに拡張した場合のマスク配列の要素数の減少量を、式「M×N−X」により計算する。
[ステップS110]判定部122は、減少する計算対象の配列のメモリ量を、式「(M×N−X)×4」により計算する。
[ステップS113]判定部122は、領域を拡張しないと判定し、判定処理を終了する。
[ステップS121]拡張部123は、マスク利用ループ処理プログラム71内の配列の宣言範囲述を「X×N」に拡張されるように修正した記述を、拡張マスク利用ループ処理プログラム72に追加する。
図19は、拡張処理の一例を示す図である。マスク利用ループ処理プログラム71における「real:配列:a(M,N),b(M,N)」の記述は、拡張マスク利用ループ処理プログラム72において「real:配列:a(X,N),b(X,N)」に変更されている。これにより、計算領域が拡張される。
第2の実施の形態では、中間表現のプログラムを修正することで、マスク配列の使用数の削減とマスク付きSIMD命令の使用を両立させているが、ソースプログラムの段階で修正することも可能である。
2 第2のプログラム
10 情報処理装置
11 記憶手段
12 配列設定手段
13 マスク配列設定手段
14 命令列設定手段
Claims (7)
- 第1の配列に設定された複数の要素それぞれが計算の実行対象か否かを示す複数のマスクを指定する第1のマスク配列を用い、計算実行対象の要素の計算を指示する第1の命令列を含む第1のプログラムを記憶する記憶手段と、
前記第1のマスク配列に示される計算の実行対象か否かの発生パターンが、所定の要素数ごとの第1のパターンの繰り返しの場合、計算の実行対象か否かの発生パターンが前記所定の要素数以上の2のべき乗個の要素数ごとの第2のパターンの繰り返しとなるように前記第1の配列に要素を追加した第2の配列を、第2のプログラムに設定する配列設定手段と、
計算の実行対象ではないことを示すマスクが前記第1のマスク配列に追加された第2のマスク配列であり、前記第2のパターンに含まれる要素数と同数のマスクを含む前記第2のマスク配列を、前記第2のプログラムに設定するマスク配列設定手段と、
前記第2の配列内での要素の順番を示す数値を用いたビットごとの論理積により、前記第2のマスク配列のうちの該要素に適用するマスクを指定し、前記第2の配列に設定された複数の要素のうち、計算の実行対象であることが示されているマスクを適用する要素の計算を指示する第2の命令列を、前記第2のプログラムに設定する命令列設定手段と、
を有する情報処理装置。 - 前記配列設定手段は、前記第1の配列が、前記所定の要素数を含む第1次元を有する多次元配列の場合、前記第1の配列の前記第1次元の要素数を、前記第2のパターンの要素数に増やし、要素数を増加させた後の多次元配列を前記第2の配列とする、
請求項1記載の情報処理装置。 - 前記マスク配列設定手段は、前記第2の命令列において、計算対象の要素の順番を示す数値から1を減算した値と、前記第2のパターンに含まれる要素数から1を減算した値とのビットごとの論理積に、1を加算した値を、前記第2のマスク配列の添字とする、
請求項1または2記載の情報処理装置。 - 前記配列設定手段は、前記第1のパターンに含まれる要素数以上の2のべき乗のうち、最も小さい値を前記第2のパターン内の要素数とする、
請求項1乃至3のいずれかに記載の情報処理装置。 - 前記第1のマスク配列のデータ量と前記第2のマスク配列とのデータ量の差を示す第1の差分値と、前記第1の配列のデータ量と前記第2の配列のデータ量との差を示す第2の差分値との大きさを比較して、前記第2のプログラムを生成するか否かを判定する判定手段をさらに有し、
前記配列設定手段、前記マスク配列設定手段、および前記命令列設定手段は、前記第2のプログラムを生成する場合に処理を実行する、
請求項1乃至4のいずれかに記載の情報処理装置。 - コンピュータに、
第1の配列に設定された複数の要素それぞれが計算の実行対象か否かを示す複数のマスクを指定する第1のマスク配列を用い、計算実行対象の要素の計算を指示する第1の命令列を含む第1のプログラムを参照し、前記第1のマスク配列に示される計算の実行対象か否かの発生パターンが、所定の要素数ごとの第1のパターンの繰り返しの場合、計算の実行対象か否かの発生パターンが前記所定の要素数以上の2のべき乗個の要素数ごとの第2のパターンの繰り返しとなるように前記第1の配列に要素を追加した第2の配列を、第2のプログラムに設定し、
計算の実行対象ではないことを示すマスクが前記第1のマスク配列に追加された第2のマスク配列であり、前記第2のパターンに含まれる要素数と同数のマスクを含む前記第2のマスク配列を、前記第2のプログラムに設定し、
前記第2の配列内での要素の順番を示す数値を用いたビットごとの論理積により、前記第2のマスク配列のうちの該要素に適用するマスクを指定し、前記第2の配列に設定された複数の要素のうち、計算の実行対象であることが示されているマスクを適用する要素の計算を指示する第2の命令列を、前記第2のプログラムに設定する、
処理を実行させる変換プログラム。 - コンピュータが、
第1の配列に設定された複数の要素それぞれが計算の実行対象か否かを示す複数のマスクを指定する第1のマスク配列を用い、計算実行対象の要素の計算を指示する第1の命令列を含む第1のプログラムを参照し、前記第1のマスク配列に示される計算の実行対象か否かの発生パターンが、所定の要素数ごとの第1のパターンの繰り返しの場合、計算の実行対象か否かの発生パターンが前記所定の要素数以上の2のべき乗個の要素数ごとの第2のパターンの繰り返しとなるように前記第1の配列に要素を追加した第2の配列を、第2のプログラムに設定し、
計算の実行対象ではないことを示すマスクが前記第1のマスク配列に追加された第2のマスク配列であり、前記第2のパターンに含まれる要素数と同数のマスクを含む前記第2のマスク配列を、前記第2のプログラムに設定し、
前記第2の配列内での要素の順番を示す数値を用いたビットごとの論理積により、前記第2のマスク配列のうちの該要素に適用するマスクを指定し、前記第2の配列に設定された複数の要素のうち、計算の実行対象であることが示されているマスクを適用する要素の計算を指示する第2の命令列を、前記第2のプログラムに設定する、
変換方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016102291A JP6666554B2 (ja) | 2016-05-23 | 2016-05-23 | 情報処理装置、変換プログラム、及び変換方法 |
US15/470,975 US10496408B2 (en) | 2016-05-23 | 2017-03-28 | Information processing apparatus and conversion method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016102291A JP6666554B2 (ja) | 2016-05-23 | 2016-05-23 | 情報処理装置、変換プログラム、及び変換方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2017211695A JP2017211695A (ja) | 2017-11-30 |
JP6666554B2 true JP6666554B2 (ja) | 2020-03-18 |
Family
ID=60330089
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016102291A Active JP6666554B2 (ja) | 2016-05-23 | 2016-05-23 | 情報処理装置、変換プログラム、及び変換方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10496408B2 (ja) |
JP (1) | JP6666554B2 (ja) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3944260B1 (en) * | 2014-05-22 | 2024-05-08 | Australian Nuclear Science And Technology Organisation | Proton, neutron, electron or electromagnetic radiation imaging |
JP7163697B2 (ja) * | 2018-09-28 | 2022-11-01 | 富士通株式会社 | 生成プログラム,情報処理装置及び生成方法 |
CN110673877B (zh) * | 2019-08-22 | 2020-09-01 | 成都信息工程大学 | 一种基于手动向量化的并行计算方法 |
CN113391842B (zh) * | 2020-03-13 | 2024-09-17 | 华为技术有限公司 | 一种单指令多数据simd指令的生成、处理方法以及相关设备 |
US11635947B2 (en) * | 2020-05-22 | 2023-04-25 | Fujitsu Limited | Instruction translation support method and information processing apparatus |
WO2024181090A1 (ja) * | 2023-02-27 | 2024-09-06 | 日本電気株式会社 | 多重ループ変換装置、情報処理方法および情報処理プログラム |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5696922A (en) * | 1993-12-10 | 1997-12-09 | Cray Research, Inc. | Recursive address centrifuge for distributed memory massively parallel processing systems |
US5802375A (en) * | 1994-11-23 | 1998-09-01 | Cray Research, Inc. | Outer loop vectorization |
US6128639A (en) * | 1996-06-28 | 2000-10-03 | Cray Research, Inc. | Array address and loop alignment calculations |
JP3657414B2 (ja) | 1998-01-20 | 2005-06-08 | 富士通株式会社 | 多重ループのベクトル化装置および記録媒体 |
JP3887097B2 (ja) * | 1998-02-24 | 2007-02-28 | 富士通株式会社 | コンパイル方法,コンパイル装置および、コンパイル用プログラムを記憶したコンピュータ読み取り可能な記憶媒体 |
ATE463788T1 (de) * | 2007-06-26 | 2010-04-15 | Ericsson Telefon Ab L M | Datenverarbeitungseinheit für anweisungen in geschachtelten schleifen |
US7945768B2 (en) * | 2008-06-05 | 2011-05-17 | Motorola Mobility, Inc. | Method and apparatus for nested instruction looping using implicit predicates |
US8418154B2 (en) * | 2009-02-10 | 2013-04-09 | International Business Machines Corporation | Fast vector masking algorithm for conditional data selection in SIMD architectures |
US9519617B2 (en) * | 2011-07-14 | 2016-12-13 | Texas Instruments Incorporated | Processor with instruction variable data distribution |
US8972697B2 (en) * | 2012-06-02 | 2015-03-03 | Intel Corporation | Gather using index array and finite state machine |
US9501276B2 (en) * | 2012-12-31 | 2016-11-22 | Intel Corporation | Instructions and logic to vectorize conditional loops |
-
2016
- 2016-05-23 JP JP2016102291A patent/JP6666554B2/ja active Active
-
2017
- 2017-03-28 US US15/470,975 patent/US10496408B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US20170337060A1 (en) | 2017-11-23 |
US10496408B2 (en) | 2019-12-03 |
JP2017211695A (ja) | 2017-11-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6666554B2 (ja) | 情報処理装置、変換プログラム、及び変換方法 | |
JP5966509B2 (ja) | プログラム、コード生成方法および情報処理装置 | |
JP2022518209A (ja) | スレッドの実行順序を維持する同期デジタル回路を生成する言語およびコンパイラ | |
CN107003885A (zh) | 用于低级别可组合高性能计算库的技术 | |
US20230004365A1 (en) | Multistage compiler architecture | |
Kashi et al. | Batched sparse iterative solvers on GPU for the collision operator for fusion plasma simulations | |
US20180217845A1 (en) | Code generation apparatus and code generation method | |
US11635947B2 (en) | Instruction translation support method and information processing apparatus | |
JP5644432B2 (ja) | 動作合成システム、動作合成方法、動作合成用プログラム及び半導体装置 | |
JP2007172546A (ja) | 動作合成システム、動作合成方法およびプログラム | |
JP2004206314A (ja) | 並列プログラム生成装置,並列プログラム生成方法および並列プログラム生成プログラム | |
JP7115563B2 (ja) | コンパイル装置、コンパイル方法、及び制御プログラム | |
US20230176851A1 (en) | Computer-readable recording medium storing conversion program and conversion method | |
CN110879744B (zh) | 利用多线程执行计算图的方法和系统 | |
JP7168731B1 (ja) | メモリアクセス制御装置、メモリアクセス制御方法、及び、メモリアクセス制御プログラム | |
WO2023112874A1 (ja) | ソフトウェア開発装置およびソフトウェア開発プログラム | |
US20220236969A1 (en) | Non-transitory computer-readable medium and class generation method | |
JP2018206175A (ja) | コンパイラ、情報処理装置及びコンパイル方法 | |
JP7243742B2 (ja) | 最適化装置、最適化方法、及びプログラム | |
JP2017151903A (ja) | コンパイル装置、コンパイル方法およびコンパイルプログラム | |
Yu et al. | MLIR-to-CGRA: A Versatile MLIR-Based Compiler Framework for CGRAs | |
KR101737785B1 (ko) | 프로그램 컴파일 장치 및 프로그램 컴파일 방법 | |
JP2021093012A (ja) | コンパイルプログラム、および情報処理装置 | |
JP2023117606A (ja) | コンパイル装置、コンパイル方法、及びプログラム | |
JP2020135464A (ja) | プログラム変換装置、プログラム変換方法、及び、プログラム変換のプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20190212 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20191223 |
|
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: 20200121 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20200203 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6666554 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |