본문 바로가기
소프트웨어 개발(SW Dev)

SIMD (Single Instruction Multiple Data)

by flowhistory 2024. 3. 4.

"SIMD (Single Instruction Multiple Data)"는 하나의 명령어로 여러 개의 데이터를 동시에 처리하는 기술입니다.

이는 벡터 연산이라고도 불립니다.

 

SIMD는 CPU에서 지원되는 명령어 세트를 사용하여 동일한 형태/구조의 여러 데이터를 한 번에 처리하는 병렬 처리 기법을 말합니다.

현재 Intel, AMD, ARM CPU에서 아키텍처 모델에 따라 SIMD 기능을 지원하고 있습니다.
예를 들어, 4개의 32비트 정수 A0, A1, A2, A3와 4개의 32비트 정수 B0, B1, B2, B3를 각각 덧셈 연산한다고 가정해 보겠습니다.

SIMD 연산에서는 총 1번의 연산으로 각각 32비트 정수 간의 덧셈을 수행할 수 있습니다.

이는 기존의 SISD(Single Instruction Single Data) 연산에서는 4번의 연산이 필요한 것과 비교하여 효율적입니다.
SIMD는 벡터/행렬 연산이 필요한 데이터 구조에 적합하며, 영상 처리, 머신러닝/딥러닝, 암호 모듈 구현 등에서 활용됩니다.

예를 들면 JPEG 이미지 압축 라이브러리인 libjpeg-turbo에서도 SIMD를 사용하여 성능을 최적화하고 있습니다.

728x90

'소프트웨어 개발(SW Dev)' 카테고리의 다른 글

Java 코딩 시 주의할 점  (0) 2024.10.15
Type-punning  (0) 2024.03.04
Java 다운로드  (0) 2021.10.25
ISO20000과 ITIL4  (0) 2021.05.18
ITIL(IT Infrastructure Library)  (0) 2021.05.03

댓글