통합 셰이더 모델

통합 셰이더 모델(Unified shader model, Direct3D 10에서는 "셰이더 모델 4.0")은 3차원 컴퓨터 그래픽스 분야에서 모든 셰이더렌더링 파이프라인(지오메트리, 정점, 픽셀 등)은 동일한 기능을 갖는다. 이것들은 모두 텍스처와 버퍼를 읽을 수 있으며 거의 동일한 명령어 집합을 사용한다.

 역사 
이전 GPU에는 일반적으로 두 가지 유형의 셰이더 하드웨어가 포함되어 있었는데, 버텍스 셰이더는 단순한 픽셀 셰이더보다 훨씬 더 많은 명령을 가지고 있었다. 이는 전체적으로 GPU 구현 비용을 낮추고 단일 장치에서 총 더 많은 셰이더를 허용했다. 이로 인해 시스템의 유연성이 떨어지게 되었고, 워크로드가 다른 셰이더보다 한 셰이더를 더 많이 사용한 경우 한 셰이더 세트를 유휴 상태로 두는 경우도 있었다. 제작의 개선이 계속됨에 따라 이러한 구분은 덜 유용해졌다. ATI 테크놀로지스는 엑스박스 360용으로 개발한 하드웨어에 통합 아키텍처를 도입했다. 엔비디아는 테슬라 디자인을 빠르게 따라갔다. AMD는 2년 후 테라스케일 라인에 카드 형태의 통합 셰이더를 도입했다. 그 개념은 그 이후로 보편적이었다.

초기 셰이더 추상화(예: 셰이더 모델 1.x)는 정점 셰이더와 픽셀 셰이더에 대해 매우 다른 명령 세트를 사용했으며 정점 셰이더는 훨씬 더 유연한 명령 세트를 가졌다. 최신 셰이더 모델(예: 셰이더 모델 2.x 및 3.0)에서는 차이가 줄어들어 통합 셰이더 모델에 접근했다. 통합 모델에서도 명령어 세트는 서로 다른 셰이더 유형 간에 완전히 동일하지 않을 수 있다. 셰이더 단계마다 몇 가지 차이점이 있을 수 있다. 조각/픽셀 셰이더는 암시적 텍스처 좌표 그라데이션을 계산할 수 있는 반면, 지오메트리 셰이더는 렌더링 프리미티브를 내보낼 수 있다.

 통합 셰이더 아키텍처 
통합 셰이더 아키텍처 또는 통합 셰이딩 아키텍처는 그래픽 하드웨어의 모든 셰이더 처리 장치가 모든 유형의 셰이딩 작업을 처리할 수 있는 하드웨어 설계이다. 대부분의 통합 셰이딩 아키텍처 하드웨어는 컴퓨팅 유닛 배열과 모든 컴퓨팅 유닛이 가능한 한 자주 작동하도록 보장하는 동적 스케줄링/부하분산 시스템으로 구성된다.

통합 셰이더 아키텍처는 그래픽 렌더링 하드웨어의 보다 유연한 사용을 가능하게 한다. 예를 들어, 기하학적 작업 부하가 많은 상황에서 시스템은 대부분의 컴퓨팅 유닛을 정점 및 기하 셰이더를 실행하는 데 할당할 수 있다. 정점 작업 부하가 적고 픽셀 부하가 많은 경우, 더 많은 컴퓨팅 유닛이 픽셀 셰이더를 실행하는 데 할당될 수 있다.

통합 셰이더 아키텍처 하드웨어와 통합 셰이더 모델 프로그래밍 인터페이스가 서로의 필수 요구 사항은 아니지만, 통합 아키텍처는 통합 셰이더 모델을 제공하는 API를 지원하도록 의도된 하드웨어를 설계할 때 가장 합리적이다.

OpenGL 3.3 (통합 셰이더 모델을 제공함)은 통합 셰이더 아키텍처가 없는 하드웨어에서도 구현될 수 있다. 마찬가지로, 비통합 셰이더 모델 API를 지원하는 하드웨어는 통합 셰이더 아키텍처를 기반으로 할 수 있으며, 예를 들어 엑스박스 360의 제노스 그래픽 칩이 그렇다.

통합 셰이더 아키텍처는 엔비디아 지포스 8 시리즈, ATI 라데온 HD 2000 시리즈, S3 크롬 400, 인텔 GMA X3000 시리즈, 엑스박스 360의 GPU, 퀄컴 아드레노 200 시리즈, Mali 미드가르드, 파워VR SGX GPU와 함께 도입되었으며 모든 후속 시리즈에서 사용된다.

예를 들어, 통합 셰이더는 엔비디아 GPU에서는 "CUDA 코어" 또는 "셰이더 코어"라고 불리며, 인텔 GPU에서는 "ALU 코어"라고 불린다.

아키텍처
엔비디아
 테슬라
 페르미
 케플러
 맥스웰
 파스칼
 볼타
 튜링
 암페어
 에이다 러브레이스
 블랙웰

인텔
 인텔 아크

ATI/AMD
 테라스케일
 그래픽스 코어 넥스트
 RDNA
 CDNA

 각주 

분류:셰이딩