DirectCompute

페미위키

1 개요

DirectCompute는 GPGPU 실행을 위해 사용하는 Direct3D 11 또는 Direct3D 12의 구성요소이다. DirectX의 구성 요소로 보는 경우도 있지만 엄밀히 말하면 DirectCompute는 Direct3D의 컴퓨트 쉐이더를 사용해 실행만 하는 것이기 때문에 Direct3D 11/12 시스템의 일부에 해당한다. GPU가 Direct3D 11 지원을 완벽하게 하지 못 하는 Direct3D 10 지원 장치라고 해도 쉐이더 모델 4.0으로 동작은 한다. 다만 컴퓨트 쉐이더 기능이 Direct3D 11부터 추가가 되었기 때문에 API는 Direct3D 11 또는 Direct3D 12를 사용해야 한다.

Microsoft에서 개발한 병렬 컴퓨팅 라이브러리인 C++ AMP에서도 내부적으로 DirectCompute를 활용한다.

2 동작 원리

DirectCompute 사용을 위해서는 먼저 Direct3D 11의 Device Context 객체가 필요하다. 따라서 렌더링을 하지 않을 것이라고 해도 Direct3D 11 Device의 생성은 필수다.

Direct3D의 렌더링 파이프라인과 별개로 동작하므로 렌더링 수행 중간에 컴퓨트 쉐이더의 동작을 같이 수행할 수 있다.

Direct3D 12의 경우 비동기 쉐이더를 수행해 일부 환경에서 기존 방식보다 빠르게 처리할 수 있다.

3 같이 보기