튜링 GPU 아키텍처 심화 지포스 RTX 그래픽카드에 GPU는 세그먼트에 따라 TU102, TU104, TU106의 튜링 GPU를 탑재하게 됩니다. 이 중에서도 현재 튜링 아키텍처 최상의 GPU로 알려진 TU102 GPU가 본 섹션의 주인공입니다. TU104, TU106 GPU의 경우 기본적인 아키텍처 구조는 TU102와 유사하지만, 일부 유닛 구성과 메모리에서 축소된 형태를 가지게 됩니다.
▲ TU102 GPU의 블록 다이어그램(Block Diagram) TU102 GPU은 6개의 GPC(Graphics Processing Clusters), 36개의 TPC(Texture Processing Clusters)와 72개의 SM(Streaming Multiprocessors) 구조로 설계되었습니다. 각 GPC에는 전용 래스터 엔진(Raster Engine)과 6개의 TPC를 포함하고 있으며, SM 1개는 64개의 CUDA 코어, 8개의 텐서 코어, 256 KB의 레지스터 파일, 4개의 텍스처 유닛과 96 KB L1/공유 메모리로 구성됩니다. 이를 종합해보면 풀칩(full chip)의 TU102 GPU는 4,608개의 CUDA 코어와 576개의 텐서 코어, 72개의 RT 코어, 288개의 텍스처 유닛(TMUs), 96 ROPs를 가지게 되는 것이죠. 여기서 RTX의 핵심 기술인 레이트레이싱 가속 연산은 각 SM 내에서 RT 코어 프로세싱 엔진에 의해 수행됩니다. 또한, 기존 아키텍처에서 지원되지 않던 NVLink가 지원됩니다. 튜링의 TU102와 TU104 GPU에는 2세대 NVLink(2nd Gen. NVLink)가 포함되어 있습니다.(RTX 2080 Ti와 RTX 2080이 이에 해당됩니다) NVLink를 사용하면, 튜링 GPU가 각 GPU의 메모리에 직접 접근할 수 있으므로, GPU 간 통신 속도가 훨씬 빨라지게 되며, 여러 GPU의 메모리를 결합하여 더 큰 데이터 세트 처리와 메모리 지원이 가능합니다. TU102는 총 100 GB/s의 양방향 대역폭을 지원하게 되며, 각 방향으로 최대 25 GB/s 속도로 전달할 수 있는 2개의 NVLink x8 링크가 포함되어 있습니다.
튜링의 SM 아키텍처 TURING STREAMING MULTIPROCESSOR ARCHITECTURE 튜링 아키텍처는 볼타의 GV100 SM 아키텍처에 도입된 많은 기능을 통합하여 새로운 SM 설계를 갖췄습니다. TPC 당 2개의 SM이 포함되며, 각 SM에는 총 64개의 FP32 코어와 INT32 코어가 존재합니다. 이에 비해 파스칼 GP100 시리즈 GPU는 TPC 당 1개의 SM과 각 SM에는 128개의 FP32 코어로 큰 차이를 보입니다. 튜링 SM은 FP32와 INT32 작업을 동시에 수행할 수 있으며, 볼타 GV100 GPU와 유사한 형태의 독립 스레드 스케줄링을 지원합니다.
▲ 튜링 SM 아키텍처(Turing SM Architecture) 튜링 SM은 4개의 프로세싱 블록으로 분할되며, 각 블록은 16개의 FP32 코어, 16개의 INT32 코어, 2개의 텐서 코어, 1개의 워프 스케줄러(Warp Scheduler)과 디스패치 유닛(Dispatch)으로 구성됩니다. 각 블록에는 새로운 L0 명령어 캐시와 64 KB 레지스터 파일이 포함됩니다. 4개의 프로세싱 블록은 96 KB L1 데이터 캐시/공유 메모리(Shared Memory)를 공유하게 됩니다. 기존 전통적인 방식의 그래픽 워크로드는 96 KB L1/공유 메모리를 64 KB의 전용 그래픽 셰이더 RAM과 32 KB의 텍스처 캐시 및 레지스터 파일 유출 영역으로 분할합니다. 컴퓨트(Compute) 워크로드는 96 KB를 32 KB 공유 메모리와 64 KB L1 캐시 또는 64 KB 공유 메모리와 32 KB L1 캐시로 나눌 수 있죠.
현대의 셰이더 워크로드 부하는 일반적으로 FADD 또는 FMAD와 같은 FP 산술 명령이 혼합되어 있는 형태이며 여기에는 데이터 주소 지정 및 가져오기를 위한 정수 추가, 결과 처리를 위한 부동소수점 비교 또는 최소/최댓값 등의 간단한 명령어로 구성됩니다. 위 이미지와 같이 실제로 수많은 워크로드를 프로파일링 해보면 100개의 부동소수점(FP) 연산에 대해 평균 36개의 정수(INT) 연산이 일어나고 있습니다. 이전의 셰이더 아키텍처는 이러한 비FP 산술 명령 중 하나가 실행되면, 부동소수점 연산을 위한 데이터 경로가 유휴 상태로 머무르게 됩니다.(즉 비FP 산술 명령이 떨어지면 손을 놓아버리는 상황) 하지만, 튜링 GPU는 모든 CUDA에 두 번째의 병렬 실행 단위를 추가하여 이러한 연산(FP+비FP/INT)을 동시에 실행합니다.
▲ 위 이미지는 튜링 SM의 새로운 통합 L1 데이터 캐시와 공유 메모리 아키텍처 구성이 어떻게 성능을 향상시킬 수 있는지 보여줍니다. 또한 튜링 SM은 공유 메모리, L1 캐시와 텍스처 캐싱을 위한 새로운 통합 아키텍처를 도입했습니다. 이 통합 설계를 통해 L1 캐시가 자원을 활용할 수 있게 되고, 파스칼에 비해 TPC 당 두 배의 대역폭으로 늘릴 수 있습니다. 공유 메모리 할당의 경우 모든 공유 메모리 용량을 사용하지 않을 때에는 더 커지도록 재구성 할 수도 있습니다. 튜링 L1의 크기는 최대 64 KB까지 지정할 수 있으며, SM 당 32 KB의 공유 메모리와 결합하거나(64 KB + 32KB) 혹은 L1 크기를 32 KB로 줄여 64 KB를 공유 메모리로 할당할 수 있습니다. 그리고 L2 캐시 용량 역시 두 배로 증가한 6 MB를 갖췄습니다.
▲ 튜링 GPU는 다양한 워크로드에서 파스칼보다 빠른 셰이딩 성능을 제공한다 SM의 전반적인 변화를 통해 개선된 튜링은 CUDA 코어당 50% 이상의 성능이 향상되었습니다. 위 그래프를 통해 최신 게임 및 3D 애플리케이션에서의 워크로드 성능 테스트 결과를 확인하실 수 있습니다.
튜링 텐서 코어 | TURING TENSOR CORES 튜링 GPU에는 볼타 GV100 GPU에 처음 도입된 텐서 코어의 향상된 버전이 포함되어 있습니다. 튜링의 텐서 코어 설계는 인퍼런싱(Inferencing) 워크로드에 INT8과 INT4 정밀 모드가 추가되었습니다. 반면, FP16은 높은 정밀도를 요구하는 워크로드에 지원됩니다. 게이밍용 그래픽카드로서는 최초로 GPU에 텐서 코어를 도입함으로써, 게임 애플리케이션에 대한 실시간 딥러닝을 적용할 수 있게 되었습니다. 이를 통해 그래픽, 렌더링, 다양한 유형의 애플리케이션 성능을 향상시키는 엔비디아 NGX 신경 서비스(Neural Service)의 AI 기능을 가속화합니다. NGX AI 기능의 대표적인 예로는 딥러닝 슈퍼샘플링(DLSS), AI InPainting, AI Super Rez, AI Slow-Mo 등이 있습니다.
튜링 텐서 코어는 신경망 트레이닝(Training)/인퍼런싱(Inferencing)과 매트릭스 곱셈 연산을 가속화합니다. 텐서 코어는 특히 인퍼런싱에 탁월한 성능을 발휘하는데, 주어진 입력을 기반으로 트레이닝된 DNN(심층 신경망)을 거쳐 유용하고 관련성 있는 정보를 뽑아냅니다. 인퍼런싱 작업 결과의 예로는 페이스북(facebook) 사진 속 친구들의 얼굴 식별, 자율주행자동차의 보행자/위험요소 식별과 분류, 실시간 번역, 온라인 소매점 및 소셜 미디어 시스템에서 사용자 맞춤형 추천 시스템 등이 있습니다. 그리고 TU102 GPU에는 SM 당 8개(각 프로세싱 블록 당 2개)로 총 576개의 텐서 코어가 존재합니다. 각 텐서 코어는 FP16 입력을 사용하여 클록 당 최대 64개의 부동소수점 FMA(Fused multiply-add) 작업을 수행할 수 있습니다. 또한 SM의 텐서 코어는 클록 당 총 512개의 FP16 곱셈 및 더하기 연산을 수행하거나 클록 당 총 1,024개의 FP 연산을 수행합니다. 새로운 INT8 정밀 모드는 클록 당 2,048 정수 연산을 수행할 수 있습니다. 정리하면, 튜링 텐서 코어는 매트릭스 작업에 상당한 속도를 제공하며 신경 그래픽 기능 외에도 딥러닝 트레이닝과 인퍼런싱 작업에 모두에 사용됩니다. 튜링의 메모리 아키텍처와 디스플레이 그래픽카드의 메모리 인터페이스 시스템은 애플리케이션 성능을 가속화하는데 매우 중요한 요소입니다. 튜링은 메인 메모리, 캐시 메모리와 압축 아키텍처를 모두 개선하여 메모리 대역폭을 늘리고 액세스 지연시간(Latency)를 줄였습니다. 반면, 새로운 디스플레이 기술에는 비디오 인코딩/디코딩 기능과 고해상도 및 HDR, 고급 VR 디스플레이, 비디오 스트리밍, 8K 영상 제작 및 관련 애플리케이션이 포함됩니다. 지금부터 하나씩 설명해보도록 하겠습니다.
1. GDDR6 메모리 시스템 튜링은 GDDR6 메모리를 지원하는 최초의 GPU 아키텍처입니다. 최근의 PC 게이밍 환경은 디스플레이 해상도가 계속 증가하고 셰이더 기능과 렌더링 기술이 더욱 복잡해지면서 메모리 대역폭(bandwidth)과 용량이 GPU 성능에 굉장히 많은 영향을 끼치게 되었습니다. GPU 입장에서는 가능한 최고의 프레임과 연산 속도를 유지하기 위해 더 많은 메모리 대역폭과 용량이 필요하다는 뜻이겠죠. GDDR6는 고대역폭의 현시점에서 가장 진보된 메모리 설계의 GDDR DRAM 메모리입니다. 튜링 GPU의 GDDR6 메모리 인터페이스 회로는 고속 SerDes와 RF 기술로 강화되었으며, 전력 효율성 및 노이즈 감소를 위해 새롭게 설계되었습니다. 여기에는 프로세스, 온도, 전압 등의 요소로 인한 노이즈와 변동을 최소화할 수 있도록 회로와 신호(signal) 개선 사항이 추가되었습니다. 또한 광범위한 클록 게이팅(clock gating)을 사용하여 사용률이 낮을 때는 전력 소비를 최소화함으로써 전반적인 전력 효율성을 높입니다. 이전 세대의 파스칼 GPU에 사용되었던 GDDR5X와 비교하면 20% 향상된 전력 효율성을 확보했고, 14 Gbps 전송 속도(유효 메모리 클록: 14,000 MHz)를 달성했습니다. 2. L2 캐시와 ROPs 튜링 GPU는 새로운 GDDR6 메모리 시스템과 더불어 더 크고 빠른 L2 캐시가 추가되었습니다. TU102 GPU는 TITAN Xp의 GP102 GPU에서 제공되었던 3 MB L2 캐시의 두 배인 6 MB L2 캐시가 제공됩니다. 또한 TU102는 GP102보다 상당히 높은 L2 캐시 대역폭을 제공합니다. 다음은 ROP입니다. 이전 세대의 엔비디아 GPU와 마찬가지로 튜링의 각 ROP 파티션에는 8개의 ROP 장치가 포함되어 있으며 각 장치는 단일 컬러 샘플을 처리할 수 있습니다. 전체 TU102 칩에는 총 96개의 ROP를 위해 12개의 ROP 파티션이 존재합니다. 3. 튜링 메모리 압축(Turing Memory Compression) 엔비디아 GPU는 여러 무손실 메모리 압축 기술을 사용합니다. 여기에는 GPU 압축 엔진에 포함된 다양한 알고리즘을 통해 데이터 압축의 가장 효율적인 방법을 결정하게 되는데, 이를 통해 프레임 버퍼 메모리에 기록되는 과정의 메모리 대역폭 요구치를 줄일 수 있습니다. 다음 메모리에 기록되고, L2 캐시로 전송되는 데이터의 양이 감소하여 클라이언트(예: 텍스처 유닛)와 프레임 버퍼 간에 전송되는 데이터의 양도 줄어들게 됩니다.
▲ RTX 2080 Ti의 50% 향상된 유효 메모리 대역폭: TU102 기반 RTX 2080 Ti의 메모리 시스템은 압축(트래픽 감소) 알고리즘 개선을 통해 파스칼 GP102 기반 GTX 1080 Ti보다 약 50%의 유효 대역폭 향상을 제공할 수 있습니다. 튜링은 파스칼의 메모리 압축 알고리즘을 더욱 발전시켜 GDDR6의 원시(raw) 데이터 전송 속도 이상으로 유효 대역폭을 한층 강화했습니다. 위 그래프에서 볼 수 있듯이 대역폭 증가와 트래픽 감소는 파스칼과 비교하여 50% 이상의 유효 대역폭 증가로 이어지게 됩니다. 메모리 대역폭의 역할을 고려했을 때 이와 같은 특징은 튜링 SM 아키텍처의 성능을 뒷받침하는 데 매우 중요한 요소가 되어줍니다. 4. 비디오/디스플레이 엔진 PC 게이밍 환경에서 고해상도 디스플레이에 대한 수요는 매해 증가하고 있는 추세입니다. 최근 조금씩 등장하고 있는 8K(7680x4320) 해상도의 경우 4K(3840x2160)보다 4배 더 많은 픽셀을 필요로 하는 상황이죠. 하지만, 게이머와 하드웨어 마니아는 더욱 선명하고 부드러운 이미지를 경험하기 위해 더 높은 해상도와 고주사율의 디스플레이를 원합니다. 튜링 GPU에는 새로운 디스플레이를 위해 설계된 엔진이 포함되어 더 높은 해상도와 주사율 그리고 HDR을 지원합니다.
튜링은 디스플레이포트(DisplayPort) 1.4a를 지원하여 8K 해상도에서 60 Hz를 제공하고, VESA의 디스플레이 스트림 압축(Display Stream Compression, DSC) 1.2 기술을 사용하여 시각적으로 손실 없는 높은 압축을 제공합니다. 튜링 GPU는 디스플레이 당 하나의 케이블로 2개의 8K 디스플레이를 60 Hz로 구동할 수 있습니다. 8K 해상도는 USB-C를 통해 전송할 수 있으며, 새로운 디스플레이 엔진은 디스플레이 파이프라인에서 HDR 처리를 기본으로 지원합니다. 톤 매핑(Tone mapping)도 HDR 파이프라인에 추가되었습니다. 톤 매핑은 표준 동적 범위(Standard Dynamic Range, SDR) 디스플레이에서 높은 동적 이미지(High Dynamic Range, HDR)의 모양을 대략적으로 보여주는 데 사용되는 기술입니다. 튜링은 ITU-R 권장사항 BT.2100 표준에 정의된 톤 매핑을 공식 지원하여 다양한 HDR 디스플레이에서의 컬러 편차를 방지합니다. 또한 튜링 GPU는 H.265(HEVC) 8K 인코딩을 30 fps로 지원하는 향상된 NVENC 인코더 유닛을 제공합니다. 새로운 NVENC 인코더는 HEVC의 경우 최대 25%의 비트레이트 절감 효과를 제공하고 H.264는 최대 15%의 비트레이트 절감 효과를 제공합니다. NVDEC 디코더도 30 fps에서 HEVC YUV444 10/12b HDR 디코딩을 지원하도록 업데이트되었으며, 이전 파스칼 GPU에 비해 인코딩 품질을 향상시켰습니다.
▲ x264 소프트웨어, 파스칼, 튜링의 비디오 기능 및 품질 비교 위 그림은 트위치TV(TwitchTV)와 유튜브(YouTube)의 일반적인 스트리밍 설정에서 튜링의 비디오 인코더가 x264 소프트웨어 기반 인코더의 품질을 능가하며, CPU 사용률을 크게 낮춘다는 것을 증명합니다. 일반적인 CPU 환경에서 4K 스트리밍 인코딩은 너무 많은 워크로드를 보여주지만, 튜링의 인코더는 4K 스트리밍을 가능하게 합니다.
5. USB-C와 버추얼링크(VirtualLink) PC에서 VR 헤드셋을 사용하기 위해서는 너무 많은 케이블을 연결해야 하는 불편함이 있습니다. 여기에는 GPU에서 이미지 데이터를 헤드셋의 디스플레이로 전송하는 디스플레이 케이블, 헤드셋에 전원을 공급하는 케이블, 카메라 스트림을 전송하고 헤드셋에서 포지션 정보를 읽어오는 USB 케이블 등이 필요합니다. 다양한 케이블 수는 결국 사용자에게 불편함을 야기하고 헤드셋 사용 시 이동성을 약화시키죠. 결국 이런 문제로 인해 헤드셋 제조사는 디자인을 더 복잡하게 만들고 크기를 키워야만 했습니다. 하지만, 튜링 GPU에는 USB 타입 C와 버추얼링크를 지원합니다. 버추얼링크는 소프트웨어와 헤드셋 제조사를 모두 포함하는 새로운 개방형 업계 표준이며 단일 USB-C 커넥터를 통해 VR 헤드셋 구동에 필요한 전원, 디스플레이 정보 및 데이터를 모두 전달할 수 있습니다. 덧붙여, 버추얼링크는 모션 트래킹을 위한 SuperSpeed USB 3 링크와 함께 4개 레인의 HBR3(High Bit Rate 3) DisplayPort도 동시에 지원합니다. 정리하면, 버추얼링크를 통해 VR 헤드셋의 설치 번거로움을 덜어줄 뿐만 아니라 VR을 더 많은 장치에 제공할 수 있습니다. 6. 엔비디아 NVLink 기존의 엔비디아 GPU는 SLI 브리지(SLI Bridge) 기술의 단일 다중 입력/출력(MIO) 인터페이스를 사용하여 최종 렌더링된 프레임을 다른 GPU에 물리적으로 전송했습니다. 그리고 파스칼 아키텍처 GPU는 더 빠른 듀얼 MIO 인터페이스를 사용하여 SLI 브리지를 개선했으며, GPU 간의 대역폭을 향상시키고 더 높은 해상도 출력을 가능하게 했습니다. 튜링 TU102와 TU104 GPU는 SLI GPU 간 데이터 전송을 위해 기존의 MIO 및 PCIe 인터페이스 대신 NVLink를 사용합니다. 튜링 TU102 GPU는 2개의 x8 2세대 NVLink를 포함하고, 튜링 TU104 GPU는 1개의 x8 2세대 NVLink를 갖췄습니다. 각 연결은 두 개의 GPU(50 GB/s 양방향 대역폭) 사이에서 방향 당 25 GB/s의 최대 대역폭을 제공할 수 있습니다. 또한, TU102에 있는 두 링크는 각 방향으로 50 GB/s, 양방향으로 100 GB/s를 제공합니다. 하지만 이러한 NVLink 구성은 2-way SLI에서 지원되며, 3-way 및 4-way SLI 구성은 지원되지 않습니다.
▲ 이전의 SLI 브리지와 비교하여 새로운 NVLink 브리지는 대역폭 증가를 통해 고급 구성의 디스플레이 배치(Topology)가 가능해졌습니다. |