JPH0377141A - コンパイル処理装置 - Google Patents

コンパイル処理装置

Info

Publication number
JPH0377141A
JPH0377141A JP21350189A JP21350189A JPH0377141A JP H0377141 A JPH0377141 A JP H0377141A JP 21350189 A JP21350189 A JP 21350189A JP 21350189 A JP21350189 A JP 21350189A JP H0377141 A JPH0377141 A JP H0377141A
Authority
JP
Japan
Prior art keywords
vector
scalar
train
program
vector operation
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
JP21350189A
Other languages
English (en)
Other versions
JP2748582B2 (ja
Inventor
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 JP1213501A priority Critical patent/JP2748582B2/ja
Publication of JPH0377141A publication Critical patent/JPH0377141A/ja
Application granted granted Critical
Publication of JP2748582B2 publication Critical patent/JP2748582B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Complex Calculations (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

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

Description

【発明の詳細な説明】 〔概 要〕 計算機において、ベクトル化目的プログラムを生成する
コンパイラの処理に関し、 ベクトル演算の一部をスカラ演算に変換する場合に、ベ
クトル演算と並列に実行可能にして、目的プログラムの
実行効率を改善するベクトル演算列分割処理方式を目的
とし、 スカラ演算決定部と、演算列分割処理部とを有し、該ス
カラ演算決定部は、プログラムの第■のベクトル演算列
で処理するベクトルについて、スカラ演算の対象に変換
すべき要素数を所定の条件によって決定し、該演算列分
割処理部は、第1のベクトル演算列を分割して、第2の
ベクトル演算列により、該要素数で定まる所定の要素を
除く残りの要素からなる該ベクトルについて処理し、ス
カラ演算列を、該所定の要素についての演算を、第2の
ベクトル演算列と並列に処理するように配置するように
構成する。
〔産業上の利用分野〕
本発明は、計算機における、ベクトル化目的プログラム
を生成するコンパイラの処理、特にベクトル演算の一部
をスカラ演算に変換する場合のベクトル演算列分割処理
方式に関する。
〔従来の技術と発明が解決しようとする課題]計算機で
実行するいわゆるベクトル化コンパイラは、例えばFO
RTRANプログラミング言語で記述された計算機の原
始プログラムを解析して、目的プログラムを生成する場
合に、目的プログラムの所要部分をベクトル演算列とし
て生成する、いわゆるベクトル化を行って、ベクトルプ
ロセッサによって実行できる目的プログラムにする。
このような、ベクトル化する部分について、ベクトル演
算列を分割することにより、ベクトルプロセッサの並列
処理機能の利用度を高めて実行効率を改善する最適化が
行われる。
第3図は計算機の構成例を示すブロック図であり、コン
パイラ1のプログラム解析部3は原始プログラム2を人
力して解析し、その結果に基づいてベクトル化処理部4
が所定のベクトル化すべき部分をベクトル化し、例えば
所定の中間言語で表されたベクトル化中間テキスト8を
生成する。
最適化処理部5は、このベクトル化中間テキスト8を処
理してベクトル化したプログラムのベクトル演算列の分
割を行って、最適化中間テキスト9を生威し、オブジェ
クト生成部6がその結果を変換して、目的プログラム7
を出力する。
第4図はベクトル化と前記の最適化をプログラム例で説
明する図であり、第4図(a)はFORTRAN言語で
記述・された原始プログラムの例であり、二重のDO小
ループ内側ループをベクトル化することにより、(1)
)のテキストになる。(b)において、Jを制御変数と
するDO小ループ本体部がベクトル演算を示し、A(*
、J)等によって別に指定される*のとる範囲(元の内
側ループのIで指定されていたベクトル長VLENの範
囲)の要素からなるベクトルを示す。
(b)を中間テキスト式に表現すると(C)のようにな
る。こ\でVL、 VST SV旧よそれぞれベクトル
演算命令のロード(し)、ストア(ST)、加X(A)
命令を示し、それらのベクトル演算命令のオペランドに
おけるνR1、νR2等はベクトルプロセッサの持つベ
クトルレジスタの各領域を表すものとする。
次に(C)におけるベクトル演算列について、展開数を
2とする分割を行って最適化すると(d)のようになる
。ここで使用する展開数は、目的とするベクトルプロセ
ンサの演算パイプラインの構成等によって最適数が定ま
り、例えば予めコンパイラに与えられている。
第4図(d)において、先頭のDoループの制御文に続
く8行のプログラムは図から明らかなように、このベク
トルの長さが変数VLENで指定されていて実行時にな
らないと長さが決定しないために、長さが奇数か偶数か
識別し、奇数の場合にはベクトルを2分割して処理する
場合に出る半端の1要素の処理をスカラ演算で処理する
ためのプログラムである。
こ\で、(d)のプログラムを見れば明らかなように、
ベクトル長が奇数であると、先ず1要素に関してスカラ
プロセッサによってスカラ演算が行われ、その後ラベル
999からのベクトル演算が実行される。即ち、スカラ
プロセッサとベクトルプロセッサと少なくとも2台のプ
ロセンサの演算機能があるにも関わらず、一方づつの演
算実行が完全に直列に行われてしまい、その結果処理時
間を長くするという問題がある。
本発明は、ベクトル演算の一部をスカラ演算乙こ変換す
る場合に、ベクトル演算と並列に実行可能にして、目的
プログラムの実行効率を改善するベクトル演算列分割処
理方式を目的とする。
〔課題を解決するための手段] 第1図は、本発明の構成を示すブロック図である。
図はベクトル演算列分割処理方式であって、スカラ演算
決定部10と、演算列分割処理部11とを有し、スカラ
演算決定部1oは、ベクトル化中間テキスト8のプログ
ラムの第1のベクトル演算列で処理スるベクトルについ
て、スカラ演算の対象に変換すべき要素数を所定の条件
によって決定し、演算列分割処理部11は、第1のベク
トル演算列を分割して、第2のベクトル演算列により、
該要素数で定まる所定の要素を除く残りの要素からなる
該ベクトルについて処理し、スカラ演算列を、該所定の
要素についての演算を、第2のベクトル演算列と並列に
処理するように配置した最適化中間テキスト12を生成
する。
〔作 用〕
以上の処理方式により、ベクトル演算列で処理するベク
トルの一部の処理をスカラ演算に置き換えて、ヘクトル
演算と並列処理化することが可能になり、ヘクトル演算
の実行を高速化できる。
〔実施例〕
第1図において、スカラ演算決定部10は従来のベクト
ル化処理部4の出力するベクトル化中間テキスト8を入
力として、最適化処理対象のループについて以下のよう
にベクトル演算列のベクトルからスカラ演算化する要素
数を決定し、そのベクトル演算列を演算列分割処理部1
1に渡し、分割処理を実行して最適化中間テキスト12
を生威し、これを従来と同様にオブジェクト生成部6が
目的プログラムに変換するものとする。
第2図はスカラ演算決定部10及び演算列分割処理部1
1の処理の流れの一例を示す図であり、ベクトル演算列
を展開数を2として展開する場合として、処理ステップ
21で演算対象のベクトルのベクトル長が定数で指定さ
れているか変数か識別し、ベクトル長が定数の場合には
処理ステップ22で例えばベクトル長と演算種別等から
決定するように設けるテーブルを索引して、スカラ演算
に分離する要素数を決定する。ベクトル長が変数で指定
されている場合には、この要素数は1に固定され、後述
のように処理ステップ25の処理に進む。
ベクトル長定数の場合は、次に処理ステップ23で被演
算ベクトルからスカラ処理化要素を除いたベクトルを処
理するようにしたベクトル演算列を展開してベクトル演
算列を生成し、処理ステ・ンブ24でベクトルから除い
た要素のスカラ演算列を生成して、ベクトル演算列の例
えば最後のベクトル算術演算命令の直後に挿入する。
又、ベクトル長が変数の時はスカラ演算化の要素数を1
に固定するので、処理ステ・ンブ21から直ちに処理ス
テップ25に進んでベクトル長の奇偶判定処理を生威し
、その結果で処理を分けるようにして、処理ステップ2
6でベクトル長が偶数の場合について、元のベクトル演
算列をそのま穎展開したベクトル演算列を生威し、次に
処理ステ・ンブ27でベクトル長が奇数の場合について
、元のベクトル演算列から1要素の演算を除くようにし
て展開したベクトル演算列を生威し、処理ステ・ンブ2
8で除いた1要素のスカラ演算列を生成して、奇数ベク
トル長の場合のベクトル演算列の例えば最後のベクトル
算術演算命令の直後に挿入する。
第4図(e)は、前記の第4図(a)の原始プログラム
から本発明によって(d)に代えて生成される中間テキ
ストの例を示す。ラベル999より前がベクトル長VL
ENが偶数の場合のベクトル演算列であり、ラベル99
9以下にVLENが奇数の場合のベクトル演算列であり
、その最後のベクトル演算命令VAの直後に挿入されて
いる3行のスカラ演算が1要素についての演算を処理す
る。このようなシーケンスのプログラムにすることによ
り、ベクトルプロセッサでベクトル演算命令VAが開始
されると、スカラプロセッサに制御が渡ってロード命令
りからのプログラムが並行して実行され、ベクトル長が
長ければスカラプロセッサにおける3ステツプの命令実
行時間は、ベクトル命令VAの実行時間の陰に完全に隠
れてしまう。
〔発明の効果〕
以上の説明から明らかなように本発明によれば、計算機
におけるベクトル化目的プログラムを生成するコンパイ
ラの処理において、ベクトル演算の一部をスカラ演算に
変換する場合に、ベクトル演算と並列に実行可能にして
、目的プログラムの実行効率を改善するという著しい効
果がある。
【図面の簡単な説明】
第1図は本発明の構成を示すブロック図、第2図は本発
明の処理の流れ図、 第3図は従来の構成例を示すブロック図、第4図はプロ
グラム例の説明図 である。 図において、 1はコンパイラ、    2は原始プログラム、3はプ
ログラム解析部、4はベクトル化処理部、5は最適化処
理部、  6はオブジェクト生成部、7は目的プログラ
ム、 8はベクトル化中間テキスト、 9.12は最適化中間テキスト、 10はスカラ演算決定部、11は演算列分割処理部、2
1 =28は処理ステフプ 従来の構成例を示すブロック図 第3図 プログラム例の説明図 第 4 図(その1) 本発明の構成を示すブロック図 第1図 本発明の処理の流れ図 第2図 プログラム例の説明図 第 4 図(その2)

Claims (1)

  1. 【特許請求の範囲】 スカラ演算決定部(10)と、演算列分割処理部(11
    )とを有し、 該スカラ演算決定部(10)は、プログラムの第1のベ
    クトル演算列(8)で処理するベクトルについて、スカ
    ラ演算の対象に変換すべき要素数を所定の条件によって
    決定し、 該演算列分割処理部(11)は、第1のベクトル演算列
    を分割して、 第2のベクトル演算列により、該要素数で定まる所定の
    要素を除く残りの要素からなる該ベクトルについて処理
    し、 スカラ演算列を、該所定の要素についての演算を、第2
    のベクトル演算列と並列に処理するように配置すること
    を特徴とするベクトル演算列分割処理方式。
JP1213501A 1989-08-18 1989-08-18 コンパイル処理装置 Expired - Lifetime JP2748582B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP1213501A JP2748582B2 (ja) 1989-08-18 1989-08-18 コンパイル処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP1213501A JP2748582B2 (ja) 1989-08-18 1989-08-18 コンパイル処理装置

Publications (2)

Publication Number Publication Date
JPH0377141A true JPH0377141A (ja) 1991-04-02
JP2748582B2 JP2748582B2 (ja) 1998-05-06

Family

ID=16640243

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1213501A Expired - Lifetime JP2748582B2 (ja) 1989-08-18 1989-08-18 コンパイル処理装置

Country Status (1)

Country Link
JP (1) JP2748582B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR200203605Y1 (ko) * 2000-06-12 2000-11-15 이동일 라멜라 분리기와 활성탄소섬유를 이용한 악취물질 제거장치

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62206668A (ja) * 1986-03-07 1987-09-11 Hitachi Ltd 目的プログラムの並列化処理方式
JPS6336337A (ja) * 1986-07-30 1988-02-17 Nec Corp スカラ/ベクトル命令の融合スケジユ−リング処理方式

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62206668A (ja) * 1986-03-07 1987-09-11 Hitachi Ltd 目的プログラムの並列化処理方式
JPS6336337A (ja) * 1986-07-30 1988-02-17 Nec Corp スカラ/ベクトル命令の融合スケジユ−リング処理方式

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR200203605Y1 (ko) * 2000-06-12 2000-11-15 이동일 라멜라 분리기와 활성탄소섬유를 이용한 악취물질 제거장치

Also Published As

Publication number Publication date
JP2748582B2 (ja) 1998-05-06

Similar Documents

Publication Publication Date Title
JP4077252B2 (ja) コンパイラプログラムおよびコンパイル処理方法
JP3032031B2 (ja) ループ最適化方法及び装置
US5522074A (en) Vectorization system for vectorizing loop containing condition induction variables
JPH0377141A (ja) コンパイル処理装置
JP2008523523A (ja) プログラム内のループ用のコンパイル方法、コンパイル装置およびコンピュータシステム
JPS6297031A (ja) 仮数部のビツト数整合方式
JPH08115220A (ja) ループ最適化方法
JPH04307624A (ja) ループ最適化方法及び装置
JPH0367363A (ja) ベクトル演算列アンローリング処理方式
JPH0241562A (ja) ベクトル演算列分割処理方式
JP2564904B2 (ja) プログラム最適化処理方法
JPH03110670A (ja) ベクトル計算機
JP4327533B2 (ja) 演算処理プログラム、演算処理方法、および演算処理装置
JPS63138427A (ja) 配列に対する命令のスケジユ−リング処理方式
JPH0573607A (ja) ベクトル命令生成処理方法
JPS61216085A (ja) ベクトル処理プログラム生成方式
JPH04233037A (ja) インライン展開処理装置
JPH0659905A (ja) コンパイラの並列化処理方式
JPH04343140A (ja) コンパイラの最適化処理方法
JPH04308937A (ja) コード生成方法
JPH02163833A (ja) プログラム繰り返し構造のブロック分割方法並びに同期処理位置決定方法及びプログラム変換装置
JPS62267831A (ja) プログラミング言語における組込み関数の演算制御方式
JPH0695887A (ja) コンパイラ装置
JPS6358574A (ja) ベクトル化処理方式
JPH0377142A (ja) ループ最適化処理方式

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080220

Year of fee payment: 10

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090220

Year of fee payment: 11

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090220

Year of fee payment: 11

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100220

Year of fee payment: 12

EXPY Cancellation because of completion of term
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100220

Year of fee payment: 12