모든 컴퓨터 시스템의 심장은 중앙처리장치(CPU)에 있습니다. 이 범용 프로세서는 대부분의 작업을 처리하지만 기본적인 수학 연산에 한정되어 있어, 복잡한 작업은 여러 단계를 거치면서 처리 시간이 길어질 수 있습니다. 다양한 작업이 동시에 실행되면 컴퓨터의 중앙 프로세서에 상당한 부담이 됩니다.
그래픽 처리 장치(GPU)를 탑재한 그래픽 카드는 사용자들이 컴퓨터에 설치하는 대표적인 전문 프로세서입니다. 이 카드들은 2D 및 3D 그래픽과 관련된 복잡한 연산을 담당하며, 특정 연산에서는 CPU보다 훨씬 뛰어난 성능을 발휘하도록 설계되었습니다. 그렇다면 GPU가 그래픽 외의 영역에서 어떤 방식으로 중요해지고 있는지 살펴보겠습니다.

동영상 가속
GPU가 3D 그래픽 외 분야에 처음 적용된 것은 바로 동영상 처리였습니다. 고화질(HD) 영상 스트림은 압축된 데이터를 디코딩해야 비로소 고해상도 이미지로 재생됩니다. ATI와 NVIDIA는 모두 그래픽 프로세서가 이 디코딩 과정을 CPU 대신 처리하도록 지원하는 소프트웨어를 개발했습니다.
또한 그래픽 카드는 동영상을 한 형식에서 다른 형식으로 변환하는 트랜스코딩 작업도 도울 수 있습니다. 예를 들어 캠코더 파일을 DVD로 굽기 위해 변환하는 경우가 대표적입니다. 이 과정은 막대한 연산 능력을 필요로 하는데, 그래픽 프로세서의 영상 처리 기능을 활용하면 CPU만 사용할 때보다 훨씬 빠르게 완료할 수 있습니다.
SETI@Home
SETI@Home은 '외계 지능 탐사(Search for Extra-Terrestrial Intelligence)' 프로젝트가 전파 신호를 분석할 수 있도록 돕던 분산 컴퓨팅 프로그램으로, GPU가 제공하는 여분의 연산 능력을 적극적으로 활용했습니다. GPU 내부의 고성능 연산 엔진 덕분에 CPU만 사용했을 때보다 일정 시간 동안 처리할 수 있는 데이터량을 크게 늘릴 수 있었습니다. SETI@Home은 NVIDIA 그래픽 카드에서 CUDA(Compute Unified Device Architecture)를 통해 이를 구현했습니다. CUDA는 NVIDIA GPU에 직접 접근할 수 있도록 만들어진 C 언어의 특수 버전입니다.
Adobe Creative Suite와 Creative Cloud
GPU 가속을 활용한 최근의 대표적인 애플리케이션은 Adobe Creative Suite입니다. CS4부터 시작해 오늘날의 Creative Cloud 애플리케이션 모음까지 이어지고 있으며, Photoshop과 Premiere Pro 같은 Adobe의 주력 제품들이 포함됩니다. 기본적으로 OpenGL 2.0을 지원하고 비디오 메모리 512MB 이상을 갖춘 그래픽 카드만 있다면, 이러한 애플리케이션 내의 다양한 작업을 GPU로 가속할 수 있습니다.
왜 Adobe는 애플리케이션에 이런 기능을 추가했을까요? 특히 Photoshop과 Premiere Pro에는 고급 수학 연산이 필요한 전문 필터가 매우 많습니다. 대형 이미지나 긴 영상 스트림의 렌더링 시간은 GPU가 이러한 연산을 대신 처리함으로써 크게 단축됩니다. 물론 사용하는 작업과 그래픽 카드 성능에 따라 차이를 거의 느끼지 못하는 사람도 있지만, 눈에 띄는 시간 절약 효과를 보는 사용자도 많습니다.
암호화폐 채굴
가상 화폐를 획득하는 표준적인 방법은 암호화폐 채굴(cryptocoin mining)이라 불리는 과정입니다. 이 과정에서는 컴퓨터를 릴레이 노드로 활용해 거래를 검증·처리하기 위한 해시 연산을 수행합니다. CPU로도 이 작업이 가능하지만, 그래픽 카드의 GPU가 훨씬 빠른 방법을 제공합니다. 그 결과 GPU를 장착한 PC는 그렇지 않은 PC보다 훨씬 빠른 속도로 코인을 채굴할 수 있습니다.
OpenCL
그래픽 카드를 활용한 성능 향상 분야에서 가장 주목할 만한 발전은 OpenCL(Open Computing Language) 사양의 등장입니다. 이 사양은 GPU와 CPU뿐 아니라 다양한 전문 프로세서들을 하나로 묶어 연산을 가속하는 통합 프레임워크를 제공합니다. 서로 다른 여러 프로세서를 조합해 데이터 처리량을 극대화하면, 거의 모든 종류의 애플리케이션이 그 혜택을 받을 수 있습니다.
GPU의 확산을 가로막는 것은 무엇일까?
전문 프로세서 자체는 컴퓨터 세계에서 새로운 개념이 아닙니다. 그래픽 프로세서는 컴퓨팅 분야에서 가장 성공적이고 널리 사용되는 전문 프로세서 중 하나입니다. 문제는 이러한 전문 프로세서를 그래픽 외부의 애플리케이션이 쉽게 활용하기 어렵다는 점입니다. 애플리케이션 개발자는 각 그래픽 프로세서에 맞는 코드를 별도로 작성해야 하기 때문입니다. 하지만 개방형 표준에 대한 요구가 계속 커지고 있는 만큼, 앞으로 컴퓨터는 그래픽 카드를 그 어느 때보다 폭넓게 활용하게 될 것입니다.