SIMD란?
しむど
Single Instruction, Multiple Data の略。1つの命令で複数のデータに同じ演算を同時に行う方式。画像処理やAIの計算を高速化する。
일본어 명칭: SIMD
SIMD은(는) CPU와 아키텍처, 컴파일러 등 2개 분야의 연습 문제 2개에 나와요.
분야: CPU와 아키텍처
しむど
Single Instruction, Multiple Data の略。1つの命令で複数のデータに同じ演算を同時に行う方式。画像処理やAIの計算を高速化する。
일본어 명칭: SIMD
SIMD은(는) CPU와 아키텍처, 컴파일러 등 2개 분야의 연습 문제 2개에 나와요.
분야: CPU와 아키텍처
정답: B. SIMD
SIMD는 하나의 명령어로 여러 데이터에 같은 연산을 병렬로 수행하는 방식으로, 예를 들어 512비트 레지스터라면 32비트 수치 16개를 한 번에 계산할 수 있습니다. x86의 SSE·AVX, ARM의 NEON·SVE 등이 있으며 이미지 처리, 동영상 압축, 행렬 연산 등에서 수 배 이상의 고속화를 얻을 수 있습니다. 플린의 분류에는 이 밖에 SISD(일반적인 순차 처리), MIMD(멀티코어) 등이 있습니다.
정답: B. 여러 데이터를 동시에 다루는 SIMD 명령
자동 벡터화는 배열의 요소마다 같은 계산을 하는 루프를 찾아 여러 요소를 한꺼번에 처리하는 SIMD 명령으로 대체하는 최적화입니다. 예를 들어 128비트 SIMD 레지스터라면 32비트 수를 4개 동시에 더할 수 있으므로, 잘 되면 루프의 연산 횟수가 4분의 1이 됩니다. 반복 사이에 의존이 없을 것, 데이터의 배열이 연속일 것 등이 조건이 되며, 포인터가 겹칠 가능성이 있으면 보류되기도 합니다. 인터럽트나 캐시 조작 명령과는 관계가 없습니다.
SIMD는 하나의 명령어로 여러 데이터에 같은 연산을 병렬로 수행하는 방식으로, 예를 들어 512비트 레지스터라면 32비트 수치 16개를 한 번에 계산할 수 있습니다.
하나의 명령어로 여러 데이터에 같은 연산을 동시에 수행하는 방식은?자동 벡터화는 배열의 요소마다 같은 계산을 하는 루프를 찾아 여러 요소를 한꺼번에 처리하는 SIMD 명령으로 대체하는 최적화입니다.
컴파일러의 자동 벡터화에서 사용되는 명령의 종류로 올바른 것은 무엇인가?仮想記憶 命令セットアーキテクチャ(ISA) 分岐予測 割り込み DMA(ダイレクトメモリアクセス) DVFS(動的電圧・周波数制御) GPU IPC NPU(ニューラルプロセッシングユニット) SMT(同時マルチスレッディング)