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

コンパイル処理装置

Info

Publication number
JP2748582B2
JP2748582B2 JP1213501A JP21350189A JP2748582B2 JP 2748582 B2 JP2748582 B2 JP 2748582B2 JP 1213501 A JP1213501 A JP 1213501A JP 21350189 A JP21350189 A JP 21350189A JP 2748582 B2 JP2748582 B2 JP 2748582B2
Authority
JP
Japan
Prior art keywords
vector
scalar
program
operation sequence
processing
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.)
Expired - Lifetime
Application number
JP1213501A
Other languages
English (en)
Other versions
JPH0377141A (ja
Inventor
正樹 青木
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)

Description

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

Claims (1)

    (57)【特許請求の範囲】
  1. 【請求項1】ベクトル演算とスカラ演算の並列処理を行
    うベクトルプロセッサの最適化目的プログラムを生成す
    るコンパイル処理装置に於いて、 ソースプログラムの第一のベクトル演算列の要素の中か
    ら所定の条件に従ってスカラ演算の対象に変換する要素
    数を決定するスカラ演算決定部と、 前記第一のベクトル演算列を、スカラ演算決定部により
    決定されたスカラ演算列と、残りの要素から成る第二の
    ベクトル演算列に分割する演算列分割処理部と、 を備えたことを特徴とするコンパイル処理装置。
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 JPH0377141A (ja) 1991-04-02
JP2748582B2 true 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)

Families Citing this family (1)

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

Family Cites Families (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 スカラ/ベクトル命令の融合スケジユ−リング処理方式

Also Published As

Publication number Publication date
JPH0377141A (ja) 1991-04-02

Similar Documents

Publication Publication Date Title
JP4077252B2 (ja) コンパイラプログラムおよびコンパイル処理方法
JP3032031B2 (ja) ループ最適化方法及び装置
US5522074A (en) Vectorization system for vectorizing loop containing condition induction variables
JP2748582B2 (ja) コンパイル処理装置
JP3032030B2 (ja) ループ最適化方法及び装置
JP2956591B2 (ja) ループ外への条件付き飛び出しがあるループの並列化方法及び装置
JPH09160784A (ja) 並列化コンパイル方式
JPS63155264A (ja) ベクトル計算機用言語チユ−ニング処理方式
JP4327533B2 (ja) 演算処理プログラム、演算処理方法、および演算処理装置
JPH08221276A (ja) コンパイラ
JPS6297031A (ja) 仮数部のビツト数整合方式
JP2564904B2 (ja) プログラム最適化処理方法
JP3412323B2 (ja) ベクトル化処理装置
JPS62169272A (ja) ベクトル演算列ル−プアンロ−リング処理方式
JP2638278B2 (ja) コンパイル処理方式
JP3658771B2 (ja) コンパイラ装置
JPH04308937A (ja) コード生成方法
JPH0695887A (ja) コンパイラ装置
JPH05324345A (ja) ソースプログラム中のループ文の並列化方法
JPH09265402A (ja) プログラム変換支援方法および装置
JPH0573607A (ja) ベクトル命令生成処理方法
JPH0439703B2 (ja)
JPH08171554A (ja) ベクトル演算の最適化コンパイラ
JPH05313950A (ja) プログラム効率評価装置
JPH04233037A (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