JPH0440742B2 - - Google Patents

Info

Publication number
JPH0440742B2
JPH0440742B2 JP61302371A JP30237186A JPH0440742B2 JP H0440742 B2 JPH0440742 B2 JP H0440742B2 JP 61302371 A JP61302371 A JP 61302371A JP 30237186 A JP30237186 A JP 30237186A JP H0440742 B2 JPH0440742 B2 JP H0440742B2
Authority
JP
Japan
Prior art keywords
vector
vectorization
cost
source program
tuning
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
JP61302371A
Other languages
English (en)
Other versions
JPS63155264A (ja
Inventor
Toshihiro Hirabayashi
Shinya Miura
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 JP61302371A priority Critical patent/JPS63155264A/ja
Publication of JPS63155264A publication Critical patent/JPS63155264A/ja
Publication of JPH0440742B2 publication Critical patent/JPH0440742B2/ja
Granted legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8053Vector processors

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Complex Calculations (AREA)
  • Devices For Executing Special Programs (AREA)

Description

【発明の詳細な説明】 〔概要〕 コンパイラによつてベクトル演算命令が生成さ
れる原始プログラムについて、予めそのプログラ
ムの実行解析情報に基づき、ベクトル化により実
行性能が低下するループを自動検出し、そのルー
プのベクトル化を抑止する最適化制御行を組み入
れる手段を設けることにより、ベクトル化による
性能低下要因を除去し、FORTRANプログラム
等の原始プログラムをベクトル計算機向けに最適
チユーニングする。
〔産業上の利用分野〕
本発明は、FORTRANプログラム等の原始プ
ログラムをベクトル計算機向けに最適チユーニン
グするベクトル計算機用言語チユーニング処理方
式に関するものである。
データ処理装置による化学技術計算等では、大
量のデータを高速に演算するベクトル計算機が用
いられている。例えばFORTRAN言語等により
記述された原始(ソース)プログラムを、コンパ
イラによつて自動ベクトル化することが行われて
いるが、その目的(ブプジエクト)プログラムの
実行性能のに関する最適化が望まれる。
〔従来の技術〕
従来、FORTRANプログラム等の最適化を促
進するために、プログラム中の各文について、実
行回数や実行コスト等の実行解析情報を出力する
実行解析ツールが用いられている。また、ベクト
ル演算命令を生成可能であるコンパイラでは、自
動ベクトル化およびベクトル化された目的プログ
ラムの最適化を促進するため各種オプテイマイズ
処理が行われている。
しかし、ベクトル化により性能低下を招く要因
を検出し、それを除去する手段は、従来ないた
め、その最適化を行う場合には、人間が実行性能
を分析して、コンパイラに対し、いちいち最適化
を指示する必要があつた。
〔発明が解決しようとする問題点〕
例えばFORTRAN言語等により記述された原
始プログラムをコンパイルして、ベクトル計算機
用の目的プログラムを生成する場合、その性能を
向上させるためには、より多くのDOループを自
動ベクトル化する必要があると考えられる。しか
し、例えば短いベクトル長の演算の場合には、ベ
クトル命令によつて処理するよりも、通常のスカ
ラ命令によつて処理したほうが実行速度が上がる
場合がある。
コンパイラにおける自動ベクトル化において、
ベクトルコストとスカラコストとの比較ができれ
ば、コンパイラ内における最適化が可能である
が、例えば(a)DOループのループ回数が変数であ
る場合に、ベクトル長が不明であること、(b)動作
するベクトル計算機の機種によつてベクトルコス
トが変動することなどにより、コンパイラ内では
コスト比較ができない。
そのため従来、ベクトル化によつて、かえつて
部分的に性能低下を招くことがあるという問題が
あつた。
本発明は上記問題点の解決を図り、性能低下の
要因となる短ベクトル長の演算を認識し、自動的
に当該ループのベクトル化を抑止することによつ
て、性能低下の要因を除去する手段を提供するこ
とを目的としている。
〔問題点を解決するための手段〕
第1図は本発明の原理ブロツク図を示す。
第1図において、10は原始プログラムのベク
トル化に関する最適チユーニングを行う最適チユ
ーニング処理部、11は実行解析情報入力部、1
2はベクトルコストを分析するベクトルコスト分
析部、13は最適化制御行を生成しベクトル化の
抑止を指示する最適化制御行生成部、14は原始
プログラムを入力する原始プログラム入力部、1
5はチユーニングされた原始プログラムを出力す
るチユーニング原始プログラム出力部、16はチ
ユーニング対象プログラムに関する実行解析情
報、17はチユーニング対象となる原始プログラ
ム、18はチユーニングされたチユーニング原始
プログラムを表す。
実行解析情報入力部11は、実行解析ルーツの
出力である実行解析情報16を入力する。この実
行解析情報16は、実際のプログラムの走行また
は実行シミユレートによつて、各文毎の実行回数
等が出力されたものである。
ベクトルコスト分析部12は、実行解析情報入
力部11が入力した実行解析情報16に基づき、
ベクトル化対象となるループ範囲について、ベク
トルコストとスカラコストとを計算する。
最適化制御行生成部13は、ベクトルコストが
スカラコストよりも大きくなる場合に、ベクトル
化を抑止することをコンパイラに指示する最適化
制御行を生成する。そして、原始プログラム入力
部14によつて入力された原始プログラム17中
に、その最適化制御行を組み入れ、チユーニング
原始プログラム出力部15を介して、チユーニン
グ原始プログラム18を出力する。
〔作用〕
本発明によれば、ベクトルコスト分析部12に
より、実行解析情報に基づくコスト計算が行わ
れ、ベクトル化されることによつて低能低下を招
く要因が自動検出される。そして、最適化制御行
生成部13によつて、最適化制御行が原始プログ
ラム17中に組み入れられるので、コンパイル時
には、その最適化制御行で指定されたループにつ
いてのベクトル化が抑止されることになる。
従つて、コンパイラでは、ベクトル化により実
際に性能が向上する部分だけ、ベクトル演算命令
の生成を行い、ベクトル化によつて性能が低下す
る部分については、通常のスカラ演算命令の生成
を行うので、実行性能が向上することになる。
〔実施例〕
第2図は本発明が適用されるシステムの例、第
3図は本発明の一実施例に係るベクトルコスト分
析を説明するための図、第4図は本発明の一実施
例に係る最適化制御行の生成を説明するための
図、第5図は本発明の一実施例処理説明図、第6
図は最適化による性能比較説明図を示す。
本発明は、例えば第2図に示すような
FORTRANのコンパイルを行う処理システムに
適用される。
第2図において、第1図と同符号のものは第1
図に示すものに対応し、20はCPUおよびメモ
リなどからなる処理装置、21はFORTRANプ
ログラムの実行解析ツールであるFORTRAN実
行解析部、22はFORTRAN言語により記述さ
れたプログラムを計算機の機械語命令等からなる
目的プログラムに翻訳するFORTRANコンパイ
ラ、23は最適化制御行の有無を判定する最適化
制御行判定部、24はFORTRAN原始プログラ
ム、25はチユーニングFORTRAN原始プログ
ラム、26は目的プログラムを表す。
FROTRAN実行解析部21は、例えば実行解
析対象となるFORTRAN原始プログラム24中
における制御移行に関連する部分に、実行回数を
カウントする命令を埋め込むことなどにより、ル
ープの繰り返し回数や1F文の真率等の情報を含
む実行解析情報16を出力する。なお、この
FORTRAN実行解析部21は、従来からいわゆ
るFORTRANチユーニングルーツとして用いら
れているものを利用できる。
最適チユーニング処理部10は、ベクトルコス
ト分析部12および最適化制御行生成部13によ
つて、実行解析情報16に基づくコスト計算を行
い、チユーニング対象となるFORTRAN原始プ
ログラム24中に、最適化制御行を組み込んだチ
ユーニングFORTRAN原始プログラム25を出
力する。
FORTRANコンパイラ22は、チユーニング
FORTRAN原始プログラム25を機械語に翻訳
するにあたつて、最適化制御行判定部23によ
り、ベクトル化を抑止する最適化制御行を検出す
ると、その指定範囲についてのベクトル化を抑止
する。
次に、第3図に従つて、ベクトルコスト分析部
12によるベクトルコストの分析例について説明
する。
チユーニング対象となるFORTRAN原始プロ
グラムの各文のスカラコストがSiで、その実行回
数が第3図に示すようになつていたとする。例え
ば、ループ内の文1の実行回数は、ループ回数が
100回であり、このDOループが10回実行される
ので、1000回となる。この文1のループ当たりの
平均実行回数ex1は、100回となる。また、この例
における1F文の真率、即ち、1F条件が成立する
確率が5%であるとすると、文の実行回数は50
回であり、そのループ当たりの平均実行回数ex1
は5回となる。
このDOループについてベクトル化する場合、
ベクトル長はループ回数に対応し、例えは1F文
に続く部分については、いわゆるマスク演算によ
つて処理される。
従つて、ベクトルコストとスカラコストとの比
較を行う場合には、マスク演算によるベクトル長
が正しく反映されるように、スカラコストを補正
することが必要となる。
以上の考慮により、DOループのベクトルコス
トV−COSTは、次の式で求められる。
V−COST= 〓i Si*exL/exi*αL αL=f(exL,cpu) ここで、Siは各文のスカラコスト、 exiは各文のループ当たりの平均実行回数、 exLはループ先頭の文のベクトルベクトル計算
機性能、 CPUはαLはexLおよびcpuにより求まるベクト
ル対スカラ性能比率である。
このαLは、予めベクトル計算機による標準プロ
グラムについての実測値に基づいて定められ、例
えばテーブル化されて保持される。
こうして求められたベクトルコストVと、ルー
プ内のスラスコストSiの和との比較により、性能
比較が行われる。
スカラコストが小さい場合には、第4図に示す
ように、最適化制御行の生成が行われる。第4図
において、30は最適化制御行、31はベクトル
化抑止範囲を表す。
即ち、FORTRAN原始プログラム24のDO文
の前に、例えば「*VOCL LOOP,SCALAR」
という最適化制御行30が組み入れられ、チユー
ニングFORTRAN原始プログラム25が生成さ
れる。コンパイラでは、この最適化制御行30を
検出すると、これに続くDOループをベクトル化
抑止範囲31として認識し、この部分については
ベクトル演算命令の出力を抑止する。
第5図は、本発明の主要部分についての処理例
を示している。以下、第5図に示す処理〜に
従つて説明する。
チユーニング対象の原始プログラムについて
ベクトル化可能なDOループを検出する。
DOループを検出したならば、実行解析情報
に基づきループ内のスカラコストの和S−
COSTを計算する。
次に、第3図で説明したDOループのベクト
ルコストV−COSTを、実行解析情報と所定の
ベクトル対スカラ性能比率αLとに基づき計算す
る。
S−COSTとV−COSTとの大小を比較し、
V−COSTがS−COSTより大きければ、次の
処理を実行する。なお、等しい場合には、ど
ちらでもよい。
第4図に示すようにベクトル化抑止の最適化
制御行を生成し、原始プログラム中に組み入れ
る。
第6図は、本発明の効果を説明するための性能
比較を示す図である。第6図において、L1はス
カラループ、L2はベクトル化によつて性能が低
下するループ、L3はベクトル化によつて性能が
向上するループを表している。
今、プログラムのベクトル化率が95%であると
仮定する。また、ベクトル化による性能向上比が
10倍、ベクトル化による性能低下比が5倍、低
下部分(L2の部分)がベクトル化可能部分の10
%であるとする。第6図イに示すオリジナルの実
行時間、即ち、すべてスカラの演算命令により処
理した場合の実行時間を100とすると、第6図ロ
に示すベクトル化による実行時間T1は、次のよ
うになる。
T1=95×0・9/10+95×0.1×5+5=61.05 この実行時間T1は、従来方式によるベクトル
化の性能と考えてよい。
一方、本発明による最適チユーニングを行え
ば、その実行時間T2は、第6図ハに示すように
なり、次のようになる。
T2=95×0.9/10+95×0.1+5=23.05 対象性能比およびオリジナル比は、それぞれ次
のようになる。
相対性能比=T1/T2=61.05/23.05=2.64(倍) オリジナル比=100/23.05=4.33(倍) 〔発明の効果〕 以上説明したように、本発明によれば、ベクト
ル化による性能低下要因が除去されるので、ベク
トル計算機向けの最適チユーニングが可能にな
る。
【図面の簡単な説明】
第1図は本発明の原理ブロツク図、第2図は本
発明が適用されるシステムの例、第3図は本発明
の一実施例に係るベクトルコスト分析を説明する
ための図、第4図は本発明の一実施例に係る最適
化制御行の生成を説明するための図、第5図は本
発明の一実施例処理説明図、第6図は最適化によ
る性能比較説明図を示す。 図中、10は最適チユーニング処理部、11は
実行解析情報入力部、12はベクトルコスト分析
部、13は最適化制御行生成部、14は原始プロ
グラム入力部、15はチユーニング原始プログラ
ム出力部を表す。

Claims (1)

  1. 【特許請求の範囲】 1 ベクトル計算機を持つ処理装置上で動作させ
    るプログラムの原始プログラムをチユーニングす
    るベクトル計算機用言語チユーニング処理方式で
    あつて、 チユーニングするプログラムの実行解析情報に
    基づき、ベクトル化対象となるループ範囲につい
    て、ベクトル化による実行性能に関連するベクト
    ルコストを分析するベクトルコスト分析手段12
    と、 ベクトルコストがベクトル化しない場合におけ
    るスカラコストより大きい場合に、チユーニング
    対象原始プログラム中に、上記ループ範囲につい
    てベクトル化を抑止することを指示する最適化制
    御行を組み入れる最適化制御行生成手段13とを
    備えたことを特徴とするベクトル計算機用言語チ
    ユーニング処理方式。
JP61302371A 1986-12-18 1986-12-18 ベクトル計算機用言語チユ−ニング処理方式 Granted JPS63155264A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP61302371A JPS63155264A (ja) 1986-12-18 1986-12-18 ベクトル計算機用言語チユ−ニング処理方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP61302371A JPS63155264A (ja) 1986-12-18 1986-12-18 ベクトル計算機用言語チユ−ニング処理方式

Publications (2)

Publication Number Publication Date
JPS63155264A JPS63155264A (ja) 1988-06-28
JPH0440742B2 true JPH0440742B2 (ja) 1992-07-06

Family

ID=17908093

Family Applications (1)

Application Number Title Priority Date Filing Date
JP61302371A Granted JPS63155264A (ja) 1986-12-18 1986-12-18 ベクトル計算機用言語チユ−ニング処理方式

Country Status (1)

Country Link
JP (1) JPS63155264A (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3847672B2 (ja) 2002-07-03 2006-11-22 松下電器産業株式会社 コンパイラ装置及びコンパイル方法
JP4783612B2 (ja) * 2005-10-12 2011-09-28 富士通セミコンダクター株式会社 拡張言語仕様指定方法、プログラム開発方法、プログラム及びコンピュータ読み取り可能な記憶媒体
US8495607B2 (en) * 2010-03-01 2013-07-23 International Business Machines Corporation Performing aggressive code optimization with an ability to rollback changes made by the aggressive optimizations
US10824407B2 (en) 2016-01-04 2020-11-03 Nec Corporation Program conversion device, program conversion method, and non-transitory recording medium having program conversion program recorded therein

Also Published As

Publication number Publication date
JPS63155264A (ja) 1988-06-28

Similar Documents

Publication Publication Date Title
US6308250B1 (en) Method and apparatus for processing a set of data values with plural processing units mask bits generated by other processing units
JP3317825B2 (ja) ループ最適化翻訳処理方法
US4821181A (en) Method for converting a source program of high level language statement into an object program for a vector processor
US5659754A (en) Method and apparatus for an improved optimizing compiler
JP2921190B2 (ja) 並列実行方式
US20040003381A1 (en) Compiler program and compilation processing method
JP2500079B2 (ja) プログラムの最適化方法及びコンパイラ・システム
US20040015918A1 (en) Program optimization method and compiler using the program optimization method
JP3053092B2 (ja) 並列化コンパイル方法
US5522074A (en) Vectorization system for vectorizing loop containing condition induction variables
JPH0440742B2 (ja)
EP1164477A2 (en) A loop optimization method and a compiler
US7712091B2 (en) Method for predicate promotion in a software loop
Midkiff et al. A Comparison of Four Synchronization Optimization Techniques.
CN118092931A (zh) 基于指导语句的函数向量化方法及系统
US5437035A (en) Method and apparatus for compiling a program incending a do-statement
JP3196625B2 (ja) 並列化コンパイル方式
JPS62204374A (ja) 2倍演算最適化処理方式
JPH054712B2 (ja)
JP3034582B2 (ja) コンパイル処理方式
JP3412323B2 (ja) ベクトル化処理装置
JPH0512752B2 (ja)
JPH08263298A (ja) コンパイラ装置
JPH0241562A (ja) ベクトル演算列分割処理方式
JPH04252336A (ja) プログラム最適化処理装置

Legal Events

Date Code Title Description
EXPY Cancellation because of completion of term