전용 하드웨어를 최소로 억제 프로그래머블 GPU에 적응


그림을 보면 DirectX 10에서 GPU의 구조가 바뀌었던 것이 잘 알 수 있다. DirectX 9까지는 논리 파이프라인이 거의 반영된 형태로 구현되고 있었다. 그러나 DirectX 10에서는 논리 파이프와 실제 GPU의 유닛과 데이터 플로우는 완전히 차이가 난다. DirectX 10GPU 아키텍쳐에 있어서 최대의 전환이었던 것을 잘 알 수 있다.

이 전환의 결과 두 개의 방향이 유효하게 되었다. (1)하나는 그래픽스 파이프라인으로 논리상의 프로그래머블 스테이지를 늘리는 것. 논리상의 프로그래머블 쉐이더를 늘려도 하드웨어 자체에 다른 설계의 프로세서를 더할 필요가 없기 때문에 간단하게 늘릴 수 있다. (2)다른 하나는 전용 하드웨어를 가지지 않든가 거의 가지지 않는 범용적인 프로세서로 지원하는 것 .Intel이 시도하는 「Larrabee」와 같이  texture 유닛 이외의 전용 하드를 가지지 않는 아키텍쳐에서도 용이하다.

DirectX 11은 이러한 DirectX 10에서 깐 흐름을 타고 있다. 우선 쉐이더 스테이지 수가 증가했다 .「텍셀레이션(평면 분할:Tessellation)」의 지원을 위해서 고정 기능의 텍셀레이션 스테이지 이외에 쉐이더 스테이지가 추가되었기 때문이다. 고정 기능은 최소한으로 끝나도록 정의되고 있다. 그 때문에 Larrabee와 같은 보다 범용의 CPU는 새롭게 더해지는 요소도 모두 프로세서 상의 소프트웨어로서 구현할 수 있을 것 같다.

DirectX 11 APIGPU 구현



DirectX 11의 텍셀레이션 스테이지군은  유니파이드 쉐이더 GPU에 잘 적합하도록 정의되고 있다. 텍셀레이션의 제어는 전단의 Hull Shader에 텍셀레이트 된 정점의 변이는 Domain Shader가 맡는다. 그 때문에 텍셀레이터 하드가 하는 것은 단순하게 패치에 대해서의 정점 데이터 생성만 한다.

DirectX 11의 텍셀레이터는 컨피규러블로 유연성이 높은 복잡한 것이지만 이전과 같이 그 모두를 전용 하드웨어로서 구현하려고는 하고 있지 않다. 쉐이더 프로세서에 구현 가능한 쉐이더 스테이지로 프로그래머블 하게 처리하는 것을 전제로서 전용 하드웨어의 증가를 최소로 억제하고 있다.

이러한 어프로치로부터 하드웨어로서 필요한 자원도 그만큼 큰 것으로는 없을 것이다. 물론 그 만큼 쉐이더 프로세서의 실행 시간은 텍셀레이션에 놓친다. 그러나 그곳에서는 다른 처리와의 로드 밸런스를 취할 수 있다. 구체적으로는 연산 자원이 많은 고급 지향 GPU는 보다 디테일의 섬세한 텍셀레이션을 실행하여 자원이 적은 GPU에서는 디테일을 다르게 한다고 하는 조정이 가능하다.

DirectX 11에는 이 외 하드웨어적인 확장이 다수 포함되어 있지만 모두 GPU의 구조의 변혁이나 대규모 전용 하드웨어의 구현을 필요로 하지 않는다고 추측되는 것 뿐이다. 그 때문에 DirectX 11세대의 GPU 구현의 기본은 위의 추정도와 같이 매우 DirectX 10과 닮은 것이 된다고 추정된다.

물론 GPU 벤더 각 사는 성능을 향상시키기 위해서 DirectX 11세대라도 다양한 아키텍쳐의 확장을 더해 온다고 추측된다. 그러나 API의 정의에 영향을 받는 부분에서는 큰 확장은 필요가 없다고 볼 수 있다.




나머지는 다음에.... ^^


DirectX 11세대의GPU마이크로 아키텍쳐의 방향성 - 1

DirectX 11세대의GPU마이크로 아키텍쳐의 방향성 - 2



출처 : http://pc.watch.impress.co.jp/docs/column/kaigai/20090804_306876.html



by 흥배 2009. 11. 13. 09:00