하드웨어 뉴스

 

분류 하드웨어 뉴스 | VGA

AMD RDNA와 GCN GPU 아키텍처의 차이점: Radeon이 NVIDIA를 따라잡은 방법

작성자 정보

  • 작성자 AMD
  • 작성일

컨텐츠 정보

본문

7be1b0dcdb3718ff986cfa33166d0281_1621315145_3315.jpg
 



Big Navi 그래픽 카드의 출시와 함께 AMD는 마침내 고급 GPU 공간으로 돌아왔습니다. RDNA 2 설계는 컴퓨팅 및 그래픽 파이프 라인 측면에서 RDNA 1과 거의 유사하지만 Infinity Cache 및 높은 부스트 클럭을 포함할 수 있는 몇 가지 변경 사항이 있습니다. 이 게시물에서는 Navi GPU가 GCN 아키텍처로 구동되는 기존 Vega 및 Polaris 부품과 어떻게 다른지에 대해 설명합니다.


* AMD RX 6800 리뷰: RTX 3080의 뒤꿈치를 깨물고 있습니다.


AMD의 GCN 아키텍처는 거의 10년 동안 Radeon 그래픽 카드를 지원했습니다. 디자인에는 강력한 Compute Engine, 하드웨어 스케줄러, 통합 메모리와 같은 장점이 있었지만 게임에는 그다지 효율적이지 않았습니다. 하드웨어 사용률은 최신 NVIDIA 부품에 비해 상당히 낮았으며 셰이더 엔진 당 처음 11개 CU 이후 확장이 급격히 떨어졌으며 전체적으로 GPU 당 64개 이상의 CU를 사용하는 것은 불가능했습니다.

 

7be1b0dcdb3718ff986cfa33166d0281_1621315325_4217.jpg
그 결과 강력한 컴퓨팅 아키텍처를 갖추고 있음에도 불구하고 AMD의 GCN GPU (Vega)는 NVIDIA의 하이엔드 게임 제품에 계속해서 패배하면서 훨씬 더 높은 전력을 소비했습니다. 


7be1b0dcdb3718ff986cfa33166d0281_1621315360_1484.jpg
 



"RDNA는 GPU 아키텍처이고 Navi는 이를 사용하여 구축된 그래픽 프로세서의 코드명입니다. 마찬가지로 GCN은 아키텍처였고 Vega와 Polaris는 코드명입니다."


Navi 10 및 Navi 14 GPU (Radeon RX 5500 XT, 5600 XT 및 5700 / XT)를 지원하는 1세대 RDNA 아키텍처는 GCN과 동일한 빌딩 블록을 기반으로 합니다. 주소 계산 및 제어를 위한 몇 개의 전용 스칼라가 있는 벡터 프로세서 흐름, 별도의 컴퓨팅 및 그래픽 파이프 라인이 비동기 적으로 실행됩니다. 스트림 프로세서라고 하는 ALU는 연산 능력을 제공하고 명령 프로세서 (ACE와 함께)는 연산 장치 당 워크로드 스케줄링을 처리합니다.


핵심적인 차이점은 RDNA가 더 높은 IPC, 더 낮은 지연 시간 및 더 나은 효율성을 위해 GCN의 기본 구성 요소를 재구성한다는 것입니다. 이것이 Navi의 모든 것입니다. 훨씬 적은 하드웨어로 훨씬 더 많은 일을 합니다!


AMD GCN: 강력하지만 활용도가 낮음


AMD의 GCN 그래픽 아키텍처는 컴퓨팅 유닛 당 64개의 웨이브 프론트 또는 작업 항목 (및 ALU / 코어)으로 구성되었습니다. 이들은 각각 16개의 ALU (SP)를 포함하는 4개의 SIMD (다중 데이터 유형에 대한 단일 명령어)로 나뉩니다.


7be1b0dcdb3718ff986cfa33166d0281_1621315415_8977.png



여기에서 대부분의 사람들이 혼란스러워합니다. 예, 스케줄러가 4주기마다 새로운 웨이브 그룹을 발행할 수 있지만 한 번에 각 컴퓨팅 유닛은 64개 항목 웨이브 하나가 아닌 4개의 64 항목 웨이브에서도 작동합니다. 불도저와 마찬가지로 목표는 병렬화를 극대화하는 것이었습니다. 동시에 GCN은 비 순차적인 아키텍처가 아니었습니다. 웨이브 프론트 내의 명령은 여전히 주문에 따라 실행되었습니다. 차이점은 CU 또는 SIMD가 사용 가능한 네 가지 웨이브 중 하나로 전환할 수 있다는 것입니다.


* SIMD 란 무엇입니까? 어떻게 작동하며 SIMT와 어떻게 다릅니까?


이것이 그다지 효과적이지 않은 이유는 대부분의 게임이 더 짧은 작업 대기열을 사용하기 때문입니다. 그 이유는 4개의 웨이브 프론트 중 1 ~ 2개만 실행주기 당 포화 상태이기 때문입니다. 결과적으로 유사한 셰이더 수를 가진 경쟁 NVIDIA GPU는 Super-Scalar 아키텍처 덕분에 훨씬 빨랐으며 이러한 짧은 디스패치를 실행하는 데 1 ~ 2 사이클 만 걸렸습니다. 반면에 AMD는 추가 웨이브 프론트를 위한 공간이 있음에도 불구하고 다음 사이클을 위해 4사이클을 기다려야 했습니다.


"각 벡터는 여러 데이터 세트에서 동일한 명령어를 수행할 수 있습니다. 벡터 스케줄링은 항상 여러 항목에서 실행되는 하나의 명령이 있다는 것을 기반으로 작동합니다. 사용 가능한 세트가 하나 또는 두 개뿐이면 나머지 슬롯은 해당 주기 동안 유휴 상태가 됩니다."

7be1b0dcdb3718ff986cfa33166d0281_1621315474_2446.png


GCN 컴퓨팅 유닛


요약하자면 다른 많은 SIMD 설계와 마찬가지로 GCN 컴퓨팅 유닛은 한 번에 4개의 웨이브 프론트에서 작업했으며 이를 실행하는 데 4주기가 걸렸습니다. 이상적인 세계에서 이것은 한 파동에 소요되는 유효 시간이 한 사이클임을 의미합니다. 그러나 SIMD가 작동하는 방식 때문에 그렇지 않았고 CU는 종종 활용률이 낮았습니다.


* NVIDIA vs AMD 그래픽 카드: RDNA 및 Turing GPU 아키텍처 비교


AMD RDNA: 듀얼 컴퓨팅 아키텍처 및 Wave32


Navi에서 구현된 RDNA 아키텍처는 32개의 작업 항목이 있는 더 좁은 웨이브 프론트인 wave32를 사용합니다. 이전 wave64 디자인보다 훨씬 간단하고 효율적입니다. 각 SIMD는 더 넓지 만 컴퓨팅 유닛은 더 좁습니다.

7be1b0dcdb3718ff986cfa33166d0281_1621315512_9626.png
 

RDNA 듀얼 컴퓨팅 장치: 로컬 데이터는 두 CU 간에 공유됩니다.


컴퓨팅 유닛이 GCN의 기본 셰이더 유닛인 경우 RDNA는 이를 WGP (Work-Group 프로세서)로 대체합니다. 두 개의 CU가 공유 로컬 데이터와 함께 작동합니다. RDNA SIMD는 GCN의 두 배인 32개의 셰이더 또는 ALU로 구성됩니다. CU 당 2개의 SIMD가 있고 듀얼 컴퓨팅 장치에 4개의 SIMD가 있습니다. CU의 총 스트림 프로세서 수는 여전히 64개이지만 더 넓은 2개의 SIMD (4개가 아님)에 분산되어 있습니다. 아래의 지침 다이어그램 당 4개 사이클 대 1개 사이클을 참조하십시오.


"RDNA SIMD는 GCN의 두 배인 32개의 셰이더 또는 ALU로 구성됩니다. CU 당 2개의 SIMD가 있고 듀얼 컴퓨팅 장치에 4개의 SIMD가 있습니다. CU의 총 스트림 프로세서 수는 여전히 64개이지만 더 넓은 2개의 SIMD (4개가 아님)에 분산되어 있습니다."'


7be1b0dcdb3718ff986cfa33166d0281_1621315566_8901.png
 



이 배열은 하나의 클록 사이클에서 하나의 전체 웨이브 프론트를 실행하여 병목 현상을 줄이고 IPC를 4배까지 높일 수 있습니다. 웨이브 프론트를 4배 빠르게 완료하면 레지스터와 캐시가 훨씬 더 빠르게 해제되어 전체적으로 더 많은 명령을 예약할 수 있습니다. 또한 wave32는 수 레지스터의 절반을 wave64로 사용하여 회로 복잡성과 비용도 줄입니다.


7be1b0dcdb3718ff986cfa33166d0281_1621315607_9207.png
 

 

더 좁은 파면을 수용하기 위해 벡터 레지스터 파일도 재구성되었습니다. 이제 각 벡터 범용 레지스터 (vGPR)에는 32-bit (FP32의 경우) 너비의 32개 레인이 포함되고 SIMD에는 총 1,024개의 vGPR이 포함됩니다. 다시 말해서 GCN에서와 같이 레지스터 수의 4배입니다.


* CPU 레지스터, 캐시 및 메모리


전반적으로 더 좁은 wave32 모드는 IPC와 총 동시 웨이브 프론트 수를 개선하여 처리량을 증가시켜 성능과 효율성을 크게 향상시킵니다.



7be1b0dcdb3718ff986cfa33166d0281_1621315640_4615.png
 

이전 GCN 명령어 세트와의 호환성을 보장하기 위해 Navi의 RDNA SIMD는 혼합 정밀도 컴퓨팅을 지원합니다. 따라서 새로운 Navi GPU는 게임 워크로드 (FP32) 뿐만 아니라 과학 (FP64) 및 AI (FP16) 애플리케이션에도 적합합니다. RDNA SIMD는 wave32 모드에서 2배, wave64 모드에서 44%의 지연 시간을 개선합니다. 

 

7be1b0dcdb3718ff986cfa33166d0281_1621315674_3517.png


비동기 컴퓨팅 터널링


GCN 아키텍처의 주요 하이라이트 중 하나는 NVIDIA가 그래픽 카드에 통합하기 전에 비동기식 Compute Engine 방식을 사용하는 것입니다. RDNA는 그 기능을 유지하고 두 배로 늘어납니다.

7be1b0dcdb3718ff986cfa33166d0281_1621315694_647.png
 

 

명령 프로세서는 API의 명령을 처리한 다음 각 파이프 라인에 실행합니다. 그래픽 명령 프로세서는 그래픽 파이프 라인 (셰이더 및 고정 기능 하드웨어)을 관리하고 4개의 비동기 Compute Engine (ACE)이 컴퓨팅을 처리합니다. Navi 10 다이 (RX 5700 XT)에는 그래픽 명령 프로세서 1개와 ACE 4개가 있습니다. 각 ACE에는 고유한 명령 스트림이 있으며 GCP에는 모든 셰이더 유형 (도메인, 정점, 픽셀, 래스터 등)에 대한 개별 스트림이 있습니다.


"GCN에서 명령 프로세서는 그래픽보다 컴퓨팅의 우선순위를 지정할 수 있습니다. RDNA 아키텍처에서 GPU는 우선순위가 높은 컴퓨팅 작업에 모든 리소스를 사용하여 그래픽 파이프 라인을 완전히 중단할 수 있습니다."


7be1b0dcdb3718ff986cfa33166d0281_1621315736_8353.png
 



RDNA 아키텍처는 비동기 컴퓨팅 터널링이라는 새로운 기능을 도입하여 명령 수준에서 병렬 처리를 개선합니다. GCN과 최신 Navi GPU는 모두 비동기 컴퓨팅 (그래픽 및 컴퓨팅 파이프 라인의 동시 실행)을 지원하지만 RDNA는 한 단계 더 나아갑니다. 한 작업 (그래픽 또는 컴퓨팅)이 다른 작업보다 지연 시간에 훨씬 더 민감 해지는 경우 Navi는 후자를 완전히 중단할 수 있습니다.


GCN 기반 Vega 설계에서 명령 프로세서는 그래픽보다 컴퓨팅의 우선순위를 지정하고 셰이더에 더 적은 시간을 소비할 수 있습니다. RDNA 아키텍처에서 GPU는 우선순위가 높은 컴퓨팅 작업에 모든 리소스를 사용하여 그래픽 파이프 라인을 완전히 중단할 수 있습니다. 이는 가상 현실과 같이 대기 시간에 가장 민감한 워크로드에서 성능을 크게 향상시킵니다.


제어 흐름을 위한 스칼라 실행


AMD의 GCN 및 RDNA 아키텍처에서 대부분의 계산은 본질적으로 벡터인 SIMD에 의해 수행됩니다. 여러 데이터 유형에 대해 단일 명령을 수행합니다 (주기 당 SIMD 당 32 INT / 32 FP가 동시에 실행됨). 그러나 각 CU에도 스칼라 단위가 있습니다. RDNA 1의 각 컴퓨팅 유닛은 사이클 당 4개의 명령어, 2개의 스칼라, 2개의 벡터를 시작 (디스패치) 할 수 있습니다. RDNA1 WGP 내에서 총 처리량은 클록 당 128개의 벡터와 4개의 스칼라입니다. 4개의 SIMD 각각은 그 수치에 똑같이 기여합니다.

댓글 2개 / 1페이지

관성님의 댓글

  • 관성
    좋은 정보 감사합니다. 건강하고 즐거운 하루 보내세요.
  • 작성일

김감귤이님의 댓글

  • 김감귤이
    잘 봤습니다 앞으로 AMD 그래픽 카드도 기대가 되네요
  • 작성일

하드웨어 뉴스
번호
제목
이름