JPS63155264A - ベクトル計算機用言語チユ−ニング処理方式 - Google Patents

ベクトル計算機用言語チユ−ニング処理方式

Info

Publication number
JPS63155264A
JPS63155264A JP61302371A JP30237186A JPS63155264A JP S63155264 A JPS63155264 A JP S63155264A JP 61302371 A JP61302371 A JP 61302371A JP 30237186 A JP30237186 A JP 30237186A JP S63155264 A JPS63155264 A JP S63155264A
Authority
JP
Japan
Prior art keywords
vector
execution
source program
cost
loop
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
JP61302371A
Other languages
English (en)
Other versions
JPH0440742B2 (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)

Abstract

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

Description

【発明の詳細な説明】 〔概要〕 コンパイラによってベクトル演算命令が性成される原始
プログラムについて、予めそのプログラムの実行解析情
報に基づき5ベクトル化により実行性能が低下するルー
プを自動検出し、そのループのベクトル化を抑止する最
適化制御行を組み入れる手段を設けることにより、ベク
トル化による性能低下要因を除去し、FORTRANプ
ログラム等の原始プログラムをベクトル計算機向けに最
適チューニングする。
〔産業上の利用分野〕
本発明は、FORTRANプログラム等の原始プログラ
ムをベクトル計yt、a向けに最適チューニングするベ
クトル計算機用言語チューニング処理方式に関するもの
である。
データ処理装置による科学技術計算等では、大量のデー
タを高速に演算するベクトル計算機が用いられている。
例えばF ORT ’RA N言語等により記述された
原始(ソース)プログラムを、コンパイラによって自動
ベクトル化することが行われているが、その口約(オブ
ジェクト)プログラムの実行性能に関する最適化が望ま
れる。
〔従来の技術〕
従来、FORTRANプログラム等の最適化を促進する
ために、プログラム中の各文について。
実行回数や実行コスト等の実行解析情報を出力する実行
解析′ツールが用いられている。また、ベクトル演算命
令を生成可能であるコンパイラでは。
自動ベクトル化およびベクトル化された目的プログラム
の最適化を促進するため各種オプティマイズ処理が行わ
れている。
しかし、ベクトル化により性能低下を招く要因を検出し
て、それを除去する手段は、従来ないため、その最適化
を行う場合には2人間が実行性能を分析して、コンパイ
ラに対し、いちいち最適化を指示する必要があった。
〔発明が解決しようとする問題点〕 例えばFORTRAN言語TR上り記述された原始プロ
グラムをコンパイルして、ベクトル計算機用の目的プロ
グラムを生成する場合、その性能を向上させるためには
、より多くのDOループを自動ベクトル化する必要があ
ると考えられる。しかし5例えば短いベクトル長の演算
の場合には。
ベクトル命令によって処理するよりも1通常のスカラ命
令によって処理したほうが実行速度が上がる場合がある
コンパイラにおける自動ベクトル化において。
ベクトルコストとスカラコストとの比較ができれば、コ
ンパイラ内における最適化が可能であるが。
例えばfal D Oループのループ回数が変数である
場合に、ベクトル長が不明であること、(b)動作する
ベクトル計算機の機種によってベクトルコストが変動す
ることなどにより、コンパイラ内ではコスト比較ができ
ない。
そのため従来、ベクトル化によって、かえって部分的に
性能低下を招(ことがあるという問題があった一 本発明は上記問題点の解決を図り、性能低下の要因とな
る短いベクトル長の演算を認識し、自動的に該当ループ
のベクトル化を抑止することによって、性能低下の要因
を除去する手段を提供することを目的としている。
〔問題点を解決するための手段〕
第1図は本発明の原理ブロック図を示す。
第1図において、10は原始プログラムのベクトル化に
関する最適チューニングを行う最適チューニング処理部
、11は実行解析情報入力部、12はベクトルコストを
分析するベクトルコスト分析部、13は最適化制御杆を
生成しベクトル化の抑止を指示する最適化制御行生成部
、14ば原始プログラムを入力する原始プログラム入力
部、15はチューニングされた原始プログラムを出力す
るチューニング原始プログラム出力部、16はチューニ
ング対象プログラムに関する実行解析情報。
17はチューニング対象となる原始プログラム。
18はチューニングされたチューニング原始プログラム
を表す。
実行解析情報人力部Ifは、実行解析ツールの出力であ
る実行解析情報16を入力する。この実行解析情報16
は、実際のプログラムの走行または実行シミュレートに
よって、各文毎の実行回数等が出力されたものである。
ベクトルコスト分析部12は、実行解析情報入力部11
が入力した実行解析情報16に基づき。
ベクトル化対象となるループ範囲について、ベクトルコ
ストとスカラコストとを計算する。
最適化制御行生成部13は、ベクトルコストがスカラコ
ストよりも大きくなる場合に、ベクトル化を抑止するこ
とをコンパイラに指示する最適化制御杆を生成する。そ
して、原始プログラム入力部14によって入力された原
始プログラム17中に、その最適化制御杆を組み入れ、
チューニング原始プログラム出力部15を介して、チュ
ーニング原始プログラム18を出力する。
〔作用〕
本発明によれば、ベクトルコスト分析部12により、実
行解析情報に基づくコスト計算が行われ。
ベクトル化されることによって性能低下を招く要因が自
動検出される。そして、最適化制御行判定部13によっ
て、!ll適化制御炉原始プログラム17中に組み入れ
られるので、コンパイル時には。
その最適化制御杆で指定されたループについてのベクト
ル化が抑止されることになる。
従って、コンパイラでは、ベクトル化により実際に性能
が向上する部分だけ、ベクトル演算命令の生成を行い、
ベクトル化によって性能が低下する部分については2通
常のスカラ演算命令の生成を行うので、実行性能が向上
することになる。
〔実施例〕
第2図は本発明が適用されるシステムの例、第3図は本
発明の一実施例に係るベクトルコスト分析を説明するた
めの図、第4図は本発明の一実施例に係る最適化制御杆
の生成を説明するための図。
第5図は本発明の一実施例処理説明図、第6図は最適化
による性能比較説・引回を示す。
本発明は1例えば第2図に示すようなFORTRANの
コンパイルを行う処理システムに適用される。
第2図において、第1図と同符号のものは第1図に示す
ものに対応し、20はCPUおよびメモリなどからなる
処理装置、21はFORTRANプログラムの実行解析
ツールであるFORTRAN実行解析部、22はFOR
TRAN言語により記述されたプログラムを計算機の機
械語命令等からなる目的プログラムに翻訳するFORT
RANコンパイラ、23は最適化制御杆の有無を判定す
る最適化制御行判定部、24はFORTRAN原始プロ
グラム、25はチューニングFORTRAN原始プログ
ラム、26は目的プログラムを表す。
FORTRAN実行解析部2実行解析部外1行解析対象
となるFORTRAN原始プログラム24中における制
御移行に関連する部分に、実行回数をカウントする命令
を埋め込むことなどにより。
ル・−ブの繰り返し回数やIF文の真率等の情報を含む
実行解析情報16を出力する。なお、このFORTRA
N実行解析部2実行解析部外1いわゆるFORTRAN
チ一−ニングツールとして用いられているものを利用で
きる。
最適チューニング処理部10は、ベクトルコスト分析部
12および最適他制?n行生成部13によって、実行解
析情報16に基づくコスト計算を行い、チューニング対
象となるFORTRAN原始プログラム24中に、最適
化制御杆を組み込んだチューニングFORTRAN原始
プログラム25を出力する。
FORTRANコンパイラ22は、チューニングFOR
TRAN原始プログラム25を機械語に翻訳するにあた
って、最適化制御行判定部23により、ベクトル化を抑
止する最適化制御杆を検出すると、その指定範囲につい
てのベクトル化を抑止する。
次に、第3図に従って、ベクトルコスト分析部12によ
るベクトルコストの分析例について説明する。
チューニング対象となるFORTRAN原始プログラム
の各文のスカラコストがStで、その実行回数が第3図
に示すようになっていたとする。
例えば、ループ内の文lの実行回数は、ループ回数が1
00回であり、このDoループが10回実行されるので
、1ooo回となる。この文lのループ当たりの平均実
行回数ex、は、100回となる。また、この例におけ
るIF文の真率、即ち。
IF条件が成立する確率が5%であるとすると。
文lの実行回数は50回であり;そのループ当たりの平
均実行回数ext は5回となる。
このDOループについてベクトル化する場合。
ベクトル長はループ回数に対応し1例えばIF文に続く
部分については、いわゆるマスク演算によって処理され
る。
従って、ベクトルコストとスカラコストとの比較を行う
場合には、マスク演算によるベクトル長が正しく反映さ
れるように、スカシコストを補正することが必要となる
以上の考慮により、DOループのベクトルコストV−C
O5Tは1次の弐で求められる。
、xL=  f  (ex、−、cpu)ここで、SL
は各文のスカシコスト。
eXiは各文のループ当たりの平均実行回数。
exLはループ先頭の文のベクトル長。
cpuはヘクトル計算機性能。
α、はexLおよびcpuにより求まるベクトル対スカ
ラ性能比率である。
このα、は、予めベクトル計算機による標準プログラム
についての実測値に基づいて定められ。
例えばテーブル化されて保持される。
こうして求められたベクトルコストVと、ループ内のス
カシコストS1の和との比較により、性能比較が行われ
る。
スカシコストが小さい場合には、第4図に示すように、
最適化側脚行の生成が行われる。第4図において、30
は最適化側脚行、31はベクトル化抑止範囲を表す。
即ち、FORTRAN原始プログラム24の00文の前
に1例えばr*VOcL  LOOP、5CALARJ
という最適化側脚行30が組み入れられ、チューニング
FORTRAN原始プログラム25が生成される。コン
パイラでは、この最適化側脚行30を検出すると、これ
に続くDOループをベクトル化抑止範囲31として認識
し、この部分についてはベクトル演算命令の出力を抑止
する。
第5図は9本発明の主要部分についての処理例を示して
いる。以下、第5図に示す処理■〜■に従って説明する
■ チューニング対象の原始プログラムについてベクト
ル化可能なりoループを検出する。
■ Doループを検出したならば、実行解析情報に基づ
きループ内のスカシコストの和S −CO5Tを計算す
る。
■ 次に、第3図で説明したDoループのベクトルコス
トV−CO5Tを、実行解析情報と所定のベクトル対ス
カラ性能比率αLとに基づき計算する。
■ 5−C03TとV−CO5Tとの大小を比較し、V
−CO3Tが5−CCISTより大きければ1次の処理
■を実行する。なお9等しい場合には、どちらでもよい
■ 第4図に示すようにベクトル化抑止の最適化側脚行
を生成し、原始プログラム中に組み入れる。
第6図は9本発明の詳細な説明するための性能比較を示
す図である。第6図において、LLはスカラルーブ、L
2はベクトル化によって性能が低下するループ、L3は
ベクトル化によって性能が向上するループを表している
今、プログラムのベクトル化率が95%であると仮定す
る。また、ベクトル化による性能向上比が10倍、ベク
トル化による性能低下比が5倍。
低下部分(L2の部分)かベクトル化可能部分の10%
であるとする。第6図(イ)に示すオリジナルの実行時
間、即ち・、すべてスカシの演算命令により処理した場
合の実行時間を100とすると。
第6図(ロ)に示すベクトル化による実行時間TIは9
次のようになる。
TI −95x O,9/10+ 95 x O,1x
5 +5−61.05 この実行時間TIは、従来方式によるベクトル化の性能
と考えてよい。
一方9本発明により最適チューニングを行えば。
その実行時間T2は、第6図(ハ)に示すうようになり
1次のようになる。
T 2−95 x O,9/IQ+ 95 x O,1
+ 5= 23.05 相対性能比およびオリジナル比は、それぞれ次のように
なる。
相対性能比=TI/T2−61.05/23.05−2
.64(倍)オリジナル比= 100/23.05 =
 4.33(倍)〔発明の効果〕 以上説明したように1本発明によれば、ベクトル化によ
る性能低下要因が除去されるので、ベクトル計算機向け
の最適チューニングが可能になる。
【図面の簡単な説明】
第1図は本発明の原理ブロック図、第2図は本発明が適
用されるシステムの例、第3図は本発明の一実施例に係
るベクトルコスト分析を説明するための図、第4図は本
発明の一実施例に係る最適化側脚行の生成を説明するた
めの図、第5図は本発明の一実施例処理説明図、第6図
は最適化による性能比較説明図を示す。 図中、10は最適チューニング処理部、11は実行解析
情報入力部、12はベクトルコスト分析部、13は最適
化制御行生成部、14は原始プログラム入力部、15は
チューニング原始プログラム出力部を表す。

Claims (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 true JPS63155264A (ja) 1988-06-28
JPH0440742B2 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)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007108940A (ja) * 2005-10-12 2007-04-26 Fujitsu Ltd 拡張言語仕様指定方法、プログラム開発方法、プログラム及びコンピュータ読み取り可能な記憶媒体
US7698696B2 (en) 2002-07-03 2010-04-13 Panasonic Corporation Compiler apparatus with flexible optimization
JP2013521572A (ja) * 2010-03-01 2013-06-10 インターナショナル・ビジネス・マシーンズ・コーポレーション アグレッシブ最適化によって施された変更をロールバック可能なアグレッシブ・コード最適化を実行する装置、方法及びコンピュータ・プログラム
WO2017119378A1 (ja) * 2016-01-04 2017-07-13 日本電気株式会社 プログラム変換装置、プログラム変換方法、プログラム変換プログラムが記録された記録媒体

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7698696B2 (en) 2002-07-03 2010-04-13 Panasonic Corporation Compiler apparatus with flexible optimization
US8418157B2 (en) 2002-07-03 2013-04-09 Panasonic Corporation Compiler apparatus with flexible optimization
JP2007108940A (ja) * 2005-10-12 2007-04-26 Fujitsu Ltd 拡張言語仕様指定方法、プログラム開発方法、プログラム及びコンピュータ読み取り可能な記憶媒体
JP2013521572A (ja) * 2010-03-01 2013-06-10 インターナショナル・ビジネス・マシーンズ・コーポレーション アグレッシブ最適化によって施された変更をロールバック可能なアグレッシブ・コード最適化を実行する装置、方法及びコンピュータ・プログラム
WO2017119378A1 (ja) * 2016-01-04 2017-07-13 日本電気株式会社 プログラム変換装置、プログラム変換方法、プログラム変換プログラムが記録された記録媒体
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
JPH0440742B2 (ja) 1992-07-06

Similar Documents

Publication Publication Date Title
JP3317825B2 (ja) ループ最適化翻訳処理方法
US20040003381A1 (en) Compiler program and compilation processing method
US20010047511A1 (en) Method of reducing unnecessary barrier instructions
JP3053092B2 (ja) 並列化コンパイル方法
US5522074A (en) Vectorization system for vectorizing loop containing condition induction variables
JPS63155264A (ja) ベクトル計算機用言語チユ−ニング処理方式
US5437035A (en) Method and apparatus for compiling a program incending a do-statement
JPS62204374A (ja) 2倍演算最適化処理方式
JPH0795273B2 (ja) コンパイラにおける和計算の部分展開処理方式
JPH09160784A (ja) 並列化コンパイル方式
JPS6353646A (ja) 最適目的プログラム生成方式
JPH0512752B2 (ja)
JPH054712B2 (ja)
JPH0241562A (ja) ベクトル演算列分割処理方式
JP2674489B2 (ja) ベクトル化処理装置
JP4327533B2 (ja) 演算処理プログラム、演算処理方法、および演算処理装置
JP3034582B2 (ja) コンパイル処理方式
JPH11195011A (ja) 言語翻訳処理装置、言語翻訳処理方法、言語翻訳処理プログラムを記録した記録媒体
JP3367438B2 (ja) 条件実行処理装置
JP3018783B2 (ja) コンパイル方式
JPS6297031A (ja) 仮数部のビツト数整合方式
JPH08221276A (ja) コンパイラ
JPH0452987B2 (ja)
JPH01128136A (ja) コンパイル処理装置
JPH03116241A (ja) コンパイラ

Legal Events

Date Code Title Description
EXPY Cancellation because of completion of term