레이트레이싱, 이제는 현실이다! 엔비디아 튜링 GPU 아키텍처의 모든 것

[닫기]

엔비디아의 장점은 그들이 개발한 기술을 현실화 할 수 있다는 점이다. 그래서 세대 교체 때마다 표준 API를 넘어선 기술을 제시해 왔고 이렇게 만든 기술을 엔진 개발사나 게임 개발사들과 협력해 실제 게임에서도 즐길 수 있게 만들어 왔다.

그렇다고 모든 기술이 대중적으로 인정 받고 성공한 것은 아니지만 그런 끊임 없는 도전과 노력 덕분에 PC 게임 속 세상은 더 현실과 가깝게 됐다.

엔비디아가 또 다시 세대 교체를 시작했다. 포토 리얼리즘을 추구하고 있는 PC 게임 속 그래픽을 한층 더 업그레이드 시키겠다며 튜링이라는 새로운 GPU 아키텍처와 이를 적용한 지포스 RTX 시리즈를 발표한 것이다.

오늘은 엔비디아가 내놓은 튜링 GPU 아키텍처를 자세히 알아보고 PC 게임의 미래에 대해 이야기해 볼까 한다. 

 

■ 컴퓨팅 효율을 극대화 한 튜링 아키텍처

엔비디아는 GPU 개발사가 아니다. 오직 그래픽만 처리했던 GPU에서 다양한 컴퓨팅 작업으로 활용 분야가 확대 되면서 HPC 분야를 선도하는 기업으로 성장하게 됐다.

그 중에서도 딥러닝과 AI 부분에서 엔비디아의 성장세는 무서울 정도고 이를 뒷받침 하기 위해 GPU 아키텍처도 보다 다양한 컴퓨팅 환경을 지원할 수 있도록 개발하고 있다.

오늘 소개할 튜링은 그런 엔비디아의 전략이 가장 잘 녹아 든 GPU 아키텍처다.

일단, 전통적인 구조에서의 진화만 보면 SM(Streaming Multiprocessor)에 종속된 쿠다 코어가 절반으로 줄어들었다. 파스칼까지 128개 였던 쿠다 코어가 64개로 줄고 16개씩 4개로 파티셔닝 됨으로써 SM 수가 2배 이상 증가하게 됐다.

이 때문에 파스칼(GTX 1080 Ti)에선 28개 였던 SM이 튜링(RTX 2080 Ti)에선 68개로 크게 늘어났다. SM이 증가한 것이 더 많은 작업을 동시에 처리할 수 있을 뿐만 아니라 유휴 자원의 활용률을 높이는데도 기여할 수 있어 컴퓨팅과 쉐이딩 작업 시 성능 향상으로 이어지게 된다. 

캐쉬 구조도 손을 댔다. 쿠다 코어를 절반으로 줄였음에도 레지스터 파일 용량은 그대로 유지 됐고 L1과 공유 메모리로 구분되던 계층적인 구조가 하나로 통합되면서 캐쉬와 공유 메모리를 보다 효율적으로 활용할 수 있게 됐다.

물론, SM 마다 할당된 용량만 계산하면 144KB(L1 24KBx2 + 공유 96KB)였던 파스칼 보다 48KB나 줄은 것은 사실이다. 튜링은 SM 마다 쓸 수 있는 전체 용량이 96KB 뿐이다. 하지만 튜링의 SM은 파스칼의 그것 보다 쿠다 코어가 절반 뿐이라서 실질적인 용량은 더 늘었다고 보는 것이 맞다.

거기다 2개의 파티션 마다 L1 캐쉬가 종속되지도 않았으니 지연 시간에서도 더 유리한 구조가 됐다.

여기에 더해 늘어난 SM과 쿠다 코어 수 만큼 L2 캐쉬 용량까지 두 배나 늘어났기 때문에 같은 작업을 처리하더라도 파스칼 보다 작업 효율이 높을 수 밖에 없는 것이 튜링의 캐쉬와 공유 메모리 구조다.

튜링은 연산 체계의 효율을 개선하는 것과 더불어 연산 능력 자체에 대한 고민도 포함됐다.

그 중에서도 가장 눈에 띄는 변화는 볼타에서 도입한 INT32 정수 연산 유닛이 튜링에도 적용된 것인데 이유는 볼타와 동일하다. 정수 연산 시 유휴 상태로 전환되는 부동소수점 연산 때문이다.

엔비디아에 따르면 평균적으로 100개의 부동소수점 연산을 처리할 때 마다 36개의 정수 연산을 요구하게 된다고 한다. 그때마다 부동소수 연산을 정지시키느니 정수와 부동소수 연산을 동시에 처리할 수 있게 만들어 유휴 상태로 발생하는 계산 지연이 없도록 만들어졌다.

INT32 정수 연산 유닛은 FP32 쿠다 코어와 동일한 개수로 구성됐다. 효율 개선만을 위한 선택이기 보다 정수 연산을 필요로 하는 분야까지 고려한 설계로 판단된다.

또 다른 변화는 혼합 정밀도(mixed-precision)다. 이 기술은 마지막 파스칼 최후의 아키텍처로 무장한 P100에서 처음 도입된 것으로, FP32 연산이 기본인 쿠다 코어로 FP16 연산을 2ë°° 빨리 처리하는 것이다.이 때문에 튜링(RTX 2080 Ti, 레퍼런스)은 26.9 TFLOPS의 FP16 연산 성능을 제공할 수 있게 됐다. 

지금까지 소개한 내용들을 종합해 쿠다 코어 당 약 50%에 이르는 쉐이딩 성능을 개선했다는 것이 엔비디아의 주장이다.

이러한 수치가 게임 프레임에 그대로 반영되는 것은 아니겠지만 2944개의 쿠다 코어를 가진 RTX 2080이 3584개의 쿠다 코어를 내장한 GTX 1080 Ti에 근접한 FP32 성능으로 측정된 걸 보면 분명 의미 있는 결과를 기대할 수 있지 않을까 생각된다.

더불어 튜링에 적용된 INT32 정수 연산은 SHA2-256 같은 해싱 작업 시 GTX 1080 Ti의 처리량을 가볍게 뛰어넘는 것으로 확인됐다. RTX 2080만 하더라도 35% 정도 작업량이 많은데 RTX 2080 Ti랑 비교하면 그 차이는 1.8배나 벌어졌다.

해싱 작업이 많은 분야에선 튜링이 꽤 반가울 것이다. 

 

■ 딥러닝을 위한 텐서 코어, 게임에도 필요하다

아키텍처 기준으로 생각하면 볼타의 다음 세대나 마찬가지인 튜링에 텐서 코어가 적용된 것은 당연한 것이다.

하지만, 게임이 주가 되는 RTX 시리즈를 생각하면 텐서 코어의 필요성을 이해 게이머는 많지 않기 때문에 이에 대한 불만이 적지 않을 수 있다.

볼타에 적용된 텐서 코어는 지원하지 않는 INT8과 INT4 추론이 가능해 졌고 파스칼에선 불가능한 107.6 TFLOPS의 FP16 연산이 가능한데도 말이다.

그래서 엔비디아는 텐서 코어를 게임에 활용할 방법을 제시했다.

바로, 딥러닝 기반의 화질 개선 기술인 NGX(Neural Graphics Acceleration)라는 기술인데 그 중 대표적인 기술인 DLSS, 딥러닝 슈퍼샘플링(DEEP LEARNING SUPER-SAMPLING)이 게임을 위해 개발됐다.

DLSS는 엔비디아가 학습시킨 고화질 이미지를 바탕으로, 사용자 PC에서 출력된 게임 화면을 분석해, AA(AntiAliasing)가 필요한 부분을 개선하는 방식이다. 화질의 개선 결과는 학습된 수준에 따라 달라지기 때문에 모든 게임에 적용은 불가능하고 DLSS를 지원하는 게임에서만 적용이 가능하다.

대신 64 배율 이상의 슈퍼 샘플링 이미지를 바탕으로 트레이닝 시키기 때문에 최적의 경우 이에 근접한 화질을 제공받을 수 있고 전통적인 AA 기반의 작업 부하가 텐서 코어로 옮겨가기 때문에 화질 개선은 물론 프레임 향상도 기대할 수 있다.

엔비디아는 이러한 장점들을 TAA(Temporal Anti-Aliasing)와 비교해 설명했다. TAA는 전통적인 AA 기술이면서 샘플 개수를 절반이라 성능 저하도 낮은 편인데 DLSS는 이보다 더 좋다는 것이다. TAA 종특으로 알려진 블러나 뭉개짐 현상도 거의 없다고 한다. 

실제로 DLSS를 지원하는 파이널 판타지 XV 벤치마크로 확인해 보면 엔비디아 주장 대로 나타난다. DLSS가 적용된 화면에선 TAA 같은 뭉개짐도 발견되지 않았다.

트레이닝이 아직 덜 된 탓인지 AA 성능 자체는 TAA가 조금 더 나은 듯 했지만 비교 이미지에 정리 했듯이 워낙 점수 차이가 커서 TAA 보다 DLSS에 손이 갈 수 밖에 없을 것이다. AA 품질을 떠나 텐서 코어를 활용해서 프레임 하락을 개선할 수 있다는 점 만으로도 게이머에겐 기쁜 소식이 아닐 수 없을 것 같다.

참고로, RTX 2080 Ti에서 4K로 TAA를 적용한 점수는 4282점, DLSS를 적용한 점수는 5714점으로 나타났다.

DLSS가 포함된 NGX에는 누군가의 장난으로 손상되거나 특정 부분을 지우고 메워주는 인페인팅과 일반적인 영상으로 슈퍼 슬로우모션을 실현하는 AI 슬로-모, 이미지나 비디오 해상도를 2배나 4배 또는 8배율까지 향상시켜주는 AI 슈퍼 Rez도 혁신적인 기술들도 포함된다.

그러나 주로 단일 이미지나 동영상 처리를 위한 기술이다 보니 실시간 처리가 필수인 게임에는 직접 활용되긴 어려울 것으로 판단된다. 수 ms 이내로 처리가 가능하다면야 랜더링 해상도를 높이는 대신 AI 슈퍼 Rez를 활용할 수도 있겠지만 현실에선 힘들지 않을까 생각한다. 

 

■ 레이트레이싱, 이제는 현실이다

튜링 GPU 아키텍처가 주목 받은 가장 큰 이유는 레이트레이싱 때문이다.

레이트레이싱은 객체를 배치하고 평면화 시킨 뒤 빛과 그림자를 덧붙이는 지금까지의 그래픽 파이프라인과 다르게 빛을 추적하고 그로 인한 그림자와 반사, 굴절, 색 변화까지 현실 그대로 계산해 표현하는 기법이다.

현실과 구분이 안될 정도의 영화 속 컴퓨터 그래픽도 다 레이트레이싱 기법으로 랜더링 된 것들인데 워낙 워크로드가 심한 기법이다 보니 지금까지는 오프라인 랜더링에만 주로 사용되어 왔다.

일부 GPU로 가속한 레이트레이싱 기법도 있었지만 싱글 GPU로 처리할 수준도 아니다 보니 오프라인 랜더링과 다를 바 없었고 품질도 원하는 만큼이 아니었다.

엔비디아는 그런 레이트레이싱을 실시간 랜더링으로 실현하기 위해 레스터 기반의 기존 그래픽 파이프라인의 일부 작업을 레이트레이싱으로 처리하게 만들었다.

속도가 빠른 레스터 기반의 그래픽 랜더링은 그대로 가져가면서 그림자와 전역 조명, 투명이나 반투명, 반사 같은 작업들만 선택적으로 레이트레이싱으로 처리해 최종 프레임에서 결과물을 병합하는 방식이다.

하지만 여기에 사용하는 레이트레이싱도 상당한 작업량을 요구하기 때문에 이를 가속화 할 수 있는 구조와 전용 하드웨어가 필요했는데 그래서 채택한 것이 BVH와 RT 코어다. 

BVH는 대표적인 레이트레이싱 기법 중 하나로써 광선이 닿은 트라이앵글을 보다 쉽게 찾기 위한 것이다.

지오메트리를 상자 단위로 둘러싸고 큰 상자 부터 작은 상자 단위로 광선이 닿을 트라이앵글을 찾는 방식이다. 이렇게 하면 모든 트라이앵글을 확인하지 않아도 광선이 닿는 트라이앵글을 찾아갈 수 있어 작업량을 크게 낮출 수 있다.

튜링에 포함된 RT 코어는 그런 BVH 알고리즘과 교차 테스트를 하드웨어적으로 처리하기 위해 만들어졌다.

파스칼이나 ê·¸ 이전 세대도 RT 코어 같은 전용 하드웨어 없이 같은 방식을 구현할 수는 있다. 하지만 광선 하나당 수천 개의 명령을 처리해야 하는 수준이라서 실시간 랜더링은 불가능에 가깝다고 ë³´ë©´ 되고 그래서 RT 코어가 필요한 것이다. 

레이트레이싱 작업을 가속화 할 수 있는 구조와 이를 처리할 전용 유닛까지 갖춘 튜링도 한계는 있다.

레이트레이싱의 품질을 결정하는 픽셀당 샘플 수, 즉 광선이 하나 뿐이라서 원본 그대로는 사용하기 어렵다. 1SPP로 계산된 그림자는 마지 외형 정도만 추정될 수준의 점들로 구성된 노이즈 같은 느낌이기 때문에 필터링 작업을 거쳐야만 한다.

이렇게 하면 낮은 샘플 수준으로도 평균 이상의 품질을 레이트레이싱 기반으로 표현할 수 있기 때문에 실시간 레이트레이싱을 실현한 모든 기법의 한계이자 현실적인 선택으로 받아들여지고 있다. 엔비디아는 이러한 노이즈 개선을 위해 AI 기반과 비AI 기반의 알고리즘을 모두 사용하고 있다.

레이트레이싱이 게임으로 도입되면 그림자나 반사, 굴절, 광원 효과에서 많은 변화를 경험할 수 있게 된다. RTX 시리즈 발표에서 시연된 배틀필드 V의 반사나 쉐도우 오브 툼레이더의 그림자 등 여러 부분에서 기존 과는 차별화 된 그래픽을 경험할 수 있게 된다.

이런 이유 때문인지 엔비디아의 레이트레이싱 기술(RTX)을 게임에 적용하겠다고 나선 개발사와 이를 적용하기로 결정된 게임만 해도 이미 출시된 게임을 모두 합해 21개나 된다.

엔비디아의 RTX 기술이 아니더라도 마이크로소프트가 DirectX Raytracing(DXR)을 발표하며 레이트레이싱 도입에 적극적으로 나선 상황이어서 이를 지원하는 게임을 더 늘어날 전망인데 이런 전망이 실현되려면 한가지 전제가 필요하다.

레이트레이싱을 적용하고도 원활한 프레임을 제공할 수 있느냐 말이다.

아쉽게도 지금은 이에 대한 답을 찾을 수 없다. RTX가 적용된 첫 번째 타이틀인 쉐도우 오브 툼레이더 조차 아직 패치를 공개하지 않아 실제 게임에서의 프레임 수준을 확인할 방법이 없다. 지금은 엔비디아가 시연한 스타워즈 반사 데모가 전부라서 이를 통해 게임 프레임을 유추할 수 밖에 없는 상황이다.

이 영상은 스타워즈 반사 데모를 파스칼 기반의 지포스 GTX 1080 Ti와 튜링인 RTX 2080 그리고 RTX 2080 Ti로 처리한 것이다. 보면 알겠지만 지포스 GTX 1080 Ti는 답이 없고 튜링 계열들만 어느 정도 이해할 수준인데 최소 60fps 이상을 원한다면 RTX 2080 Ti도 1440p에 아쉬움이 남는다.

랜더링하는 씬에 따라 프레임은 달라지겠지만 60fps 이상의 안정권으로는 1080p가 맞지 않을까 생각된다.  

 

■ CPU에서 벗어나자, 새로운 쉐이딩 기술들

엔비디아는 언제나 새로운 그래픽 기법이나 이를 적용한 하드웨어를 만들어 냈다. 튜링에서도 그러한 변화에 도전 했는데 그 중 하나가 메시 쉐이딩이다.

메쉬 쉐이딩은 평면화 전 단계와 관련이 있다. 평면화 전 단계의 작업 자체도 동일하고 목적도 동일 하지만 작업 방식이 다르다.

버텍스와 테셀레이션, 지오메트리 쉐이더로 구성된 기존 방식은 단일 스레드 모델을 사용하기 때문에 오브젝트 단위로 드로우 콜이 발생한다. 이렇게 되면 오브적트 마다 CPU가 작업에 나서야 하기 때문에 오브젝트가 늘어나는 만큼 CPU 부하는 커질 수 밖에 없다.

엔비디아가 도입한 메쉬 쉐이딩은 리스트 단위로 오브젝트에 대한 드로우 콜이 발생한다. 한개가 아니라 여러 개의 오브젝트가 한번의 콜로 처리 되기 때문에 CPU에 대한 작업 부하를 크게 경감할 수 있고 GPU 성능이 받쳐 주는 한 최대한 많은 오브젝트를 화면에 배치할 수 있게 된다.

사전에 계산해야 했던 오브젝트 마다의 디테일 레벨(LOD)이나 보이지 않는 부분에 대한 컬링도 메쉬 쉐이더의 전단계로 추가된 테스크 쉐이더에서 처리할 수 있다.

엔비디아가 제공한 메쉬 쉐이딩 데모를 실행해 보면 수많은 오브젝트가 깔린 상황에서 기존 방식과 메쉬 쉐이딩 간 프레임 차이를 극명하게 확인할 수 있는데 메쉬 쉐이딩은 LOD 단계를 동적으로 조절할 수 있기 때문에 기존 방식의 최상위 디테일 수준의 품질로 최하위 디테일의 프레임 수준을 실현할 수 있는 것으로 확인됐다.

메쉬 쉐이딩 외에도 VR 관련 작업 부하를 개선하기 위해 만들었던 MRS와 LMS의 발전된 버전인 가변 비율 쉐이딩(VRS)도 튜링에 새롭게 추가됐다.

VRS를 간단히 설명하면 최대 16개까지 영역 단위로 쉐이딩 레벨을 조절했던 것을 16x16 픽셀 단위로 세부화 한 것이며 이 기술을 이용하면 품질을 크게 낮추지 않고서도 쉐이딩 부하를 개선할 수가 있다.

 

■ 가장 진보한 GPU 아키텍처, 새로운 세상에 빛이 될까?

엔비디아 튜링은 가장 진보한 GPU 아키텍처다. 지금까지 출시된 그 어떤 GPU 아키텍처 보다 진보한 구조를 가지고 태어났다. HBM을 기반으로 설계된 볼타와 비교해도 FP64만 제외하면 성능 차이가 크지도 않고 텐서 코어는 더 많은 정밀도도 지원한다.

RT코어를 통해 실시간 레이트레이싱을 현실화 했다는 점에서도 기존 GPU 아키텍처와는 비교할 수 없는 것이 튜링의 가치다.

하지만, 그렇게 앞서 나간 튜링의 모든 것이 현실에서 가치를 인정 받을 수 있을진 의문이다.

텐서 코어를 활용한 딥러닝 기반의 DLSS도 그렇고 RT코어를 이용한 실시간 레이트레이싱도 최초로 시도된 것이라서 소비자들의 눈높이와 차이가 있을 수도 있다. 이 때문에 새로운 도전에 대한 정확한 정보 전달이 필요하지만 우리는 아직 모르는 것들이 많다.

결국 직접 경험해 보고 판단할 수 밖에 없기 때문에 소비자들의 기대치에 부응할 수 있을지는 지켜봐야 할 것 같다. 그래도 전통적인 그래픽 성능에선 믿고 쓰는 엔비디아니 크게 걱정하지 않아도 될 것이다. 이와 관련된 부분은 다음 기사에서 다루도록 하겠다.

댓글

뻔한 스토리인데,
업계에선, 1개 회사가 독주하는 상태를 싫어해.
때문에, 보나마나 업계에서는 nVIDIA의 힘을 빼려 들거고,
nVIDIA는 혼자 힘으로 살아남기 위해, 신기술을 개발하려 노력하겠지. 그 결과가 레이트레이싱이고.
하지만,
암드에서는 라데온에 무료 레이트레이싱 이라는 이름을 내걸고, 결함있는 가짜기술을 배포하겠지.--;.
업계에서는 암드에 박수를 쳐댈꺼고.
그리고, 그걸로 대응이 충분치 않다면, 업계에서는 NVIDIA로부터 레이트레이싱 주도권을 빼앗기 위해서,
표준화 명목으로, 표준기술 레이트레이싱 규격을 만들어 낼꺼야. 물론 암드 라데온이 제시하는 기술을 표준으로 사용하겠지. ;;;
그마저도 힘들면, MS를 동원해서 DX13을 개발하겠지.
너무 뻔한 전개다.