vectorizeとは? わかりやすく解説

Weblio 辞書 > 辞書・百科事典 > 百科事典 > vectorizeの意味・解説 

ベクトル化

(vectorize から転送)

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/12/13 01:18 UTC 版)

ナビゲーションに移動 検索に移動

ベクトル化(ベクトルか、: vectorize

  • ベクトル命令化 - コンパイル時にループをベクトル演算命令に変換すること。この項目で説明。
  • ベクトル(1次元配列)の演算をサポートするプログラミング環境で、ループをベクトルに書き換えること
  • 行列(多次元配列)を同じ要素を持つベクトル(1次元配列)に変換すること→行列の一列化
  • 他の形式のデータをベクタ形式データに変換すること

ベクトル化とは、コンピュータプログラムにおいて、繰り返し処理で配列(ベクトル)の要素をひとつひとつ計算しているような部分を、手動あるいはコンパイラで(自動ベクトル化)、ベクトル計算機で高速に演算できるよう変形すること。近年のSIMD演算のための並列化スーパースカラ機でのソフトウェアパイプラインに応用できる内容もある。

High Performance Fortranはこれらの高速化を意識したプログラミング言語である。

ベクトル化の手法

以下ではFortranのコードを例にとって説明する。基本的に、ループ演算を1つのベクトル演算命令にするので、doループがベクトル化対象となる。なお、ベクトル命令に出来るパターンは各機種毎、コンパイラ毎に多少異なる。

単純doループ

たとえば以下のようなdoループは1つのベクトル命令に出来る。

do i = 1, 100
    a(i) = a(i) * b(i)
end do

if文を含むdoループ

以下のような、if文を含むdoループは、それをサポートするハードウェアがあればベクトル化が可能である。

do i = 1, 100
    if (a(i) > 0.0) then
        a(i) = a(i) * 2.0
    end if
end do

この場合、たとえばSXシリーズでは、

  • 配列aの各要素について、if文を満たすか満たさないかを判断するマスクベクトルを作成。
  • マスクが真の部分だけを演算する、ベクトル命令を生成。

という方法でベクトル化を行なう。

多重ループ

多重ループは、全部まとめて1つのベクトル命令を生成することもある。また、効率化をはかるために、内側のループと外側のループを入れ替える場合もある。これは、ベクトル化を行なうためには、データがメモリ上で連続している必要があるからである。 たとえば、二次元配列を演算する場合、内側のループが連続したメモリをアクセスするようになっていない場合には、演算する順番を入れ替えて(すなわちdoループの内側と外側を入れ替えて)ベクトル化が容易になるようにする。

関連項目

参考文献

  • 近藤良三「SXシステムの言語処理系」『NEC技報』第39巻第1号、1986年、 NAID 40004407108



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「vectorize」の関連用語

vectorizeのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



vectorizeのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアのベクトル化 (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。

©2025 GRAS Group, Inc.RSS