토픽 81 / 111·병렬 처리 (Parallel Processing)
SIMD (Single Instruction Multiple Data)
SIMD (Single Instruction Multiple Data)
하나의 명령어로 여러 데이터를 동시에 처리하는 병렬 처리 기법으로, 벡터 연산을 통해 멀티미디어·과학 계산 성능을 극대화
목적: 데이터 병렬성 활용, 멀티미디어 가속, 벡터 연산, 처리량 증대
특징: 단일 명령어, 다중 데이터, 벡터 레지스터, 병렬 ALU, 동일 연산 반복
구성요소: ① 벡터 레지스터(128/256/512비트) ② 벡터 ALU ③ SIMD 명령어 ④ 로드/스토어 유닛
ISA 확장
- •x86: MMX(64비트), SSE(128비트), AVX(256비트), AVX-512(512비트)
- •ARM: NEON(128비트), SVE(가변길이)
- •RISC-V: V Extension(가변길이)
예시: 4개 float 덧셈을 1개 명령어로 처리(4배 속도), 16개 byte 비교를 1개 명령어로
장점: 높은 처리량, 멀티미디어 가속, 전력 효율, 병렬 데이터 처리
단점: 제한된 적용 범위, 데이터 정렬 요구, 분기 비효율, 컴파일러 의존
적용사례: 이미지/비디오 처리, 과학 계산, 암호화, 게임, 머신러닝
비교: SIMD(데이터병렬/CPU) vs GPU(대규모병렬/수천코어) vs 스칼라(순차/1데이터)
연관: 병렬 처리, AVX, NEON, GPU, 벡터 프로세서