하드웨어 가속

하드웨어 가속은 특정 연산을 외부 장치에 맡기는 기술이다.

1 개요[편집]

CPU가 직접 돌리면 효율이 낮은 그래픽, 사운드 작업이 하드웨어 가속의 주 작업들이며, 연산 작업을 타 장치에게 분담시켜서 CPU의 부담을 덜고 다른 곳에 자원을 투입해 더 나은 컴퓨팅 환경을 조성할 수 있다.

사실 엄밀한 의미로는 최근의 CPU들 역시도 다 하드웨어 가속을 지원한다. 오래 전 CPU는 부동소수점 연산 기능이 몹시 취약했으며, 이 때문에 부동소수점 연산을 위한 FPU가 별매되거나 또는 FPU 기능을 통합 강화한 CPU를 별도 출시하기도 했었다. 현재까지도 MMX나 SSE 등의 기술로 부동소수점 연산 기능들이 내려오고 있다.

사운드 작업의 경우 이제는 하이티어를 제외하고는 사운드 카드가 별도로 발매되지 않고 메인보드에서 그대로 지원하는 수준에 이르렀기 때문에 공간 등을 고려한 고품질 사운드 렌더링, 소프트웨어 앰프 정도를 제외하면 대부분 하드웨어 가속이 기본적으로 지원되고 있다. 이러한 배경 탓에 하드웨어 가속은 대부분 그래픽 관련 작업의 분산처리를 이르게 되었다.

GPU는 그래픽 렌더링에 특화되어 있다. 기본적으로 렌더링 작업은 극도로 병렬화가 가능한 작업이므로, 직렬처리에 특화된 CPU보다도 병렬처리에 특화된 GPU에서 지난 20년간 크게 발전해온 편이다. OS(윈도우 7 등)와 각종 소프트웨어들은 이 기조를 타고 렌더링이 필요한 영역을 크게 늘려왔으며, 이 때문에 최근 들어서는 하드웨어 가속을 기본적으로 지원하며 하드웨어 가속을 쓰지 않으면 사용이 제한 되는 기능들이 생기는 등 하드웨어 가속을 적극적으로 활용하게 되었다.

2 주요 기술[편집]