본문 바로가기

[하드웨어 뜯어보기] CPU #16 - SIMD / 벡터 연산, 한 번에 여러 생각을 하는 두뇌

📑 목차

    “한 번의 명령으로 여러 데이터를 동시에 계산하는 병렬 두뇌”

    핵심요약
    SIMD(Single Instruction, Multiple Data)는 CPU가 하나의 명령으로 여러 데이터를 동시에 처리하는 기술입니다.
    즉, 같은 생각을 여러 번 반복할 필요 없이 “한 번에 여러 생각을 하는 두뇌”입니다.
    이 구조는 영상 처리, 인공지능, 과학 계산 등 대량 데이터 연산의 핵심이 되었고,
    오늘날의 CPU·GPU·AI 칩의 병렬 처리 근간을 형성했습니다.

     

    SIMD / Vector Register
    SIMD / Vector Register


    1. 개념 설명 - “같은 일을 여러 번 반복하지 않는다”

    기존의 CPU는 한 번에 하나의 데이터만 처리했습니다.
    예를 들어, 배열의 각 요소를 더하려면 이렇게 순차적으로 계산했죠:

    for (i = 0; i < 4; i++) C[i] = A[i] + B[i];

    하지만 SIMD 구조에서는, CPU가 다음처럼 한 번의 명령으로 4개의 데이터를 동시에 더합니다.

    C[0..3] = A[0..3] + B[0..3];

    즉, 명령어는 하나지만 데이터는 여러 개.
    이 덕분에 CPU는 연산 효율이 4배 이상 향상됩니다.

    핵심 문장: SIMD는 “한 번의 명령으로 여러 데이터를 동시에 처리하는 병렬 연산 기술”이다.


    2. 구조와 동작 원리

    1) 레지스터 확장 - 벡터의 탄생

    SIMD의 핵심은 벡터 레지스터(Vector Register) 입니다.
    일반적인 스칼라 레지스터가 64비트라면,
    SIMD 레지스터는 128비트, 256비트, 심지어 512비트 이상으로 확장됩니다.
    각 비트 필드는 서로 다른 데이터를 담고, 동시에 연산됩니다.

    아키텍처 레지스터 이름 폭(bit) 대표 기술
    Intel XMM / YMM / ZMM 128 / 256 / 512 SSE / AVX / AVX-512
    AMD XMM / YMM / ZMM 동일 Zen 시리즈
    ARM Q / V 레지스터 128 / 256 NEON / SVE

    예를 들어, 128비트 레지스터로 32비트 정수 4개를 동시에 더하는 명령은 아래와 같습니다:

     
    ADDPS XMM1, XMM2 ; 4개의 실수 덧셈을 동시에 수행

    비유: “양손과 양발을 동시에 쓰는 멀티태스킹 두뇌.”


    2) 데이터 병렬성 (Data Parallelism)

    SIMD는 명령 병렬성(Instruction Parallelism) 과 다릅니다.

    • 슈퍼스칼라, Out-of-Order → 여러 “명령”을 동시에 실행
    • SIMD → 하나의 명령으로 여러 “데이터”를 동시에 실행

    즉, 전자는 두뇌가 여러 생각을 동시에 하고,
    후자는 한 생각을 여러 대상으로 동시에 적용하는 구조입니다.

    예를 들어,
    이미지의 모든 픽셀에 동일한 필터를 적용하거나,
    AI 모델에서 행렬 곱을 수행할 때 SIMD가 큰 효과를 냅니다.

    핵심 문장: SIMD는 “같은 명령을 여러 데이터에 동시에 적용하는 병렬 두뇌의 사고 방식”이다.


    3) 파이프라인과 SIMD의 결합

    SIMD 명령은 파이프라인 구조와 결합되어,
    각 연산 단계(Fetch → Decode → Execute → Write Back)가 동시에 여러 데이터에 적용됩니다.
    이로써 CPU는 파이프라인 × 데이터 병렬성 = 폭발적인 처리량을 얻게 됩니다.


    3. 비유하자면 - “같은 생각을 동시에 실행하는 능력”

    사람이 걷는 동안 말하고, 동시에 음악을 듣는 것은 멀티태스킹이지만,
    SIMD는 그보다 “한 가지 행동을 여러 부위가 동시에 수행하는 것”과 비슷합니다.

    예를 들어,

    • 손가락 10개로 동시에 피아노 건반을 누르는 연주,
    • 여러 붓으로 같은 색을 칠하는 화가의 손놀림.

    CPU의 SIMD 연산도 이와 같습니다.
    “같은 동작을 여러 데이터에 적용”함으로써,
    시간은 같지만 결과는 배로 많아지는 효율의 두뇌 활동입니다.

    핵심 문장: SIMD는 두뇌가 동일한 판단을 여러 대상으로 동시에 내리는 사고 방식이다.


    4. 기술 발전 과정 - SSE에서 AVX, NEON, SVE로

    - 1999: Intel SSE (Streaming SIMD Extensions)

    Pentium III에서 도입된 SSE는 128비트 벡터 연산을 지원했습니다.
    부동소수점 연산 성능이 비약적으로 향상되어, 멀티미디어·3D 그래픽 처리에 혁신을 일으켰습니다.

    - 2011: AVX / AVX2 - 256비트 병렬화

    Intel Sandy Bridge 이후, AVX는 256비트 레지스터를 도입해 부동소수점 연산 성능을 2배로 끌어올렸습니다.
    특히 영상, AI, 과학 시뮬레이션 분야에서 SIMD의 위상이 확립되었습니다.

    - 2017~현재: AVX-512, ARM SVE

    • AVX-512: 512비트 폭으로, 한 번에 16개의 32비트 데이터를 처리 가능
    • SVE (Scalable Vector Extension): ARM 아키텍처의 확장형 벡터 기술로, 레지스터 폭이 유연하게 조정됨 (128~2048비트)
    • NEON: 모바일 환경의 전력 효율을 고려한 SIMD 엔진으로, Cortex 시리즈에 내장

    이후 AMD Zen, Apple M 시리즈, ARM Cortex-X 등 모든 현대 CPU는 크든 작든 SIMD 또는 벡터 연산 유닛을 탑재하고 있습니다.

    핵심 문장: SIMD는 CPU가 ‘대량 데이터 시대’를 견디기 위해 진화한 생존 본능이다.


    5. 오늘날의 활용 - AI, 그래픽, 과학 계산의 핵심

    분야 활용 예 SIMD 기술
    그래픽 처리 픽셀 필터링, 쉐이딩, 색 변환 SSE, AVX
    AI / 머신러닝 행렬 곱, 활성화 함수, 벡터 내적 AVX2, AVX-512, NEON
    영상 / 음성 처리 FFT, 코덱 압축, 오디오 믹싱 SSE, SVE
    모바일 / IoT 저전력 벡터 연산 ARM NEON

    특히 딥러닝 추론(Neural Inference) 은 수천만 개의 가중치를 동시에 계산해야 하기 때문에,
    SIMD 연산이 없으면 CPU는 병목에 빠집니다.
    GPU 또한 본질적으로 수천 개의 SIMD 유닛이 결합된 형태입니다.

    핵심 문장: 오늘날 모든 대규모 연산의 뿌리는 ‘SIMD 병렬 사고’다.


    6. 요약

    구분 내용
    정의 한 명령으로 여러 데이터를 동시에 처리하는 병렬 연산 방식
    구조 벡터 레지스터, 병렬 연산 유닛
    주요 기술 SSE, AVX, AVX-512, NEON, SVE
    장점 연산 효율 향상, 대량 데이터 처리에 유리
    단점 코드 최적화 복잡, 레지스터 호환성 문제
    대표 활용 그래픽, AI, 영상처리, 과학 시뮬레이션

    요약 문장: SIMD는 “한 번에 여러 생각을 실행하는 두뇌의 병렬적 사고 구조”다.


    7. 다음 편 예고

    다음 편 에서는 SIMD를 확장한 GPU의 초대형 병렬 사고 구조를 살펴봅니다.
    CPU가 ‘깊게 생각하는 두뇌’라면, GPU는 ‘넓게 생각하는 두뇌’입니다.

     

    다음글 : [컴퓨터 과학] - [하드웨어 뜯어보기] CPU #17 - GPU와 CPU의 차이, 다른 방식으로 생각하는 또 다른 두뇌

     

    [하드웨어 뜯어보기] CPU #17 - GPU와 CPU의 차이, 다른 방식으로 생각하는 또 다른 두뇌

    “깊게 생각하는 두뇌 vs 넓게 생각하는 두뇌” - 두 지성의 공존핵심요약CPU는 한 번에 하나의 복잡한 일을 정확히 수행하는 두뇌,GPU는 수천 개의 단순한 일을 동시에 수행하는 두뇌입니다.즉, CP

    snappytory.com