게임, 영상 편집 등에 필요한 그래픽스 처리나
기계 학습의 행렬 연산 등을 가속화하기 위한 병렬 연산을 수행하는
컴퓨터 하드웨어 장치.
원래는 그래픽스 가속기(graphics accelerator)라는 그래픽스 전용 카드 또는
처리 장치를 널리 이르는 표현이었다. 그래픽스 처리 기능이 하나의 프로세서에 통합되고 고속화와 병렬화가 진행되면서 그래픽스 처리 장치(GPU: Graphics Processor Unit)라는 용어로 사용된다.
GPU는 1970년대에 비디오 게임기에 화면 처리를 해주기 위해 독립적인 하드웨어를 만든 것이 시초다. 1980년대 IBM PC에 도입되어
VGA,
SVGA 등의 비디오 카드 또는 그래픽 카드로 불렸다. 1990년대에 들어서 3차원 게임 지원을 위한 기능이 발전되었고, 2000년대에는 프로그램이 가능한 셰이더(
programmable shader)라는 개념으로 기능이 추가되어
중앙 처리 장치(
CPU)처럼 활용할 수 있게 되면서 그래픽스 전반에 걸쳐 다양한 기능을 수행하는 장치로 발전하였다. 2000년대에 들어서 GPU는
실시간 처리가 가능한
3차원 그래픽스뿐만 아니라 과학 시뮬레이션,
인공지능, 암호화폐 채굴 등 계산 집약적인 응용에도 사용할 수 있게 되었다.
GPU는 시스템에 결합되는 형태에 따라 통합형 GPU(integrated GPU)와 전용 하드웨어형 GPU(dedicated GPU)로 나눌 수 있다. 통합형 GPU는
PC 내에 GPU 기능을 구현한 형태다.
CPU와 메모리를 공유하고 별도의 하드웨어를 필요로 하지 않지만, 전용 하드웨어형 GPU에 비해 성능에는 한계가 있다. 전용 하드웨어형 GPU는 독립적인 메모리를 갖추고,
CPU에서 처리하기에 정도가 복잡한 그래픽 계산을 다수의 GPU 프로세서를 활용하여 빠르게
병렬 처리할 수 있다.
초기의 GPU는 2차원 비디오의 렌더링을 목표로 시작하였지만, 전용 하드웨어형 GPU가 발전하면서 3차원 그래픽의 화소 단위 또는 정점 단위의 고급 행렬 연산도 처리하게 되었다. 또한 기능이 보다 정교해지고 GPU 전용 프로그래밍 구조를 사용하면서 그래픽스 위주의 처리에서
블록체인,
인공지능 등
CPU에서 처리하기 어려운 병렬 연산이 필요한 일반적인 계산 영역에도 활용할 수 있게 되었다. 이러한 광범위한 영역의 계산을 지원하는 GPU를 범용 GPU(
GPGPU: General purpose GPU)라고 부른다.
GPU는
비디오 코덱을 포함하는 비디오
처리 장치(
VPU: Video
Processing Unit), 디스플레이의 형태와 종류에 맞게 연결할 수 있도록 처리하는 디스플레이 인터페이스(DIF: Display InterFace) 그리고 그래픽스와 병렬 계산을 위한 그래픽 및 계산 배열(
GCA: graphics and compute array)로 구성된다.
한편 GPU는 시장 경쟁 구도에서 더 향상된 기능을 제공하는 방향으로 장치를 개발하기 때문에
운영체제와 같이 공적 표준이 존재하지 않는다.