# 自動ベクトル化 ## 定義 自動ベクトル化は、コンパイラが利用者のソースを書き換えさせずに、最内側のループなどをベクトル命令へ変換する技法である。ベクトル計算機の性能はベクトル化率に強く依存するため、専用のベクトル言語や拡張言語に頼る方式と対比して、非専門家にも使える設計の鍵とされる。Cray-1 の CFT は標準の Fortran を無修正でベクトル化する最適化コンパイラとして製品に含まれた(Source: [[@1978__CACM__The CRAY-1 Computer System]])。日本の 3 社は、メインフレーム利用者を対象に、システム定義関数に頼らない完全な自動ベクトル化を普及の条件とみなし、IF 文つきループや漸化式、対話型のチューニングツールまで含めて整備した(Source: [[@1999__Parallel Computing__Development of supercomputers in Japan - Hardware and software]] §7)。 ## 未解決の問い - 自動ベクトル化の能力(イディオム認識、依存関係解析、IF 文つきループの処理)は、ベクトルパイプ本数やレジスタ構成の違うベンダー間で、実アプリケーションの持続性能にどこまで効くか。 ## 未編纂の観察 - [[@1999__Parallel Computing__Development of supercomputers in Japan - Hardware and software]] は、Nobayashi と Eoyang の解析を引いて、Livermore の 24 カーネルで日本のコンパイラ(特に Hitachi)が Cray・Alliant・Titan・Convex より僅かに上回り、Argonne のテストスイートでは 3 社ともイディオム認識とベクトル化が最良で、Cray の CFT77 は依存関係解析と言語の完全性が最強だったとする。ベクトル化能力と解析能力で長所が分かれる。 - 同論文は、IF 文つき DO ループの自動ベクトル化を Hitachi の M-280H IAP のコンパイラが世界で初めて支えたとする。Cray-1 の CFT は、分岐を含むループを当面ベクトル化しないと述べていた([[@1978__CACM__The CRAY-1 Computer System]])。 - Fujitsu の FORTRAN77/VP は条件文つきループを、真の割合とロードストア頻度に応じて、マスク付き演算・圧縮/伸張・間接アドレス指定の 3 方式から選ぶ(Source: [[@1999__Parallel Computing__Development of supercomputers in Japan - Hardware and software]])。 ## 関連 - ソース: [[@1999__Parallel Computing__Development of supercomputers in Japan - Hardware and software]] / [[@1978__CACM__The CRAY-1 Computer System]] - 概念: [[ベクトルプロセッサ]] / [[スーパーコンピュータ]] - エンティティ: [[Fujitsu]] / [[Hitachi]] / [[NEC Corporation]] / [[Cray Research]] ## 出典 - [[@1999__Parallel Computing__Development of supercomputers in Japan - Hardware and software]] - [[@1978__CACM__The CRAY-1 Computer System]]