JP2004046747A - ベクトル化方式 - Google Patents

ベクトル化方式 Download PDF

Info

Publication number
JP2004046747A
JP2004046747A JP2002206348A JP2002206348A JP2004046747A JP 2004046747 A JP2004046747 A JP 2004046747A JP 2002206348 A JP2002206348 A JP 2002206348A JP 2002206348 A JP2002206348 A JP 2002206348A JP 2004046747 A JP2004046747 A JP 2004046747A
Authority
JP
Japan
Prior art keywords
processing
vector
processor
vector processing
scalar
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.)
Pending
Application number
JP2002206348A
Other languages
English (en)
Inventor
Hiroji Nakajima
中嶋 廣二
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP2002206348A priority Critical patent/JP2004046747A/ja
Publication of JP2004046747A publication Critical patent/JP2004046747A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Devices For Executing Special Programs (AREA)

Abstract

【課題】ベクトル処理に対して、スカラプロセッサとベクトルプロセッサとによるより良好なバランスでの処理を考慮したコード生成を行うことができ、ベクトル処理の実行時間を最小に抑えることができるベクトル化方式を提供する。
【解決手段】スカラ処理と複数の同時実行可能なベクトル処理ユニットでのベクトル処理とのバランスを考慮して、全体の実行時間が最小になるようなコードの生成を可能とする。
【選択図】  図1

Description

【0001】
【発明の属する技術分野】
本発明は、コンパイラ技術において複数の連続データに対するベクトル処理を実行するためのベクトル化方式に関するものである。
【0002】
【従来の技術】
メモリ上の連続したデータに対して繰り返し演算を行う場合に、同時に実行しても結果が変化しない場合は、これら連続したデータに対する演算を複数回分同時に実行することが可能である。このように複数の連続したデータに対してそれぞれ同時に演算を行う処理をベクトル処理と呼ぶ。
【0003】
プロセッサにおいて、ベクトル処理を行うユニットをベクトル処理ユニットと呼ぶ。ベクトル処理ユニットのプロセッサ構成の一例として、通常の処理を行うスカラプロセッサとベクトル処理のみを専門で行うベクトルプロセッサとを、複合して持つ構成がある。このような構成の場合、スカラプロセッサとベクトルプロセッサが独立して並列処理動作することが可能な場合が多い。
【0004】
また、別のベクトル処理ユニットのプロセッサ構成として、スカラプロセッサ内の命令として複数の演算処理を同時に行う構成がある。その代表的なものとしては、1つの命令で複数の異なるデータに対して同一演算を行うSIMD(Single−Instruction−stream on Multiple−Data−stream)命令による処理を行う構成や、1つの命令で複数の命令動作が実行可能なVLIW(Very−Long−Instruction−Word)命令による処理を行う構成がある。
【0005】
一般に、ベクトルプロセッサでは、その処理の並列度が高いが、スカラプロセッサとは独立して動作するため、スカラプロセッサとの間でデータのやりとりを行う場合には、そのやりとりに対する専用の処理が必要である。一方、スカラプロセッサでは、SIMD命令やVLIW命令での処理のように、ベクトルプロセッサよりも並列度は低いが、ベクトルプロセッサのようなデータのやりとりに伴う処理が不要となる。
【0006】
コンパイラでの処理において、配列に対する連続した演算について、ベクトル処理ユニットによるベクトル処理を行うための命令コードを出力することを、一般にベクトル化と呼び、従来は、ベクトル化を行う配列全体を1つの単位としてコード出力を行っていた。
【0007】
【発明が解決しようとする課題】
しかしながら上記のような従来のベクトル化方式による手法では、コンパイラでの処理において、ベクトル化を行う配列全体を1つの単位としてコード出力を行っており、また、スカラプロセッサとベクトルプロセッサの双方でベクトル処理が可能な場合に、より並列度の高い処理ユニットを使用するようなコードを出力していた。
【0008】
ところが、上記のような並列度の高い処理ユニットを使用しているなかで、ベクトルプロセッサの演算処理中に並列動作するスカラプロセッサが、ベクトルプロセッサの演算結果を基に演算処理するように、コードが出力された場合には、スカラプロセッサによる演算処理が、ベクトルプロセッサの当該演算が終了するまで待たされることになる。
【0009】
このような場合、実行時間をより短縮するためには、スカラプロセッサにおいても、ベクトル処理の一部を実行させるなど、スカラプロセッサとベクトルプロセッサとによる処理のバランスを考慮してコード生成を行うようにしなければならないという問題点を有していた。
【0010】
本発明は、上記従来の問題点を解決するもので、コンパイラでの処理実行の際のベクトル処理に対して、スカラプロセッサとベクトルプロセッサとによるより良好なバランスでの処理を考慮したコード生成を行うことができ、ベクトル処理の実行時間を最小に抑えることができるベクトル化方式を提供する。
【0011】
【課題を解決するための手段】
上記の課題を解決するために本発明のベクトル化方式は、プロセッサコアと独立して動作可能で、複数の連続したデータに対する演算を同時に処理するベクトル処理を専門に実行するベクトルプロセッサと、前記プロセッサコアにおける通常のスカラ処理を実行するとともに、1つの命令で前記ベクトル処理を実行するSIMD命令、および1つの命令に複数の動作を記述して前記ベクトル処理を実行するVLIW命令を有するスカラプロセッサとからなるベクトル処理ユニットを含むプロセッサ構成において、前記ベクトル処理を実行するためのベクトルコードを生成するベクトル化方式であって、前記プロセッサ構成における処理実行のためのソースプログラムから前記ベクトル処理用としてベクトル化が可能な部分のコードを抽出するベクトル処理抽出ステップと、前記ベクトル処理抽出ステップで抽出したコードによるベクトル処理に対して、前記ベクトル処理ユニットにおける前記ベクトルプロセッサによるベクトル処理と、前記スカラプロセッサによるベクトル処理とのバランスを解析して、前記ベクトル処理のバランスを全体の実行時間が最小になるように決定するベクトル処理バランス解析ステップと、前記ベクトル処理バランス解析ステップで解析した結果を基に、前記ベクトル処理ユニットがベクトル処理を実行するための前記ベクトルコードを生成するベクトルコード生成ステップとを備えた方法としたことを特徴とする。
【0012】
以上により、スカラ処理と複数の同時実行可能なベクトル処理ユニットでのベクトル処理とのバランスを考慮して、全体の実行時間が最小になるようなコードを生成することができる。
【0013】
【発明の実施の形態】
本発明の請求項1に記載のベクトル化方式は、プロセッサコアと独立して動作可能で、複数の連続したデータに対する演算を同時に処理するベクトル処理を専門に実行するベクトルプロセッサと、前記プロセッサコアにおける通常のスカラ処理を実行するとともに、1つの命令で前記ベクトル処理を実行するSIMD命令、および1つの命令に複数の動作を記述して前記ベクトル処理を実行するVLIW命令を有するスカラプロセッサとからなるベクトル処理ユニットを含むプロセッサ構成において、前記ベクトル処理を実行するためのベクトルコードを生成するベクトル化方式であって、前記プロセッサ構成における処理実行のためのソースプログラムから前記ベクトル処理用としてベクトル化が可能な部分のコードを抽出するベクトル処理抽出ステップと、前記ベクトル処理抽出ステップで抽出したコードによるベクトル処理に対して、前記ベクトル処理ユニットにおける前記ベクトルプロセッサによるベクトル処理と、前記スカラプロセッサによるベクトル処理とのバランスを解析して、前記ベクトル処理のバランスを全体の実行時間が最小になるように決定するベクトル処理バランス解析ステップと、前記ベクトル処理バランス解析ステップで解析した結果を基に、前記ベクトル処理ユニットがベクトル処理を実行するための前記ベクトルコードを生成するベクトルコード生成ステップとを備えた方法とする。
【0014】
この方法によると、スカラ処理と複数の同時実行可能なベクトル処理ユニットでのベクトル処理とのバランスを考慮して、全体の実行時間が最小になるようなコードの生成を可能とする。
【0015】
請求項2に記載のベクトル化方式は、請求項1記載のベクトル化方式であって、前記ベクトル処理バランス解析ステップで、前記ベクトル処理のバランスを決定するに際し、前記ベクトル処理抽出ステップで抽出したコードを基に、それらの処理配分を変数として、前記ベクトルプロセッサでの処理時間と、前記スカラプロセッサでのスカラ処理とベクトル処理の各処理時間とを求め、同時実行する部分の処理時間が等しくなる処理配分を求める方法とする。
【0016】
この方法によると、ベクトル処理のバランス決定に際して、処理配分を変数として、ベクトルプロセッサでのベクトル処理の処理時間と、スカラプロセッサでのスカラ処理およびベクトル処理の処理時間とを求め、同時実行する部分の処理時間が等しくなる処理配分を可能とする。
【0017】
請求項3に記載のベクトル化方式は、請求項2記載のベクトル化方式であって、前記ベクトル処理バランス解析ステップで、前記同時実行する部分の処理時間が等しくなる処理配分でのベクトル処理により実行した場合の全体の実行時間と、全てのデータをスカラプロセッサでのベクトル処理により実行した場合の全体の実行時間とを比較し、前記スカラプロセッサで実行した場合の実行時間の方が短かった場合には、前記全てのデータを前記スカラプロセッサでのベクトル処理により実行するように、処理配分を決定する方法とする。
【0018】
この方法によると、全体の処理時間を最小にする処理配分での実行時間と、全てのデータをスカラプロセッサのベクトルユニットで実行した場合の実行時間とを比較し、スカラプロセッサで実行した場合の実行時間の方が短かった場合には、全てのデータをスカラプロセッサのベクトルユニットで行うように処理配分を決定することにより、データ量が少ない場合などにおいて、ベクトルプロセッサを使用した処理により逆に実行時間が長くなってしまわないようにする。
【0019】
請求項4に記載のベクトル化記憶媒体は、プロセッサコアと独立して動作可能で、複数の連続したデータに対する演算を同時に処理するベクトル処理を専門に実行するベクトルプロセッサと、前記プロセッサコアにおける通常のスカラ処理を実行するとともに、1つの命令で前記ベクトル処理を実行するSIMD命令、および1つの命令に複数の動作を記述して前記ベクトル処理を実行するVLIW命令を有するスカラプロセッサとからなるベクトル処理ユニットを含むプロセッサ構成において、前記ベクトル処理を実行するためのベクトルコードを生成するベクトル化方式であって、前記プロセッサ構成における処理実行のためのソースプログラムから前記ベクトル処理用としてベクトル化が可能な部分のコードを抽出するベクトル処理抽出ステップと、前記ベクトル処理抽出ステップで抽出したコードによるベクトル処理に対して、前記ベクトル処理ユニットにおける前記ベクトルプロセッサによるベクトル処理と、前記スカラプロセッサによるベクトル処理とのバランスを解析して、前記ベクトル処理のバランスを全体の実行時間が最小になるように決定するベクトル処理バランス解析ステップと、前記ベクトル処理バランス解析ステップで解析した結果を基に、前記ベクトル処理ユニットがベクトル処理を実行するための前記ベクトルコードを生成するベクトルコード生成ステップとを備えるプログラムを記録したものとする。
【0020】
この記憶媒体によると、スカラ処理と複数の同時実行可能なベクトル処理ユニットでのベクトル処理とのバランスを考慮して、全体の実行時間が最小になるようなコードの生成を可能とする。
【0021】
以下、本発明の実施の形態を示すベクトル化方式について、図面を参照しながら具体的に説明する。
図1は本実施の形態のベクトル化方式を用いたコンパイラの一構成例を示すブロック図である。図1に示すように、本実施の形態のベクトル化方式を用いたコンパイラにおいて、ベクトル化処理部100での処理行程として、ベクトル処理抽出ステップS110と、ベクトル処理バランス解析ステップS120と、ベクトルコード生成ステップS130とを有している。
【0022】
次に、上記の各ステップの機能について、図面を用いて以下に説明する。
ベクトル処理抽出ステップS110は、第一中間言語D110に対して、繰り返し処理からベクトル化可能な部分を抽出し、ベクトル処理を記述した第二中間言語D120に変換する。第一中間言語D110の例を図2(a)に示す。第一中間言語D110は、高級言語におけるループ処理の構造を残したものとなっている。この図ではBの部分がループによる連続データに対する繰り返し処理になっている。次に第二中間言語D120の例を図2(b)に示す。Bの演算がベクトル処理可能であることを示す記述となっている。
【0023】
なお、ベクトル処理抽出ステップS110の詳細な説明については、本発明の主眼ではなく公知技術であるので、ここでの説明は省略する。
ベクトル処理バランス解析ステップS120は、ベクトル処理抽出ステップS110で解析した第二中間言語D120と、プロセッサ内のベクトル処理ユニットに対応するベクトルユニット情報D130とを基に、ベクトル処理バランス情報D140を求める。
【0024】
ここで、ベクトル処理ユニットを持つプロセッサの一例を図3に示して、以下に説明する。
図3に示すように、プロセッサ300は、ベクトル処理ユニットとして、通常の処理を行うスカラプロセッサ310と、ベクトル処理を専門で行うベクトルプロセッサ320とを持つ。スカラプロセッサ310は、通常のスカラ処理を行うためのスカラ命令330に加えて、1つの命令で複数データに対する演算を行うSIMD命令340を持ち、さらにメモリ350を持つ。
【0025】
ベクトルプロセッサ320は、ベクトル処理のための命令であるベクトル命令360を持ち、さらにスカラプロセッサのメモリ350と独立したVPメモリ370を持つ。VPメモリ370は、スカラプロセッサ310用のメモリ350と直接データの転送を行うことが可能となっている。
【0026】
ベクトルプロセッサ320でベクトル処理を行うための手順は以下のようになっている。
まず、スカラプロセッサ310において、ベクトルプロセッサ320を起動するための準備処理を行う。準備処理が完了するとベクトルプロセッサ320においてベクトル処理を行う。ベクトルプロセッサ320によるベクトル処理は、メモリ350からVPメモリ370へのデータ転送、ベクトル命令360を用いたベクトル演算処理、VPメモリ370からメモリ350への演算結果の転送から構成される。
【0027】
また、ベクトルユニット情報D130は、プロセッサ300が持つ各ベクトル処理ユニットの構成を数値化したものである。
プロセッサ300をモデルとして、ベクトル処理バランス解析ステップS120について説明する。
【0028】
ベクトル処理バランス解析ステップS120は、ベクトル処理抽出ステップS110の出力である第二中間言語D120と、プロセッサが持つベクトル処理ユニットの情報を表すベクトルユニット情報D130とを基に、ベクトル処理バランス情報D140を求める。
【0029】
図4は、図2(b)の第二中間言語の実行の流れ(A、B、C、D)を示したものである。図中の四角は処理単位を示しており、矢印は実行依存関係を示している。実行順序としては、まずAを実行する。次にBとCを実行するが、BとCは独立しているため、並列に同時実行が可能である。B、Cの実行が終了した後にDを実行する。ここで、Bはベクトル処理が可能となっており、配列の各要素に対する演算を並列に実行することが可能であるとする。
【0030】
図5(a)は従来手法によるベクトル化の例を示しており、図4で示した一連の処理を対象として、プロセッサ300でベクトル処理したときの処理配分と実行時間を示している。従来手法では、図5(a)に示すように、ベクトル化を行う配列全体を1つの単位としていたので、B全体をベクトルプロセッサで実行するようにしている。図5(b)は、A、B、C、Dの各処理をどのプロセッサで実行するのかを示している。Bをベクトルプロセッサ320で処理し、他の処理はスカラプロセッサ310のスカラ命令330で処理する。
【0031】
Bをベクトルプロセッサ320で実行する場合、以下のような4段階の処理となる。
B1:スカラプロセッサ310によるベクトルプロセッサ320を起動するための処理
B2:VPメモリ370にデータを転送
B3:ベクトル命令360を用いたベクトル演算処理
B4:ベクトル演算処理により得られた演算結果をメモリ350に転送
これらの処理のうち、スカラプロセッサ310ではB1を実行し、ベクトルプロセッサ320ではB2〜B4を実行する。ここで実際の演算処理を行っているのはB3の部分であり、他の部分はベクトルプロセッサ320を使用するために必要な処理となっている。
【0032】
ここで、B1の処理はベクトル処理を行うデータ量にかかわらず一定の処理時間がかかるとする。B2〜B4についてはベクトル処理を行うデータ量に比例して処理時間が大きくなる。ベクトルプロセッサ320での処理における横幅は並列度を表しており、この例では8並列でベクトル処理を行う。TA、TB1〜TB4、TC、TDはそれぞれの処理にかかる時間を示している。さらにTallは処理全体にかかる時間、TBVはBの処理のうちベクトルプロセッサ320で行う処理時間を表す。
【0033】
スカラプロセッサ310とベクトルプロセッサ320は独立して動作可能なので、全体の実行時間TallはTCとTBVのうちの大きい方に依存することになる。ここで、図5のように、TBVがTCよりも大きい場合、スカラプロセッサ310での待ち時間が発生していることがわかる。
【0034】
本手法では、ベクトル処理バランス解析ステップS120において、ベクトル処理Bの最適な処理配分を決定し、スカラプロセッサ310においてもベクトル処理を行うことにより、スカラプロセッサ310での待ち時間をなくしている。
【0035】
ベクトル処理バランス解析ステップS120について、その動作を図6のフローチャートを用いながら以下に説明する。
ステップ610では、ベクトルプロセッサ(VP)と並列に処理が可能なスカラ処理Cの処理時間TCを求める。ステップ620では、Bの処理配分を変数としたとき、スカラプロセッサ(SP)に割り当てられた処理の時間TBSを求める。ステップ630では、Bの処理配分を変数としたとき、VPに割り当てられた分の処理時間TBVを求める。
【0036】
ステップ640では、先に求めた処理時間から、TC+TBS=TBVとなるような処理配分を求める。ステップ650では、ステップ640で求めた処理配分におけるTB1+TBVの値と、Bの処理を全てスカラプロセッサ310のSIMD命令340で実行した場合の処理時間TBSを求める。
【0037】
ステップ660では、ステップ650で求めた値において、Bの処理を全てスカラプロセッサのSIMD命令で実行した場合の実行時間が少ないかどうかを条件として比較する。ステップ670では、ステップ660の条件を満たさない場合であり、処理配分はステップ640で求めたものとする。ステップ680では、ステップ660の条件を満たす場合であり、処理配分は全てスカラプロセッサ310のSIMD命令340で実行するとする。ステップ690では、求めた処理配分からベクトル処理バランス情報D140を生成する。
【0038】
図7(a)は、図4で示した一連の処理を対象として、ベクトル処理バランス解析ステップS120を適用した結果を示している。
Bの演算処理は、ベクトル処理バランス解析ステップS120で求めた処理配分をもとにして分割される。B31は分割したBの演算処理のうち、ベクトルプロセッサ320で処理をする分である。同様に、B32は分割した演算処理のうち、スカラプロセッサ310のSIMD命令340で処理をする分である。TBS+TC=TBVとなるように処理配分を決定しているため、スカラプロセッサ310での待ち時間が発生していないことがわかる。
【0039】
図7(b)は、図5(b)と同様に、A、B、C、Dの各処理をどのプロセッサで実行するのかを示している。Bをベクトルプロセッサ320とスカラプロセッサ310のSIMD命令340の両方で処理し、他の処理はスカラプロセッサ310のスカラ命令330のみで処理する。表中の二重丸はベクトル処理を分担している部分を示している。
【0040】
図8(a)は、図4で示した一連の処理を対象として、ベクトル処理バランス解析ステップS120を適用した第二の方式を示している。この方式は、図6のステップ660において、Bの演算処理をSIMD命令のみで実行した方が実行時間が少ない場合である。
【0041】
図8(b)に示すように、Bをスカラプロセッサ310のSIMD命令340のみで処理しており、他の処理はスカラプロセッサ310のスカラ命令330で処理する。ベクトルコード生成ステップS130は、ベクトル処理抽出ステップS110の出力である第二中間言語D120を入力として、ベクトルユニット情報D130と、ベクトル処理バランス解析ステップS120の出力であるベクトル処理バランス情報D140を用いて、第三中間言語D150を出力する。
【0042】
なお、本実施の形態で示される方式を実現する装置をフレキシブルディスク、ハードディスク、CD−ROM、MO、DVDなどの記録媒体に入れることにより、本実施の形態で示される方式を、コンピュータで実現することができる。
【0043】
【発明の効果】
以上のように本発明によれば、スカラ処理と複数の同時実行可能なベクトル処理ユニットでのベクトル処理とのバランスを考慮して、全体の実行時間が最小になるようなコードを生成することができる。
【0044】
また、ベクトル処理のバランス決定に際して、処理配分を変数として、ベクトルプロセッサでのベクトル処理の処理時間と、スカラプロセッサでのスカラ処理およびベクトル処理の処理時間とを求め、同時実行する部分の処理時間が等しくなる処理配分を得ることができる。
【0045】
また、全体の処理時間を最小にする処理配分での実行時間と、全てのデータをスカラプロセッサのベクトルユニットで実行した場合の実行時間とを比較し、スカラプロセッサで実行した場合の実行時間の方が短かった場合には、全てのデータをスカラプロセッサのベクトルユニットで行うように処理配分を決定することにより、データ量が少ない場合などにおいて、ベクトルプロセッサを使用した処理により逆に実行時間が長くなってしまわないようにすることができる。
【0046】
以上のため、コンパイラでの処理実行の際のベクトル処理に対して、スカラプロセッサとベクトルプロセッサとによるより良好なバランスでの処理を考慮したコード生成を行うことができ、ベクトル処理の実行時間を最小に抑えることができる。
【図面の簡単な説明】
【図1】本発明の実施の形態のベクトル化方式によるコンパイラの構成例を示すブロック図
【図2】同実施の形態のベクトル化方式における中間言語の例を示す概念図
【図3】同実施の形態のベクトル化方式におけるプロセッサの構成例を示すブロック図
【図4】同実施の形態のベクトル化方式における第二中間言語の処理の流れを示すフロー図
【図5】同実施の形態のベクトル化方式と比較するための従来のベクトル化の動作説明図
【図6】同実施の形態のベクトル化方式におけるベクトル処理バランス解析ステップの処理を示すフロー図
【図7】同実施の形態のベクトル化方式におけるベクトル化の動作説明図
【図8】同実施の形態のベクトル化方式における別のベクトル化の動作説明図
【符号の説明】
100  ベクトル化処理部
S110  ベクトル処理抽出ステップ
S120  ベクトル処理バランス解析ステップ
S130  ベクトルコード生成ステップ
D110  第一中間言語
D120  第二中間言語
D130  ベクトルユニット情報
D140  ベクトル処理バランス情報
D150  第三中間言語
300  プロセッサ
310  スカラプロセッサ
320  ベクトルプロセッサ
330  スカラ命令
340  SIMD命令
350  メモリ
360  ベクトル命令
370  VPメモリ

Claims (4)

  1. プロセッサコアと独立して動作可能で、複数の連続したデータに対する演算を同時に処理するベクトル処理を専門に実行するベクトルプロセッサと、前記プロセッサコアにおける通常のスカラ処理を実行するとともに、1つの命令で前記ベクトル処理を実行するSIMD命令、および1つの命令に複数の動作を記述して前記ベクトル処理を実行するVLIW命令を有するスカラプロセッサとからなるベクトル処理ユニットを含むプロセッサ構成において、前記ベクトル処理を実行するためのベクトルコードを生成するベクトル化方式であって、前記プロセッサ構成における処理実行のためのソースプログラムから前記ベクトル処理用としてベクトル化が可能な部分のコードを抽出するベクトル処理抽出ステップと、前記ベクトル処理抽出ステップで抽出したコードによるベクトル処理に対して、前記ベクトル処理ユニットにおける前記ベクトルプロセッサによるベクトル処理と、前記スカラプロセッサによるベクトル処理とのバランスを解析して、前記ベクトル処理のバランスを全体の実行時間が最小になるように決定するベクトル処理バランス解析ステップと、前記ベクトル処理バランス解析ステップで解析した結果を基に、前記ベクトル処理ユニットがベクトル処理を実行するための前記ベクトルコードを生成するベクトルコード生成ステップとを備えたことを特徴とするベクトル化方式。
  2. 請求項1記載のベクトル化方式であって、前記ベクトル処理バランス解析ステップで、前記ベクトル処理のバランスを決定するに際し、前記ベクトル処理抽出ステップで抽出したコードを基に、それらの処理配分を変数として、前記ベクトルプロセッサでの処理時間と、前記スカラプロセッサでのスカラ処理とベクトル処理の各処理時間とを求め、同時実行する部分の処理時間が等しくなる処理配分を求めることを特徴とするベクトル化方式。
  3. 請求項2記載のベクトル化方式であって、前記ベクトル処理バランス解析ステップで、前記同時実行する部分の処理時間が等しくなる処理配分でのベクトル処理により実行した場合の全体の実行時間と、全てのデータをスカラプロセッサでのベクトル処理により実行した場合の全体の実行時間とを比較し、前記スカラプロセッサで実行した場合の実行時間の方が短かった場合には、前記全てのデータを前記スカラプロセッサでのベクトル処理により実行するように、処理配分を決定することを特徴とするベクトル化方式。
  4. プロセッサコアと独立して動作可能で、複数の連続したデータに対する演算を同時に処理するベクトル処理を専門に実行するベクトルプロセッサと、前記プロセッサコアにおける通常のスカラ処理を実行するとともに、1つの命令で前記ベクトル処理を実行するSIMD命令、および1つの命令に複数の動作を記述して前記ベクトル処理を実行するVLIW命令を有するスカラプロセッサとからなるベクトル処理ユニットを含むプロセッサ構成において、前記ベクトル処理を実行するためのベクトルコードを生成するベクトル化方式であって、前記プロセッサ構成における処理実行のためのソースプログラムから前記ベクトル処理用としてベクトル化が可能な部分のコードを抽出するベクトル処理抽出ステップと、前記ベクトル処理抽出ステップで抽出したコードによるベクトル処理に対して、前記ベクトル処理ユニットにおける前記ベクトルプロセッサによるベクトル処理と、前記スカラプロセッサによるベクトル処理とのバランスを解析して、前記ベクトル処理のバランスを全体の実行時間が最小になるように決定するベクトル処理バランス解析ステップと、前記ベクトル処理バランス解析ステップで解析した結果を基に、前記ベクトル処理ユニットがベクトル処理を実行するための前記ベクトルコードを生成するベクトルコード生成ステップとを備えるプログラムを記録したベクトル化記憶媒体。
JP2002206348A 2002-07-16 2002-07-16 ベクトル化方式 Pending JP2004046747A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002206348A JP2004046747A (ja) 2002-07-16 2002-07-16 ベクトル化方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002206348A JP2004046747A (ja) 2002-07-16 2002-07-16 ベクトル化方式

Publications (1)

Publication Number Publication Date
JP2004046747A true JP2004046747A (ja) 2004-02-12

Family

ID=31711348

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002206348A Pending JP2004046747A (ja) 2002-07-16 2002-07-16 ベクトル化方式

Country Status (1)

Country Link
JP (1) JP2004046747A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006061926A1 (ja) * 2004-12-09 2006-06-15 National University Corporation NARA Institute of Science and Technology 量子コンピュータを含むコンピュータシステムのためのプログラム開発支援装置、プログラム開発支援用プログラム、及びシミュレーション装置
JP2011204209A (ja) * 2010-03-26 2011-10-13 Toshiba Corp ソフトウェア変換プログラム、および、計算機システム
JP2019023909A (ja) * 2006-09-21 2019-02-14 インテル コーポレイション 論理比較動作を実行するための装置

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006061926A1 (ja) * 2004-12-09 2006-06-15 National University Corporation NARA Institute of Science and Technology 量子コンピュータを含むコンピュータシステムのためのプログラム開発支援装置、プログラム開発支援用プログラム、及びシミュレーション装置
JP4867009B2 (ja) * 2004-12-09 2012-02-01 国立大学法人 奈良先端科学技術大学院大学 量子コンピュータを含むコンピュータシステムのためのプログラム開発支援装置、プログラム開発支援用プログラム、及びシミュレーション装置
JP2019023909A (ja) * 2006-09-21 2019-02-14 インテル コーポレイション 論理比較動作を実行するための装置
US10416997B2 (en) 2006-09-21 2019-09-17 Intel Corporation Method and apparatus for performing logical compare operations
US10572251B2 (en) 2006-09-21 2020-02-25 Intel Corporation Method and apparatus for performing logical compare operations
JP2020091908A (ja) * 2006-09-21 2020-06-11 インテル コーポレイション 論理比較動作を実行するための装置
JP2011204209A (ja) * 2010-03-26 2011-10-13 Toshiba Corp ソフトウェア変換プログラム、および、計算機システム

Similar Documents

Publication Publication Date Title
US8595280B2 (en) Apparatus and method for performing multiply-accumulate operations
US5815719A (en) Method and apparatus for easy insertion of assembler code for optimization
JP2921190B2 (ja) 並列実行方式
JPH04307625A (ja) ループ最適化方法及び装置
JP2004038225A (ja) コンパイラプログラムおよびコンパイル処理方法
JPH01108638A (ja) 並列化コンパイル方式
JP4487479B2 (ja) Simd命令シーケンス生成方法および装置ならびにsimd命令シーケンス生成用プログラム
Lorenz et al. Energy aware compilation for DSPs with SIMD instructions
JPH11288375A (ja) 可変ターゲットコンパイル処理方法、その処理装置、そのプログラムの記憶媒体および変換テーブルの記憶媒体
JP2004046747A (ja) ベクトル化方式
JP3318051B2 (ja) 翻訳処理方法
KR20150040663A (ko) 소프트웨어 파이프라이닝을 이용한 명령어 스케줄링 방법 및 장치
JP2000268074A (ja) 検証プログラム自動生成装置および方法並びにプロパティ自動生成装置および方法
JPH04293150A (ja) コンパイル方法
JP5644432B2 (ja) 動作合成システム、動作合成方法、動作合成用プログラム及び半導体装置
JP3887097B2 (ja) コンパイル方法,コンパイル装置および、コンパイル用プログラムを記憶したコンピュータ読み取り可能な記憶媒体
JP4158239B2 (ja) 情報処理装置および方法、並びに記録媒体
CN114327643B (zh) 机器指令预处理方法、电子设备及计算机可读存储介质
JPH04307624A (ja) ループ最適化方法及び装置
JP3619861B2 (ja) パイプライン情報の出力方法ならびにそのための出力装置およびコンピュータ読み取り可能な記録媒体
JP2956591B2 (ja) ループ外への条件付き飛び出しがあるループの並列化方法及び装置
Vassiliadis et al. PISC: Polymorphic instruction set computers
JPH08115220A (ja) ループ最適化方法
JPH11203145A (ja) 命令スケジューリング方法
JPS6336337A (ja) スカラ/ベクトル命令の融合スケジユ−リング処理方式

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050706

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080313

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080527

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20080930