JPS59180669A - 領域不変ベクトルの割付方式 - Google Patents

領域不変ベクトルの割付方式

Info

Publication number
JPS59180669A
JPS59180669A JP5548983A JP5548983A JPS59180669A JP S59180669 A JPS59180669 A JP S59180669A JP 5548983 A JP5548983 A JP 5548983A JP 5548983 A JP5548983 A JP 5548983A JP S59180669 A JPS59180669 A JP S59180669A
Authority
JP
Japan
Prior art keywords
vector
register
invariant
instruction
area
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
Application number
JP5548983A
Other languages
English (en)
Other versions
JPH0233188B2 (ja
Inventor
Morie Sagawa
佐川 守江
Hideo Takashima
高嶋 秀夫
Shinya Miura
信也 三浦
Kazuhiko Suzuki
一彦 鈴木
Masaki Aoki
正樹 青木
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP5548983A priority Critical patent/JPH0233188B2/ja
Publication of JPS59180669A publication Critical patent/JPS59180669A/ja
Publication of JPH0233188B2 publication Critical patent/JPH0233188B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Computational Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Complex Calculations (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 〔発明の技術分野〕 本発明は、プログラムのうち入れ子構造のループを構成
する部分、特に内部ループに領域不変べクトルをロード
するだめのベクトル・ロード命令、領域不変ベクトルを
演算するだめのベクトル演算命令および領域不変ベクト
ルをストアするだめのベクトル・ストア命令を有する入
れ子構造のループを構成する部分を最適化する領域不変
ベクトルの割付方式に関するものである。
〔従来技術と問題点〕
第1図はベクトル命令を実行する計算機システムの概要
を示すものであって、MSUは主記憶装置、MCUは記
憶制御ユニット、■Pはベクトル・プロセッサ、CHP
I−iチャネル・プロセッサ、DAはDASDをそれぞ
れ示している。
ベクトル・プロセッサVPは、メモリ・アクセス・パイ
プライン、加減算パイプライン、乗算パイプライン、除
算パイプライン及びマスク・パイプラインを有している
。ベクトルeプロセッサ■がメモリ・アクセス要求を発
行すると、記憶制御ユニットMCUはこのメモリ・アク
セス要求全実行する。
第2図はベクトル・プロセッサvPのレジスタ・アーキ
テクチャを示すものであって、FORないしFRngは
汎用レジスタ、VR(,1ないしV Rn vはベクト
ル・レジスタM R’OないしMRルyはマスク・レジ
スタ、VLはベクトル長をそれぞれ示している。ベクト
ル・レジスタVROないしV Rn vのそれぞれは、
演算ベクトルを格納するものであり、マスク・レジスタ
M R’0ないしM Rnυのそれぞれはマスク・ベク
トルを格納するものである。
ベクトル長レジスタVLには、演算ベクトル長がセット
される。1回のベクトル長の設定で動作可能なベクトル
命令範囲をVL制御範囲という。VL制御範囲で使用す
る最大のベクトル・レジスタ数をビジー数というが、ベ
クトル・レジスタの個数とベクトル・レジスタの長さく
要素数)は、ビジー数で相違する。例えば、ビジー数が
1ないし8の場合には、長さ1024の8個のベクトル
・レジスタが論理的に存在することになり、ピーシ数が
9ないし16のときは長さが512の16個のベクトル
・レジスタが論理的に存在することになる。
第3図はVP用FORTRANコンパイラの概要を示す
図であり、CMPはvp用FORTRANコンパイラを
示すものである。このコンパイラCMPは、ソース解釈
部、記憶域割付は部、ベクトル化部、中間コード最適化
部、レジスタ使用決定部および目的プログラム出力部を
有している。ソース解釈部はソース・プログラムをDA
SDより入力し、文解釈を行って中間コードに展開する
ものであり、記憶域割付部はプログラム中に出現する各
種データに記憶域内番地を割当てるものであり、ベクト
ル化部はプログラムのループ構造を検出し、並列実行可
能部分の記憶と中間コード変更を行うものであり、中間
コード最適化部は中間コードのレベルで■Pハードクエ
アを有効に利用する最適化を施すものであり、レジスタ
使用決定部は中間コードに現われたデータに実際の・貸
源(レジスタ)を割当てるものであり、目的プログラム
出力部は機械命令語のDASDへの出力と、機械語レベ
ルでの最適化を行うものである。
第午図は、入れ子構造のループをなし、内部ループに配
列Bと配列Cとを加算し、これを配列Aとするためのベ
クトル命令列を有する中間テキストの1例を示すもので
ある。内部ループのベクトル命令列は、ベクトルBをベ
クトル畢レジスタvt1にロードし、ベクトルCをベク
トル・レジスタυt2にロードし、ベクトル・レジスタ
υt1のベクトルとベクトル・レジスタυt2のベクト
ルを加算して加算結果をベクトル・レジスタvt3にセ
ントし、ベクトル・レジスタυt3のベクトルをベクト
ルAとしてロードするだめのものである。この内部ルー
プをm回実行した後、制御変数Jの値は更新される。制
御変数Jの値が定められた値になると、入れ子構造のル
ープの処理は終了したことになる。ベクトルA、B、C
が制御変数Jに無関係な場合、これを領域不変ベクトル
という。
第5図は配列Bと配列Cと加算して配列Cを作る処理を
説明するものである。いま、配列A、B、Cの要素数を
ル、ベクトル拳レジスタの長さを512、ルを512で
割ったときの商をSとし、剰余をXとする。この場合、
ベクトル長レジスタVLには512がセントされ、また
、回転数mはS+1となる。先ず、配列Bの第0番地(
先頭)ないし第x −1番地のベクトルを取り出してベ
クトル・レジスタvt1にロードし、配列Cの第0番地
ないし第x −1番地のベクトルを取り出してベクトル
・レジスタvt2にロードし、ベクトル争レジスタvt
1とベクトル費レジスタvt2を加算して加算結果をベ
クトル・レジスタυt3に入れ、ベクトル・ ゛レジス
タυt3の中のベクトルを配列Aの第0番地ないし第x
−1番地にストアする。次に、配列Bの第X番地ないし
第、T +511番地のベクトルをベクトル・レジスタ
υt1にロードし、配列Cの第X番地ないし第、T+5
11番地のベクトルをベクトル9レジスタvt2にロー
ドし、ベクトル・レジスタνt1とベクトル・レジスタ
υt2の加算結果をベクトル轡レジスタvt3にセット
口、ベクトル・レジスタυt3のベクトルを配列Aの第
X番地ないし第$+511番地にストアする。以下、同
様な処理を繰返し数がmになるまで行う。
第4図に示されているような入れ子構造ループは、制御
変数Jの回転数をNとすると、ロードの回数は、 N X m X 2 となり、ストアの回数は Xm と力る。ベクトル・プロセッサ■Pの処理効率を向上さ
せるためには、主記憶装置をアクセスする回数は可能な
眼り少なくすることが望まれる。
〔発明の目的〕
本発明は、上記の考察に基づくものであって、入れ子構
造をなし且つ内部ループに領域不変ベクトルをロード/
ストアするベクトル命令を有するプログラムを効率のよ
いプログラムに変換する領域不変ベクトルの割付方式を
提供することを目的としている。
〔発明の構成〕
そしてそのため、本発明の領域不変ベクトルの割付方式
は入れ子構造のループを構成し、且つ内側ループに領域
不変ベクトルをベクトル・レジスタにロードするだめの
ベクトル−・ロード命令、ベクトル・レジスタ内の領域
不変ベクトルを演算するだめのベクトル命令およびベク
トル・レジスタ内の領域不変ベクトルをストアするため
のベクトル・ストア命令を有するプログラムを最適化す
る領域不変ベクトルの割付方式において、演算対象とな
る領域不変ベクトルの全要素数をベクトル・レジスタの
ベクトル長で割ったときの商をm1剰余をXとするとき
、外側のループのパック・ターゲットに、ベクトル長レ
ジスタに値Xを設定するだめの命令、領域不変ベクトル
をループ中で恒久割付可能なレジスタ1υtにロードす
るだめの命令を配置し、内側ループに、ベクトル長レジ
スタに値Xを設定するための命令、上記の恒久割付可能
なレジスタJυを同志の演算を行わせるだめの命令、回
転数をmとする命令、ベクトル長レジスタにベクトル・
レジスタのベクトル長を設定するための命令、領域不変
ベクトルをベクトル・レジスタにロードするためのベク
トル・ロード命令、ベクトル書レジスタ内の領域不変ベ
クトル演算するベクトル演算命令およびベクトル・レジ
スタ内の領域不変ベクトルをストアするだめのベクトル
・ストア命令を配置し、外側ループのフォワード・ター
ゲットに、ベクトル長レジスタに値xを設定する命令、
恒久的割付可能なレジスタgvt内の領域不変ベクトル
をストアするためのストア命令を配置することを特徴と
するものである。
〔発明の実施例〕
以下、本発明を図面乞参照しつつ説明する。
第6図は不発明の概要を示す図である。本発明において
は、先ず、領域不変ベクトルのgvt化が行わn7)。
gvt トは、GLOBAL VECTORTEMPO
RARYの略であり1.qυtレジスタとはループ中で
恒久割付可能なベクトル・レジスタ(以下、単にqvt
という)を意味している。領域不変ベクトルの1vt化
を行った後、VL制御範囲をmod部と1oop部に分
割する。modはModwltLsの略であり、剰余の
ことである。VL制御範囲をrnoti部と1oop部
に分割した後、moct部の領域不変ベクトルの移動を
行う。なお、本発明は第4図の中間コード最適化部に関
するものである。
領域不変ベクトルのgvt化は、下記のような手′晒で
行われる。
(1)  5CR(Stron、、qtyConrbe
ctedRegion、)内で参照のみの領域不変ベク
トルをgvi化の候補とし7て選出する(ロード命令に
対応)。なお、SCRと(はDOループに対応するもの
と考えてよい。
(2)  SCR内で定義有りの領域不変ベクトルをg
vi化の候補として選出する(ストア命令に対応)。
(3)  使用類Hgの多い順に、選出されたqvt候
補の順序付を行う。
(4)  ανを候補からgvtを決定する。
(5)  gvtの割付けを行つと共に、領域不変ベク
トルに対応するvtの引用をqvtでf(キ換える。
第7図はベクトル加算命令を含む入れ子構造のD Oル
ープと、これに対応する中間テキストを示すものである
。配列A、B、CはJに対して不変である。B(’X’
l、C(−X)、AC@の苦は1ないしnの全部を意味
する。第7図において、B(へ)、0例)、A(殉が部
域不変ベクトルである。
第8図はgviの割付けと、領域不変ベクトルに対する
vtのgvtへの置き換えを説明するものである。vj
lがgutlに、vt2がqvt 2に、vt3がgv
i3に置き換えられる。
次に■L制御範囲をmod部とLoo7・部に分割する
。いま、配列A、B、Cの要素数を1500、ベクトル
・レジスタの長さを512とする。剰余、rはこ1= 
 )lLOd−<  1500.512  )   =
476商Sは S = (15001512) = 2となる。なお、
回転数mはSと等しく、2となる。
配列A、B、Cの要素数を1500、ベクトル・し・ジ
スタの長さを512とした場合、第8図のgvi化され
た中間テキストは、第9図に示すようにynoc1部と
1oop部に分割される。
最後に、mod部の領域不変ベクトルの移動について説
明する。第10図に示すように、tnocL錦の領域不
変ベクトルのロード命令をSCRのバック・ターゲット
に移動し、次にm、od、部の領域不変ベグ1ルのスト
ア命令をSCRのフォワード・ターゲ;iK移動し2、
最後に1oop部の、qvtをvtで置き1′J!える
。第9図の中間テキストに対j7て一ヒ記の処理を施す
と、第11図のような中間テキストが得らハる。
〔発明の効果〕
以上の説明から明らかなように、本発明によれば、「J
−ド/ストア命令の実行回数を従来方式に汁I L、減
すことが出来る。
【図面の簡単な説明】
第1図はベクトル命令を実行する計算機システムの1例
を示す図、第2図はベクトル・ブロセッ%jのレジスタ
ーアーキテクチャを示す図、第3図(壊VP用FORT
RANコンパイラの概要を示す図、ケ4図は入れ子構造
のループをもつ中間テキストの1例を示す図、第5図は
配列Bと配列Cと加算して配列Cを作る処理を説明する
図、第6図は本発明の概要を示す図、第7図はベクトル
加算命令を含む入れ子構造のDOループとこれに対応す
る中間テキストを示す図、第8図はqvtの割付とvt
のqvtへの置き換えを説明する図、第9図はm、od
。 部と1oopの分割を説明する図、第10図はmor1
部の領域不変ベクトル移動するだめの手順を示す図、第
11図はnod、@の領域不変ベクトルの移動が行われ
た後の中間テキストの1例を示す図である。 MSU・・・主記憶ユニット、M CU・・・記憶制御
ユニッ)、VP・・・ベクトル命フ′ロセソ丈、DA・
・・DASDlF ROないしFR,ng−・汎用レジ
スタ、■L・・・へ゛クトル長レジスタ、VROないし
VRルυ・・・ベクトル・レジスタ、MROないしM 
Rn v・・・マスク・レジスタ。 特許出願人 富士通株式会社 代理人弁理士 京 谷 四 部 材2(2) [面=] 材41必 fc)I刀 F<v(ヌ)戸−1・・・ 1七′?→骨6図 ! 骨70 〈ソースイ刊〉 牙8(2) 材9(2) プ10(2) 骨111力 SC尺のハ゛・J7ターゲパノト SCRの万ワードター7:、ト 371−

Claims (1)

    【特許請求の範囲】
  1. 入れ子構造のループを構成し、且つ内側ループに領域不
    変ベクトルをベクトル・レジスタにロードするだめのベ
    クトル・ロード命令、ベクl−/し・レジスタ内の領域
    不変ベクトルを演算するだめのベクトル命令およびベク
    トル・レジスタ内の領域不変ベクトルをストアするだめ
    のベクトル・ストア命令を有するプログラムを最適化す
    る領域不変ベクトルの割付方式において、演算対象とな
    る領域不変ベクトルの全要素数をベクトル・レジスタの
    ベクトル長で割ったときの商をm1刺余をXとするとき
    、外側のループのパック・ターゲットに、ベクトル長レ
    ジスタに値Xを設定するだめの命令、領域不変ベクトル
    をループ中で恒久割付可能なレジスタgvtにロードす
    るだめの命令を配置し、内側ループに、ベクトル長レジ
    スタに値Xを設定するだめの命令、上記の恒久割付可能
    なレジスタlυを同志の演算を行わせるだめの命令、回
    転数をmとする命令、ベクトル長レジスタにベクトル会
    しジヌタのベクトル長を設定するだめの命令、領域不変
    ベクトルをベクトル・レジスタにロードするだめのベク
    トル・ロード命令、ベクトル・レジスタ内の領域不変ベ
    クトル演算するベクトル演算命令およびベクトル・レジ
    スタ内の領域不変ベクトルをストアするためのベクトル
    ・ストア命令を配置し、外側ループのフォワード・ター
    ゲットに、ベクトル長レジスタに値Xを設定する命令、
    恒久的割付可能なレジスタgvt内の領域不変ベク°ト
    ルをストアするためのストア命令を配置することを特徴
    とする領域不変ベクトルの割付方式。
JP5548983A 1983-03-31 1983-03-31 Ryoikifuhenbekutorunowaritsukehoshiki Expired - Lifetime JPH0233188B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP5548983A JPH0233188B2 (ja) 1983-03-31 1983-03-31 Ryoikifuhenbekutorunowaritsukehoshiki

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP5548983A JPH0233188B2 (ja) 1983-03-31 1983-03-31 Ryoikifuhenbekutorunowaritsukehoshiki

Publications (2)

Publication Number Publication Date
JPS59180669A true JPS59180669A (ja) 1984-10-13
JPH0233188B2 JPH0233188B2 (ja) 1990-07-25

Family

ID=13000038

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5548983A Expired - Lifetime JPH0233188B2 (ja) 1983-03-31 1983-03-31 Ryoikifuhenbekutorunowaritsukehoshiki

Country Status (1)

Country Link
JP (1) JPH0233188B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009151422A (ja) * 2007-12-19 2009-07-09 Kddi Corp プロセッサデバイスに基づくソースコード変換プログラム及び装置

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0632278U (ja) * 1992-10-06 1994-04-26 ヤンマー農機株式会社 移動作業機の車高調節装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009151422A (ja) * 2007-12-19 2009-07-09 Kddi Corp プロセッサデバイスに基づくソースコード変換プログラム及び装置

Also Published As

Publication number Publication date
JPH0233188B2 (ja) 1990-07-25

Similar Documents

Publication Publication Date Title
US5958048A (en) Architectural support for software pipelining of nested loops
US6113650A (en) Compiler for optimization in generating instruction sequence and compiling method
JP3847672B2 (ja) コンパイラ装置及びコンパイル方法
US5099447A (en) Blocked matrix multiplication for computers with hierarchical memory
US5303357A (en) Loop optimization system
US7631305B2 (en) Methods and products for processing loop nests
Kim et al. Efficient SIMD code generation for irregular kernels
US5247696A (en) Method for compiling loops having recursive equations by detecting and correcting recurring data points before storing the result to memory
JPH05143332A (ja) 命令スケジユーラを備えたコンピユータ・システム及び入力命令シーケンスを再スケジユールする方法
CN111381880B (zh) 一种处理器、介质和处理器的操作方法
KR19980032264A (ko) 벡터 프로세서 프로그래밍 및 벡터 프로세서와 risc 프로세서를 구비하는 비대칭 이중 프로세서의 병렬 프로그래밍
Hormati et al. Macross: Macro-simdization of streaming applications
JPS63132338A (ja) コード生成方法
US9841957B2 (en) Apparatus and method for handling registers in pipeline processing
JPS59180669A (ja) 領域不変ベクトルの割付方式
Tian et al. Optimizing gpu register usage: Extensions to openacc and compiler optimizations
JP2018124877A (ja) コード生成装置、コード生成方法、およびコード生成プログラム
JP7006097B2 (ja) コード生成装置、コード生成方法及びコード生成プログラム
JPH06103462B2 (ja) ベクトル・レングス制御範囲分割処理方式
JPS59165147A (ja) コンパイラにおける条件文のベクトル命令化方式
EP4227795A1 (en) A computer-implemented method and a computer-readable medium
Luo et al. Parallel Optimization of Super Pixel Algorithm SLIC
US11275712B2 (en) SIMD controller and SIMD predication scheme
JPH06290057A (ja) ループ最適化方法
Moldovanova et al. Energy efficiency and performance of auto-vectorized loops on intel xeon processors