자동 벡터화

병렬 컴퓨팅에서 자동 벡터화(Automatic vectorization)는 자동 병렬화의 특수한 경우로, 컴퓨터 프로그램이 한 번에 한 쌍의 피연산자를 처리하는 스칼라 구현에서 여러 쌍의 피연산자에 대한 하나의 연산을 한 번에 처리하는 벡터 구현으로 변환되는 것이다. 예를 들어, 특수 슈퍼컴퓨터를 포함한 최신 일반 컴퓨터는 일반적으로 다음 네 가지 덧셈(SIMD 또는 SPMD 하드웨어를 통해)과 같은 연산을 동시에 수행하는 벡터 연산을 사용한다.

하지만 대부분의 프로그래밍 언어는 일반적으로 여러 숫자를 순차적으로 덧셈하는 루프를 작성한다. 다음은 C로 작성된 이러한 루프의 예이다.
for (i = 0; i < n; i++)
    c[i] = a[i] + b[i];

벡터화 컴파일러는 이러한 루프를 일련의 벡터 연산으로 변환한다. 이러한 벡터 연산은 배열 a, b, c의 요소 블록에 덧셈을 수행한다. 자동 벡터화는 컴퓨터 과학의 주요 연구 주제이다.

 같이 보기 
 벡터 프로세서

 외부 링크 
 Auto-vectorization project page of the GCC compiler
 Auto-vectorization documentation of the Clang/LLVM compiler
 Automatic Vectorization Developer Guide of the Intel C++ Compiler Classic

분류:컴파일러 최적화
분류:병렬 컴퓨팅
분류:분산 컴퓨팅 문제
분류:SIMD 컴퓨팅