[VGA] 지포스 GTX 1070, 1060의 ROP에 관한 비밀
지난 세대 지포스 GTX 970의 메모리 / ROP 스캔들을 기억하는 분께는 묘한 기분을 불러일으킬 수도 있을텐데, 이 글에서는 지포스 GTX 1070, 1060의 ROP에 관한 잘 알려지지 않은 사실을 다뤄 보려 합니다. 대외적으로 VGA 계산기가 공개되지 않은지는 벌써 몇달이 되어가지만 내부적으로는 꾸준히 업데이트를 거쳐 활용 중이고, 조만간 비슷한 기능을 갖는 페이지를 사이트 내에 개설할 계획이지만 내부 사용 버전과는 항상 버전 차이를 두려고 하기에 여러분이 접하게 될 / 혹은 이미 접했거나 갖고 있는 구버전 VGA 계산기에서 선험적으로 검출 가능한 이슈였는지는 잘 모르겠습니다.
아, 미리 선을 긋자면 - 이번 이슈는 GTX 970때처럼 제조사가 명백히 잘못된 사실을 전파했다거나, 기타 윤리적 비난을 받을 만한 일을 한 것은 전혀 아닙니다. 오히려 파스칼 세대 들어 GTX 1070, 1060의 ROP가 활용되는 방식이 기존과 어떻게 달라졌는지를 알려드리는 것에 가깝겠네요. 다만 결과론적으로 최초 출시 당시 GTX 1070의 정확한 ROP 성능을 짐작할 수 없게끔, '충분한' 정보가 주어지지 않은 것은 아쉬움을 자아냅니다. 그 '충분한' 정보란, 바로 GTX 1070에 사용된 GP104 컷팅칩의 블록 다이어그램입니다. 좀 더 자세히 알아볼까요.
지포스 GTX 1080과 1070이 출시된 작년 7월, 많은 매체에서 이들의 리뷰가 우후죽순으로 쏟아졌지만 GP104 풀 칩이 적용되어 딱히 다이어그램을 새로 그릴 필요가 없던 GTX 1080과 달리 1070에 대해서는 여러 설이 분분했습니다. 세부적으로는 여러 바리에이션이 있었겠지만 대표적으로 두 부류로 분류하자면 위와 같이 대별될 수 있습니다. 엔비디아의 GPU 내부 분할단위인 "GPC" 4개를 그대로 유지한 채 각 GPC 내부에서 SM을 선택적으로 비활성화한 것(왼쪽)과 GPC 하나를 통째로 비활성화한 것(오른쪽)이 그것입니다.
이것이 어째서 차이를 가져오는지 잘 모르시겠다고요. 일단 GP104의 GPC가 어떻게 구성되는지 살펴보아야 합니다.
하나의 파스칼 GPC는 5개의 SM과 5개의 폴리모프 엔진 (이들을 묶어 텍스처 프로세싱 클러스터 TPC 라 함), 그리고 1개의 래스터 엔진으로 구성됩니다. 여기서 특별한 존재가 바로 래스터 엔진인데, 아시다시피 래스터라이징을 수행하는 ROP는 실은 래스터라이저라는 작업의 "백엔드"에 해당하고 GPC 내에 위치한 래스터 엔진이 바로 "프론트엔드" 역할을 수행합니다. 말하자면 둘의 쌍이 맞아 떨어져야만 최적의 래스터라이징 성능을 발휘할 수 있고, 둘이 처리할 수 있는 수량에 차이가 있다면 무조건 둘 중 낮은 쪽으로 래스터라이징 성능이 맞춰지게 됩니다.
GP104 칩셋은 풀 칩의 경우 4개의 GPC를 탑재하므로 곧 4개의 래스터 엔진이 있게 되고, 하나의 래스터 엔진은 클럭당 16개의 픽셀을 그려낼 수 있으므로 프론트엔드에서의 래스터라이징 성능은 최대 64픽셀 / 사이클이 됩니다. 한편 이 칩셋은 32비트 메모리컨트롤러+8 ROP 묶음을 8개 탑재하여 총 256비트의 메모리 인터페이스와 64개의 ROP(=래스터라이징 백엔드)를 갖게 됩니다. 즉 풀 칩 구성일 경우, 래스터라이징 작업은 프론트엔드와 백엔드가 모두 사이클당 64개씩 처리할 수 있으므로 64 ROP로 알려진 본연의 래스터라이징 성능을 발휘할 수 있습니다.
그러나 GTX 1070으로 넘어오면 이야기가 약간 달라집니다. 이제 왜 '두 가지' 블록 다이어그램이 혼용되는 게 혼란을 가져오는지 아시겠죠. 앞서 살펴본 것중 왼쪽의 다이어그램은 4 GPC가 있어, 비록 내부적으로 몇 개의 SM이 비활성화되기는 했어도 온전히 4개의 래스터 엔진(=64-width 프론트엔드)을 갖게 되지만 실제 드러난 바에 따르면 GTX 1070은 하나의 GPC를 통째로 비활성화한 것입니다. 따라서 3 GPC = 3 래스터 엔진 = 48픽셀 / 사이클의 래스터 프론트엔드 대역폭을 갖게 되고, 아난드텍이 벤치마크한 결과에서 정확히 이 점이 드러나고 있습니다.
"As for GTX 1070, things are a bit different. The card has all of the ROPs of GTX 1080 and 80% of the memory bandwidth, however what it doesn’t have is GP104’s 4th GPC. Home of the Raster Engine responsible for rasterization, GTX 1070 can only setup 48 pixels/clock to begin with, despite the fact that the ROPs can accept 64 pixels. As a result it takes a significant hit here, delivering 77% of GTX 1080’s pixel throughput. With all of that said, the fact that in-game performance is closer than this is a reminder to the fact that while pixel throughput is an important part of game performance, it’s often not the bottleneck."
스펙상으로는 GTX 1080과 완전히 동일한 ROP와 80% 수준의 메모리 대역폭 (주 : 256비트란 점은 같고, 1080은 10Gbps vs 1070은 8Gbps) 을 갖고 있는 GTX 1070이지만 네번째 GPC가 비활성화되어 있음으로써 실제 1080의 3/4 수준인 77%의 픽셀 필레이트 성능을 보였다는 언급입니다. 아시다시피 픽셀 처리능력(=래스터라이징 성능)은 성능을 결정짓는 매우 중요한 요소이지만, 다만 이것 자체가 병목현상을 빚는 경우가 아니라면 실제 성능 격차가 이 정도까지 벌어지지는 않을 것이라고 설명하고 있는데요. 뒤집어 말해 래스터라이징 성능이 병목현상을 빚는 경우라면 GTX 1070의 성능은 우리가 지금껏 알아온 것보다 더 큰 격차로 GTX 1080과 차이를 보이게 됩니다. 즉, GTX 1070의 "유효한" ROP 개수는 64개가 아닌 48개인 셈. 같은 현상은 GP106 칩셋을 사용한 GTX 1060에서도 관찰됩니다.
GP106 칩셋은 2개의 GPC를 탑재하지만 메모리컨트롤러+ROP 클러스터는 6개를 탑재하고 있어, 풀 칩에서부터 래스터 프론트엔드/백엔드가 불일치하는 다소 이상한 설계입니다. 따라서 GTX 1060은 192비트 메모리 인터페이스 / 48 ROP의 "공식" 스펙을 갖지만 실제로 사이클당 처리 가능한 픽셀 수는 32개로 제한되어 있습니다. "유효한" ROP 개수는 32개인 셈이죠.
"The GPU’s 10 SMs are divided up into two GPCs, half the configuration of GP104. This means that GP106 can rasterize 32 pixels per clock on the frontend, but the backend ROPs can accept 48 pixels per clock. This kind of imbalance is not a bad thing – the ROPs are responsible for other tasks such as MSAA that eat up more time – but it’s interesting thing to see happen, as it gives us a bit of an idea of what kind of bottlenecks NVIDIA needed to balance out behind the scenes in the development process."
다만 아난드텍의 설명에 따르면 래스터 프론트엔드와 매치되지 않는 "잉여" ROP도 완전히 쓸모없지는 않다고 합니다. 예컨대 MSAA 등 부하를 많이 주는 작업 처리에 시간을 단축해줄 수 있다고 하는군요. 어쩌면 엔비디아 내부적으로는 여러 부가적인 그래픽 효과들(앞서 언급했듯 MSAA 라든지)이 점차 전체 워크로드 중 차지하는 비율이 높아질 것으로 예상하고 이와 같이 '넉넉한' 백엔드를 갖게끔 설계한 것일 수도 있겠습니다. CPU 진영에서는 이와 같은 '넉넉한 백엔드' 철학을 가진 것이 대표적으로 둘 있는데, 하나는 AMD의 불도저이고 다른 하나는 인텔의 하스웰. 다만 둘 모두 호평을 받은 아키텍처였냐 하면... 노 코멘트.
아무튼. 잘 알려지지 않은 이런 사실을 한번쯤 다뤄주는 건 여러분의 지적인 컴퓨터 대화에 큰 도움이 되겠죠. 재미있게 읽으셨길 바라며 저는 이만!
Dr.Lee's Signature
* 적용중인 트로피 :
DR.MOLA
레벨 | Lv. 30 (-20%) |
---|---|
포인트 | 96,971 p |
출석 | 11 일 (개근 0 일) |
Dr.Lee'님의


