저 하늘의 구름처럼~

about GPU 2(유니파이드 셰이더) 본문

IT

about GPU 2(유니파이드 셰이더)

강백호v 2019. 7. 28. 23:27


초기 GPU에서는 그래픽 처리를 수행하고자 좌표 변환(Transpose) 계산을 수행하는 파이프 라인과

픽셀의 밝기나 색을 결정하는(Lighting) 계산을 수행하는 파이프라인을 각각 독립적으로 만들었습니다.

이는 트랜스포즈 처리의 파이프라인 출력을 라이팅 처리의 파이프라인 입력으로 연결하면 트랜스 포즈에 연속해서 라이팅이 수행되므로 그래픽 처리 흐름과 일치하는 구조입니다.

 

그러나 변환할 좌표의 수가 많고 색을 계산할 픽셀의 수가 적을 때는 정점 셰이더(트랜스 포즈)의 파이프라인 성능 제약 때문에 픽셀 셰이더(라이팅)의 파이프 라인이 놀게 됩니다.

한편, 정점의 수가 적고 픽셀의 수가 많은 화면에서는 반대로 픽셀 세이터의 파이프라인 성능의 제약 때문에 정점 셰이더의 파이프라인에서 출력을 기다려야 하는 일이 발생합니다.

이래서는 낭비가 많으르로 범용의 계산을 수행하는 여러 개의 블록을 하나로 묶는 유니파이드 셰이더라는 구조를 이용하게 되었습니다.

그리고 정점 셰이더에 사용할 계산 모듈의 수와 픽셀 셰이더에 사용할 계산 모듈의 수를 필요에 따라 바꿀 수 있도록 하면서 트랜스 포즈와 픽셀의 처리 부하 균형이 변하더라도 낭비 없이 계산 모듈을 사용할 수 있게 되었습니다.

 

- 출처 : 머신러닝과 블록체은을 떠받치는 GPU의 모든 기술 (Hisa Ando 지음, 길양이 옮김)