CPU vs GPU
CPU : 주로 일반 명령어를 처리하는데 사용됩니다. 복잡한 연산과 일반 프로그램 실행에 최적화 됨.
GPU : 그래픽 처리 및 병렬 작업에 특화되어 있습니다. 대규모 데이터 병렬처리 및 그래픽 렌더링 작업에 높은 성능을 제공합니다.
용도와 주요 역할
CPU: CPU는 컴퓨터의 "대표적인" 프로세서로서 다양한 작업을 수행합니다. 이에는 프로그램 실행, 운영체제 관리, 데이터 처리, 논리 연산, 입출력 처리, 스레드 관리 등 다양한 일반적인 작업이 포함됩니다. CPU는 단일 코어 또는 멀티코어로 구성될 수 있으며, 각 코어는 일련의 명령어를 순차적으로 실행합니다.
GPU: GPU는 주로 그래픽과 병렬 처리 작업에 특화되어 있습니다. 그래픽 처리, 3D 렌더링, 비디오 인코딩 및 디코딩, 과학 및 공학 계산, 머신 러닝과 같은 병렬 계산 작업을 가속화하는 데 사용됩니다. GPU는 많은 코어(또는 스트림 프로세서)를 가지고 있어 한 번에 여러 작업을 처리할 수 있습니다.
코어 수 및 스레딩
CPU: CPU는 일반적으로 몇 개의 빠른 코어를 가지고 있으며, 몇몇 모델은 하이퍼스레딩과 같은 기술을 사용하여 한 코어에서 병렬 스레드를 처리할 수 있습니다.
GPU: GPU는 많은 작은 코어(스트림 프로세서 또는 셰이더 유닛)를 가지고 있으며, 각 코어는 독립적으로 병렬 계산을 처리합니다. 따라서 GPU는 대규모 병렬 작업에 효과적입니다.
프로그래밍 모델
CPU: CPU는 일반적으로 일련의 명령어를 순차적으로 실행하는 Von Neumann 아키텍처를 사용하며, C/C++ 및 다양한 고급 프로그래밍 언어로 프로그래밍됩니다.
GPU: GPU는 SIMD(Single Instruction, Multiple Data) 아키텍처를 사용하여 여러 데이터 요소에 동일한 명령어를 동시에 적용합니다. GPU 프로그래밍은 병렬 프로그래밍 언어 및 API(예: CUDA, OpenCL)를 사용하여 개발됩니다.
Last updated