Skip to content

GPU와 셰이더 기술의 기초 지식 (7)

[칼럼 핵심 요약]
DirectX 10세대/SM4.0 대응 GPU의 등장 제일 타는 것은, NVIDIA의 GeForce 8000 시리즈였다. 다소 늦게, 경쟁 ATI(AMD)는 RADEON HD2000 시리즈를 투입하고 있다. 양사 모두, 그 하드웨어에 「통합형 셰이더」아키텍쳐(Unfied Shader Architecture)를 채용하고 있는 점이 특징이 되고 있다.

🌐 원문 링크: GPUとシェーダ技術の基礎知識(7) (Mynavi News)
📅 원문 발행일: 2008-03-07 | ✍️ 저자: 西川善司 (니시카와 젠지 / Zenji Nishikawa)

NOTE

💡 현대 그래픽스 관점에서의 발전사 (Modern Retrospective)

  • 고정 기능에서 완전 프로그래머블로: 본문에서 다루는 플랫 셰이딩(Flat Shading)과 초기 고정 파이프라인(Fixed-Function Pipeline) 시대는 이후 DirectX 8/9의 버텍스/픽셀 셰이더 분리 시대를 거쳐, 현재는 컴퓨트 셰이더, 메시 셰이더(Mesh Shader), 레이트레이싱 파이프라인(DXR/Vulkan Ray Tracing)으로 완전히 통합·진화했습니다.
  • 하드웨어 인터페이스의 진화: AGP 및 초기 PCI 인터페이스에서 현대의 PCIe 4.0/5.0 및 고대역 메모리(HBM3 / GDDR6X) 구조로 발전하여, 초당 수 테라바이트급의 메모리 대역폭을 소화하고 있습니다.
  • 소프트웨어 래스터라이저의 부활: 최신 언리얼 엔진 5의 Nanite는 GPU 하드웨어 래스터라이저의 한계를 극복하기 위해, 매우 미세한 마이크로 폴리곤 클러스터에 대해 컴퓨트 셰이더 기반의 고속 소프트웨어 래스터라이저를 병행 사용하는 등 기술이 나선형으로 진보하고 있습니다.

📖 본문 해설

[원문 리드문] > DirectX 10세대/SM4.0 대응 GPU의 등장 제일 타는 것은 NVIDIA의 GeForce 8000 시리즈였다. 다소 늦게, 경쟁 ATI(AMD)는 RADEON HD2000 시리즈를 투입하고 있다. 양사 모두, 그 하드웨어에 「통합형 셰이더」아키텍쳐(Unfied Shader Architecture)를 채용하고 있는 점이 특징이 되고 있다.

통합 셰이더(Unified Shader) 아키텍처와 미래의 DirectX

DirectX 10세대/SM4.0 대응 GPU의 등장 제일 타는 것은, NVIDIA의 GeForce 8000 시리즈였다. 다소 늦게, 경쟁 ATI(AMD)는 RADEON HD2000 시리즈를 투입하고 있다.

NVIDIA "GeForce 8800 GTX". 최초의 DirectX 10세대/SM4.0 대응 GPU는 NVIDIA에서 리스 리스되었다NVIDIA "GeForce 8800 GTX". 최초의 DirectX 10세대/SM4.0 대응 GPU는 NVIDIA에서 리스 리스되었다

ATI와 NVIDIA, 양사 모두 DirectX 10세대/SM4.0 대응 GPU는, 그 하드웨어에 「통합형 셰이더」아키텍쳐(Unfied Shader Architecture)를 채용하고 있는 점이 특징이 되고 있다.

프로그래머블 셰이더에는 버텍스 셰이더, 픽셀 셰이더, 그리고 새로운 지오메트리 셰이더의 3개의 셰이더가 있지만, 그리는 장면에 따라 버텍스 셰이더, 픽셀 셰이더의 부하는 바뀌어 오고, 새로운 지오메트리 셰이더는, 지금까지의 어플리케이션을 이용하고 있는 한은 별로 활용의 장도 없다. 그럼에도 불구하고 버텍스 셰이더 몇 기, 지오메트리 셰이더 몇 기, 픽셀 셰이더 몇 기와 고정적으로 셰이더 유닛을 할당하여 GPU를 설계해 버리는 것은 낭비가 많아진다. 각 셰이더는, 확실히 각각 특유의 역할을 해내고 있지만, 실제의 연산 내용은 벡터나 행렬의 계산이 주체이며, 각 셰이더간에 그다지 큰 차이는 없다.

그렇다면, "범용"으로서의 프로그래머블 셰이더 유닛을 다수 준비해, 필요에 따라서 그것들을, 버텍스 쉐이더로서 기용하거나, 지오메트리 쉐이더로서 기용하거나, 픽셀 쉐이더로서 기용하는 것이 합리적인 것이 아닌가.

이것이 통합형 셰이더 아키텍처의 기본적인 사고방식이다.

따라서, 버텍스 부하가 클 때 버텍스 쉐이더를 더 많이 사용할 수 있고, 픽셀 로딩이 높을 때 픽셀 쉐이더를 많이 사용할 수 있습니다.

종래의 GPU에서는 버텍스 쉐이더, 픽셀 쉐이더의 어느 쪽인가에 병목이 발생해 버리면, 성능이 내기 어려워질 뿐 아니라, 여가를 가지고 있는 셰이더까지가 나와 버린다종래의 GPU에서는 버텍스 쉐이더, 픽셀 쉐이더의 어느 쪽인가에 병목이 발생해 버리면, 성능이 내기 어려워질 뿐 아니라, 여가를 가지고 있는 셰이더까지가 나와 버린다

🔍 [인포그래픽 도해 한국어 번역: 기존 분리형 GPU의 병목 구조]

  • 버텍스 파이프라인 (좌측 빨강): 지오메트리가 복잡하면 버텍스 셰이더만 100% 과부하, 픽셀 셰이더는 대기(Idle)
  • 픽셀 파이프라인 (우측 파랑): 화면 해상도가 높고 복잡한 셰이딩 시 픽셀 셰이더만 과부하, 버텍스 셰이더는 낭비
  • 결과: 특정 파이프라인의 연산 유휴(병목)로 인해 GPU 전체 성능이 저하됨

통합형 셰이더 아키텍처라면 부하가 걸려 있는 셰이더를 늘리는 대응으로 병목 현상을 줄일 수 있다.통합형 셰이더 아키텍처라면 부하가 걸려 있는 셰이더를 늘리는 대응으로 병목 현상을 줄일 수 있다.

좀 더 이해하기 쉽습니다. 왼쪽이 기존의 고정 배분식 아키텍처, 그리고 오른쪽이 통합형 셰이더 아키텍처의 이미지다좀 더 이해하기 쉽습니다. 왼쪽이 기존의 고정 배분식 아키텍처, 그리고 오른쪽이 통합형 셰이더 아키텍처의 이미지다

좀 더 이해하기 쉽습니다. 왼쪽이 기존의 고정 배분식 아키텍처, 그리고 오른쪽이 통합형 셰이더 아키텍처의 이미지다좀 더 이해하기 쉽습니다. 왼쪽이 기존의 고정 배분식 아키텍처, 그리고 오른쪽이 통합형 셰이더 아키텍처의 이미지다

ATI는 PC용 DirectX 10세대/SM4.0 대응 GPU의 투입에서는 NVIDIA에 대해 지연을 취했지만, 「통합형 셰이더 아키텍쳐」의 구현화는 2005년에 등장한 Xbox360-GPU에 대해서 실시하고 있어, 이 아키텍쳐에는 ATI측에 하루의 길이가 있다고 할 수 있다. DirectX 10세대/SM4.0 대응 GPU의 제일 승차는 놓쳐 버렸지만, 통합형 셰이더 아키텍쳐 실용화의 제일 승차는 ATI였던 것이다.

(트라이Z 니시카와 젠지)


🔗 연관 지식 베이스 (Wiki)

Based on Zenji Nishikawa's 3D Graphics Maniax series. Translated & Knowledge-Based for Korean Game Developers.