해당 포스팅은 이상윤님께서 공유해주신 2025 TA Campus 수업 문서 링크를 바탕으로 작성했습니다.
7. Bandwidth(대역폭)
대역폭(Bandwidth)이란 단위 시간당 전송할 수 있는 데이터의 최대량을 의미한다.
그래픽스 관점에서 대역폭은 주로 다음을 가리킨다.
- CPU ↔ 메모리
- GPU ↔ 메모리
즉, CPU와 GPU가 메모리와 데이터를 주고받을 수 있는 속도가 바로 대역폭이다.
7-1. Bandwidth와 GPU 성능의 관계
GPU는 렌더링을 위해 지속적으로 다음 데이터를 메모리에서 가져온다.
- 텍스처(Texture)
- 버텍스 / 인덱스 데이터
- 머티리얼 파라미터
- GBuffer, Render Target, Depth Buffer 등
대역폭이 충분하다면 GPU가 필요한 데이터를 빠르게 공급받을 수 있고 렌더링 파이프라인이 막히지 않는다. 결과적으로 대역폭이 높을수록 GPU 렌더링 효율이 좋아진다.
한 프레임에서 사용할 수 있는 대역폭은 한정되어 있기 때문에 그래픽스에서는 다양한 대역폭 사용량 최적화 기법이 등장한다.
대표적으로
- 드로우 콜 감소 (Batching, Instancing)
- 텍스처 해상도 및 포맷 최적화
- 불필요한 Render Target / GBuffer 줄이기
- LOD 사용
- Overdraw 감소
등을 통해 프레임 당 GPU로 전달되는 데이터의 양을 줄이는 것이 보통 최적화의 목표다.
7-2. Bandwidth Trade-Off
대역폭을 많이 사용하는 것은 항상 성능 향상으로만 이어지지 않는다. GPU 시스템에서는 전송량, 전력 소모, 발열, 하드웨어 부하 사이에 명확한 트레이드오프가 존재한다.
| 구분 | 대역폭 사용량이 많은 경우 | 대역폭 사용량이 적은 경우 |
|---|---|---|
| 프레임당 데이터 전송량 | GPU로 전송되는 데이터 양이 많음 | GPU로 전송되는 데이터 양이 적음 |
| 주요 원인 | 고해상도 텍스처<br>복잡한 메시<br>많은 드로우 콜 | 데이터 재사용률이 높음<br>불필요한 전송이 적음 |
| 메모리 접근 | 메모리 접근 횟수 증가 | 메모리 접근 감소 |
| 전력 소모 | 전력 소모 증가 | 전력 소모 감소 |
| 발열 | GPU 및 메모리 발열 증가 | 발열 감소 |
| 하드웨어 부하 | 메모리 컨트롤러 및 캐시 압박 | 하드웨어 부하 감소 |
| 안정성 | 플랫폼에 따라 쓰로틀링 발생 가능 | 장시간 안정적인 성능 유지 가능 |
7-3. 플랫폼별 대역폭 사용 전략(최적화)
대역폭은 모든 플랫폼에서 중요하지만, 플랫폼의 물리적 제약과 사용 환경에 따라 접근 방식은 크게 달라진다.
PC / Console 플랫폼
PC와 콘솔은 비교적 전력 공급에 제약이 적고, 더 높은 하드웨어 스펙과 고해상도 렌더링을 전제로 설계한다.
Mobile
모바일 플랫폼은 배터리 수명과 발열 한계가 정해져 있으므로, 저전력 기반 효율성 극대화를 전제로 설계한다.