Skip to content

기글하드웨어기글하드웨어

컴퓨터 / 하드웨어 : 컴퓨터와 하드웨어, 주변기기에 관련된 이야기, 소식, 테스트, 정보를 올리는 게시판입니다.

분석
2020.06.18 00:42

NVIDIA의 20TFLOPS급 GPU, A100이란?

profile
조회 수 7406 댓글 12
Extra Form
참고/링크 https://www.4gamer.net/games/121/G012181/20200527061/

이렇게 긴글을 천천히 옮기면 공부도 되고 개인적으로도 재미가 있는데, 요새는 읽을만한 것도 없고 다른 일이 바빠서 좀처럼 못 올렸네요. 하여간 오래간만에 올려 봅니다.

 

 

 

5월 14일에 NVIDIA의 젠슨 황 CEO는 암페어 아키텍처를 쓴 새로운 GPU, A100을 발표했습니다. 암페어는 전류의 단위인 암페어의 어원, 프랑스의 물리학자 앙드레 마리 앙페르의 이름에서 따왔습니다. NVIDIA는 GPU 아키텍처 코드네임에 유명한 과학자의 이름을 붙이는데요. 지포스 RTX 20의 튜링이나 그 이전 세대인 볼타 역시 마찬가지입니다.

 

1.jpg

 

A100

 

2.jpg

 

DGX A100

 

3.jpg

 

EGX A100

 

이 기조 강연에선 A100을 탑재한 슈퍼컴퓨터인 DGX A100과 엣지 컴퓨팅 제품인 EGX A100을 발표했으나, 모두 GPGPU용이며 지포스나 쿼드로 그래픽카드가 발표되진 않았습니다. 따라서 일반 소비자들과는 거리가 있지만, 2018년의 튜닝 이후 2년만에 새로 등장한 NVIDIA의 새 아키텍처이기에 어떤 제품인지는 한번 쯤 볼 필요가 있을 겁니다. 

 

 

A100 아키텍처 개요

 

우선 GPU의 기본 정보부터 봅시다. A100은 TSMC의 7nm 공정으로 제조된 GPU입니다. 다이 크기는 846제곱mm, 트랜지스터 수는 542억개로 NVIDIA GPU 중 역대 최대입니다. 기존 제품 중에서 가장 컸던 볼타 V100은 TSMC 12nm 공정으로 815제곱mm에 211억개의 트랜지스터였으나, 다이 크기는 비슷하게 유지하면서 트랜지스터 수를 2배로 늘린 셈입니다. V100이 나왔을 때만 해도 '최신 첨단 노광 장치가 한번에 노출할 수 있는 최대 크기'임을 강조했는데, 거기서 더 커졌습니다. 참고로 게이머를 위한 그래픽카드와 비교하자면 지포스 RTX 2080 Ti에 들어가는 TU102가 754제곱mm에 186억 개의 트랜지스터입니다.

 

4.png

 

A100의 블럭 다이어그램입니다. CPU의 코어에 해당하는 미니 GPU 클러스터인 Graphics Processor Cluster(GPC)가 8개입니다. 다만 이 그림은 A100의 풀 버전을 표시한 것입니다. 반도체 다이가 위 그림대로 나온 건 맞으나, 처음 출시된 A100 제품은 수율을 높이기 위해 GPC 1개를 비활성화합니다. 그리고 A100의 GPC는 개별적으로 작동하는 미니 GPU입니다. Multi-Instance GPU라고도 부릅니다. MIG는 GPC 단위로 독립적인 GPU처럼 작동하며, 가상 머신의 가상 GPU라고도 볼 수 있습니다. 

 

GPU에는 Streaming Multiprocessor(SM)이 다수 탑재됩니다. 타이탄 V의 GV100은 14개, 테슬라 P100의 GP100은 10개, 지포스 RTX 2080 Ti의 TU102는 12개, 그리고 이번에 나온 A100은 GPC 1가당 SM이 16개고 GPC가 8개 있으니 총 128개의 SM이 나옵니다. 지금까지 NVIDIA의 GPU는 제품 세다가 바뀔 때마다 SM당 쉐이더 프로세서(쿠다 코어)의 수도 달라졌습니다. 엠페어 세대의 A100은 볼타, 튜링과 똑같이 SM 1개당 64개의 쿠다 코어를 갖춥니다. 따라서 8 GPC x 16 SM x 64 CUDA 코어로 총 8192개가 나옵니다. NVIDIA 역사상 가장 많은 숫자지요.

 

제품 세대 GPU CUDA 코어의 수 SM 개당 CUDA 코어의 수
테슬라 GT200 240 8
페르미 GF100 512 32
케플러 GK104 1536 192
맥스웰 GM200 3072 128
파스칼 GP102 3840 128
볼타 GV100 5120 64
튜링 TU102 4608 64
암페어 A100 8192 64

 

위에 나왔던 블럭 다이어그램을 보면 GPU에 TPC라는 이름이 등장합니다. 암페어의 스펙을 보면 GPU 1개에 TPC는 8개, TPC 1개에 SM은 2개라는 설명도 있습니다. TPC는 Texture Processing Cluster의 줄임말로 튜링 아키텍처에서도 도입한 개념입니다. GPGPU에서는 Thread Processing Cluster, 그래픽 코드에서는 Texture Processing Cluster로 나눈다고 했지만 지금은 다들 텍스처로 통일했습니다. 

 

TPC는 텍스처 유닛을 공유하는 SM 그룹을 가리킵니다. 이게 와 중요하냐면 SM의 쿠다 코어 수가 GPU 아키텍처에 따라 달라지기에, TPC와 SM 수의 관계에 따른 GPU의 특징을 파악하기가 까다로워지기 때문입니다. 지금까지 NVIDIA GPU에서 TPC 1개당 할당되는 SM의 숫자는 다음과 같았습니다. 

 

테슬라 GT200 : TPC 1개 SM 3개
페르미 GF100 : TPC 1개에 SM 3개
케플러 GK104 : TPC 1개에 SM 1개
맥스웰 GM200 : TPC 1개에 SM 1개
파스칼 GP102 : TPC 1개에 SM 2개
볼타 GV100 : TPC 1개에 SM 2개
튜링 TU102 : TPC 1개에 SM 2개
암페어 A100 : TPC 1개에 SM 2개

 

앞서 말한대로 SM의 쿠다 코어 수는 GPU의 세대에 따라 달라지고, SM 1개당 할당된 텍스처 유닛 수도 변하기에 TPC 1개에 할당되는 SM의 숫자를 따지기 복잡합니다. 그보다는 SM 1개당 들어가는 쿠다 코어와 텍스처 유닛, 그리고 그 비율을 파악하는 게 더 낫습니다. 

 

GPU CUDA 코어 텍스처 유닛 쿠다 코어:텍스처 유닛
테슬라 GT200 8 8 1 : 1
페르미 GF100 32 4 8 : 1
케플러 GK104 192 16 12 : 1
맥스웰 GM200 128 8 24 : 1
파스칼 GP102 128 8 16 : 1
볼타 GV100 64 4 16 : 1
튜링 TU102 64 4 16 : 1
암페어 A100 64 4 16 : 1

 

SM 1개당 쿠다 코어의 숫자는 케플러가 가장 많았고, 이후 계속해서 줄어들었습니다. 다만 파스칼부터 암페어까지의 GPU는 연산 성능과 텍스처 성능의 비율을 16:1로 유지해 왔음을 알 수 있습니다. A100의 쿠다 코어는 8192개지만 실제 출시되는 GA100은 1280개의 쿠다 코어가 비활성화돼 실질적으로 작동하는 쿠다 코어는 6912개입니다. 1280개라면 지포스 GTX 1650 슈퍼 하나 수준이 날라가는 거군요. 어쨌건 8개의 GPC 중 1개를 끄니까 7개의 GPC에서 SM 2x2가 꺼집니다. 그래서 1 GPC x 16 SM x 64 CUDA 코어 = 1024, 4 SM x64 CUDA 코어 = 256개라는 계란이 나옵니다. 

 

5.png

 

SM의 내부 구조로 넘어갑시다. 배정밀도 부동소수점(FP64) 연산은 FP32(쿠다 코어)의 절반이니, 쿠다 코어 전체 숫자의 절반인 4096개가 이론적인 최대 값이 됩니다. 하지만 실제로 출시되는 GA100은 쿠다 코어가 6912개고, 이것의 FP64 연산은 3456개가 됩니다. 단정밀도 부동소수점 연산과 배정밀도 부동소수점 연산의 비율은 이론적으로 2:1입니다. 

 

A100의 내장 추론 가속기인 텐서 코어는 512개입니다. 볼타 세대의 GV100은 640개였으니 다소 줄어들었습니다. GV100이 SM 1개당 텐서 코어가 8개라는 비율이었으나, A100은 SM 1개당 텐서 코어가 4개입니다. 숫자는 줄어도 A100의 텐서 코어 아키텍처를 고쳐 연산 성능은 오히려 향상됐습니다. 

 

GM100의 클럭은 부스트 클럭만 공개됐습니다. 1410Mhz입니다. 베이스 클럭은 공개하지 않았습니다. NVIDIA는 부스트 클럭으로 계속 작동하기에 이게 사실상 베이스 클럭과 같다고 주장합니다. 여기까지를 감안해서 계산하면 A100의 전체 성능은 8192 × 2 OPS × 1410MHz =23.10TFLOPS입니다. 실제로 출시되는 GA100은 코어 수를 줄여서 나오니 6912 × 2 OPS × 1410MHz = 19.49TFLOPS가 됩니다. GPU 1개의 이론적인 최대 성능이 20테라플롭스까지 도달한 것입니다. 

 

6.jpg

 

그래픽 메모리는 2세대 High Bandwidth Memory인 HBM2이며 용량은 48GB입니다. GPU 패키지에 6개의 HBM2 스택이 있고, 각 스택에 8Gbit(1GB)의 다이를 8층 적층한 구조라 매우 비쌉니다. 메모리 인터페이스는 1024비트 x6으로 총 6144비트입니다. 위 그림에서 GPU 옆에 6개의 메모리 칩이 있지요?

 

여기서 재밌는 건 패키지에 장착된 6개의 메모리 스택 중 1개를 비활성화했다는 겁니다. 그러니까 48GB의 HBM2가 패키지에 들어갔는데 실제로 쓰는 건 40GB, 메모리 인터페이스도 1024비트 x5스택의 5120비트입니다. 이것도 수율을 높이기 위한 방법으로 보입니다. GA100에서 HBM2는 8층 메모리 다이를 관통하는 TSV를 사용하는데, 기술적으로 매우 어려운 배선 방법이기도 합니다. 

 

여기에 동작 클럭은 1215MHz, 5120비트 메모리 인터페이스가 DDR(Double Data Rate)로 데이터를 전송하기에 전체 메모리 버스 대역폭은 5120bit × 1215GHz × 2(DDR) ÷ 8(byte) = 1555GB/s가 됩니다. 이것도 업계 최고 수준입니다. 

 

 

진화한 캐시 시스템과 CUDA 11에서 실현한 Async Copy

 

이제 더 깊게 들어가 봅시다. 먼저 캐시 메모리와 공유 메모리입니다. 볼타 세대의 GV100은 SM 1개당 128KB의 L1 캐시와 공유 메모리를 겸하는 초고속 메모리 서브시스템을 탑재합니다. 전용 명령을 통해 이동하며, 128KB의 메모리 중 L1 캐시에 얼마, 공유 메모리에 얼마 할당하는 식으로 유연하게 작동합니다.

 

A100은 아키텍처를 유지하고 용량을 192KB로 늘렸습니다. GV100은 공유 메모리에 할당할 수 있는 용량이 최대 96KB였으나 A100에서 164KB까지 늘었습니다. 164KB라는 어중간한 숫자가 나온 이유는 160KB에 비동기 기술을 위한 4KB까지 더한 숫자입니다. L2 캐시 용량은 GV100의 6MB에서 A100은 6.7배인 40MB로 늘었습니다. 단순히 GPU 아키텍처 변경 때문이 아니라 A100의 새로운 메모리 액세스 모델에 따른 결과입니다. 

 

A100은 최신 버전의 CUDA인 CUDA 11에서 채택한 Asynchronous Copy(비동기 복사)라는 새로운 메모리 액세스 모델을 사용합니다. 비동기 복사는 GPGPU 처리 계통이 앞서 시작한 작업이 끝날때까지 기다리지 않고, 다음에 처리할 데이터 세트를 준비할 수 있는 기능입니다. 

 

7.png

 

왼쪽은 기존의 GPGPU 처리 계통입니다. GPGPU 처리 커널에서 할당된 데이터 처리를 끝낼 때까지 기다리고, 그 다음에야 다음 작업의 데이터 세트를 준비합니다. 오른쪽은 비동기 복사 방식입니다. GPGPU 처리 커널이 작업을 끝내지 않았지만, 그 순간에도 필요한 데이터 세트를 준비합니다. 작업 처리와 데이터 준비(복사)가 동기화되 함께 진행되지 않고, 제각각 따로 움직이기에 비동기 복사라는 이름이 붙습니다.

 

8.png

 

이 기능을 쓰려면 쿠다 11에 새로 추가된 전용 프로그래밍 모델을 써야 합니다. 또 비동기 수행이 가능한 데이터 세트를 준비하기 전까지는 커널을 동기화해야 합니다. 어쨌건 이 방법의 도입에 따라 NVIDIA는 A100의 L1 캐시와 L2 캐시에 비동기 복사 전용 동작 모드를 추가했습니다. 왼쪽이 GV100, 오른족이 A100에서 캐시 액세스의 플로우 차트입니다. GV100 이전에는 그래픽 메모리(DRAM)에서 읽은 데이터를 L2와 L1 캐시에 넣고, 레지스터 파일을 통해 공유 메모리에 전송합니다. A100에서는 비동기 복사를 쓰는 동안에는 L2 캐시에서 직접 공유 메모리에 전송해, L1 캐시의 저장 과정을 생략합니다. 

 

9.png

 

비동기 복사를 쓴다고 해서 L1 캐시가 필요하지 않다는 소린 아닙니다. 저장 과정을 생략할 뿐입니다. GPGPU 처리에선 스트림 처리가 많기에, 데이터가 L1 캐시에 저장될 필요가 없으니 생략해도 됩니다. 또 A100은 비동기 복사를 실행하는 동안 전용 명령을 통해 L2 캐시의 동작을 제어할 수 있습니다. GPGPU 처리 시스템에서 커널이 그래픽 메모리의 데이터를 처리하는 것처럼 보이지만, 실제로는 L2 캐시 데이터를 처리하는 경우가 있습니다. 커널에서 처리를 끝낸 L2 캐시 내용을 그래픽 메모리에 기록(캐시 라이트 백)하는 것입니다. 

 

10.png

 

그런데 특정 GPGPU 처리에선 하나, 혹은 여러 커널이 집중해 특정 메모리 영역을 처리하는 경우가 있습니다. 이 때 하나의 커널이 처리를 끝낼 때마다 다시 쓰기 작업을 하면 불필요한 메모리 버스 대역폭을 소비하고, 다음 커널 역시 같은 메모리 영역을 참조하니까 라이트 백 처리 자체가 필요하지 않습니다. 그래서 A100에선 CUDA 11에서 비동기 복사를 사용할 때 l2 캐시의 내용을 라이트 백하지 않도록 제어가 가능해졌습니다. 

 

11.png

 

NVIDIA는 A100의 L2 캐시 활용도와 액세스 효율을 높이기 위헤 L2 캐시와 쉐이더 코어 사이에는 무손실 압축 기법을 적용하도록 설계했습니다. 이로서 메모리 버스 대역폭과 메모리 용량을 절약합니다. 압축률은 최대 4배로, 데이터의 값에 따라 변합니다. 

 

 

연산 정밀도보다 처리량이 중요. AI에 최적화된 신형 텐서 코어

 

SM 내부의 GPU 코어 부분을 봅시다. 쿠다 코어는 튜링 세대에서 큰 변화가 없습니다. 오히려 텐서 코어가 많이 변했지요. 텐서 코어는 일종의 추론 가속장치로, AI 프로세서라고도 부릅니다. 대단해 보이는 이름이지만 실제로는 행렬의 FMA(Fused Multiply-Add) 연산을 실행하는 유닛입니다. FMA 연산을 AI 학습이나 추론 단계에서 많이 사용하며, 좌표 변환에도 응용할 수 있습니다. 이를 통해 영상이나 음성 신호를 보다 빠르게 처리해 냅니다. 

 

GV100의 1세대 텐서 코어는 1개당 16비트 반정밀도 부동소수점(FP16)의 FMA 연산을 1클럭당 64개를 동시에 실행해냅니다. FP32를 옵션으로 선택할 수 있어 혼합 정밀도(Mixed-Precision) 연산이라고도 부릅니다. 2세대 텐서 코어를 탑재한 튜링 세대의 GPU도 아키텍처는 GV100과 같습니다. 

 

이에 비해 A100에 탭재된 3세대 텐서 코어는 혼합 정밀도의 연산을 1클럭 당 256개 수행할 수 있습니다. SM 1개의 텐서 코어 숫자는 GV100의 8개에서 4개로 줄었으나, 연산 능력은 4배 증가한 셈입니다. 같은 클럭에서 작동한다면 A100의 텐서 코어 성능이 GV100보다 2배 향상됐다는 말도 됩니다.

 

그런데 NVIDIA는 A100의 텐서 코어가 GV100 대비 2.5배 향상됐다고 말하고 있지요. 그럼 이 2.5라는 숫자는 어디서 나온걸까요? 이걸 알려면 GA100과 GV100의 클럭과 SM 숫자를 비교하면 됩니다. GV100은 SM 80개, 클럭 1530MHz입니다. GA100은 SM 108개, 클럭 1410MHz입니다. (108 ÷ 80) × (1410 ÷ 1530) × (텐스 코어 1개당 2배의 성능 향상) = 2.488. 그러니까 2.5배라고 말할 수도 있겠군요.

 

튜링의 2세대 텐서 코어는 INT8, INT4, INT1를 지원합니다. INT8은 8비트 정수(0 ~ 255), INT4는 4비트 정수(0 ~ 15), INT1은(0 또는 1)입니다. INT8은 그렇다 치고 INT4, INT1까지 텐서코어가 지원할 필요가 있나 싶은데요. 머신 러닝의 AI 개발에서는 학습하는 데이터에 따라 취급하는 값의 범위가 바뀌지만, 실제로 쓰는 수의 표현은 그리 많이 필요하지 않는 경우가 있습니다. 정규화된 학습 데이터를 수행하는 추론 처리일수록 그런 경향이 강하기에 INT4와 INT1로도 충분한 분야가 있습니다.  

 

12.png

 

GA100의 텐서 코어는 숫자 형식 외에도 BF16, TF32 같은 새로운 포맷을 지원했습니다. BF16의 B는 Brain으로 학습용 데이터 포맷이란 의미입니다. NVIDIA가 설정한 게 아니라 AI 개발 업계에서 전부터 썼던 것이죠. TF32의 T는 Tensor에서 따온 글자입니다. BF16은 +와 -를 나타내는 1비트, 가수 항을 7비트로 단순화하고 지수를 8비트로 해서 총 16비트의 숫자를 표현합니다. TF32는 1비트 부호, 가수는 반정밀도 부동소수점을 모방한 10비트, 지수를 8비트로 해서 총 19비트입니다.

 

모두 지수를 FP32와 같은 8비트로 해서 AI의 학습 데이터나 신호 데이터의 동적 범위를 넓힙니다. 수치 계산 값의 정밀도보다 기록하는 데이터의 폭을 넓히는 걸 중요하게 여긴 방식입니다. INT4나 INT1과는 반대로, 학습하는 데이터의 다이나믹 레인지가 넓은 경우 BF16이나 TF32가 더 유리합니다. 

 

13.png

 

A100의 구조를 설명하는 문장에서 'A100의 텐서 코어는 총 512개로 볼타의 640개보다 적다'고 말했는데요, A100의 텐서 코어 숫자는 줄었어도 성능은 더 높아졌습니다. 볼타와 튜링의 텐서 코어는 FP16의 행렬 연산을 지원했지만 FP32 행렬 연산은 지원하지 않았습니다. 암페어 세대의 텐서 코어는 기존과는 달리 FP32의 행렬 연산을 지원합니다. 또 암페어 세대의 텐서 코어는 2개의 FP16이나 2개의 BF16 연산을 동시에 수행해 냅니다.

 

A100의 텐서 코어는 내부 연산 정밀도가 FP32가 아닌 TF32에 최적화됩니다. FP32의 데이터를 입출력할 수 있지만 곱셈 계산에선 FP32를 TF32로 바꿔 연산을 수행합니다. 덧셈에서는 FP32 정밀도를 유지합니다. 즉 암페어 세대의 텐서 코어는 19비트 TF32 연산 유닛이 있고, 덧셈의 연산 정밀도를 희생해 FP32연산이 가능한 수준입니다. 또 A100의 19비트 TF32 연산 회로의 규모는 FP32 연산 유닛에 가깝습니다. TF32의 데이터는 레지스터와 메모리 크기도 FP32와 같은 32비트 크기입니다. 

 

Peak FP64 9.7 TFLOPS
Peak FP64 Tensor Core 19.5 TFLOPS
Peak FP32 19.5 TFLOPS
Peak FP16 78 TFLOPS
Peak BF16 39 TFLOPS
Peak TF32 Tensor Core 156 TFLOPS | 312 TFLOPS
Peak FP16 Tensor Core 312 TFLOPS | 624 TFLOPS
Peak BF16 Tensor Core 312 TFLOPS | 624 TFLOPS
Peak INT8 Tensor Core 624 TFLOPS | 1248 TFLOPS
Peak INT4 Tensor Core 1248 TFLOPS | 2496 TFLOPS

 

A100의 주요 연산 값입니다. Peak Tensor Core라면 A100이 갖고 있는 모든 텐서 코어를 활용했을 경우의 성능입니다. 텐서 코어라고 표기하지 않은 항목은 쿠다 코어를 사용한 연산 값입니다. 모든 항목의 클럭은 부스트 클럭입니다. 여기서 TF32 값이 156TFLOPS라고 됐는데 4x4 행렬의 16개 유닛에 FMA 연산을 실행한다 치고 계산하면 155.934TFLOS가 나옵니다. NVIDIA가 발표한 값과 일치하며, FP16, BF16, INT8, INT4는 이것의 두배에 해당하니 굳이 계산할 필요는 없겠습니다. 

 

텐서 코어를 썼을 때 FP64의 이론적인 성능은 19.5TFLOPS가 나옵니다. 쿠다 코어만 사용한 9.7TFLOPS의 2배지만, FP32와 TF32 포맷과 비교하면 1/8 수준입니다. 이는 TF32에 최적화된 연산 유닛의 특성 때문이라고 합니다. FP64는 텐서 코어에서 다루는 포맷 중에서는 우선 순위가 낮기에 이렇게 만들었다고 하네요. 19.5TFLOPS로도 연산 성능은 충분한 편이긴 합니다. 

 

14.png

 

A100의 텐서 코어는 또 다른 개선점이 있습니다. 희소 행렬(Sparse Matrix) 연산의 지원과 최적화입니다. 희소 행렬은 행렬 요소에 0이 많이 들어 있는 행렬입니다. 0의 곱셈은 0이고, 0에 덧셈이나 뺄셈을 수행하는 의미가 없습니다. 그래서 0이 있다면 연산을 무시하고 지나치는 식으로 최적화합니다. 희소 행렬은 머신 러닝과 딥 러닝에 자주 등장하는데요. 다층 신경망에서 학습 주제에 따라 특정 노드 사이의 연결이 필요하지 않는다면 그 노드의 연결을 해제합니다. 이를 가지치기(Pruning)라고 부릅니다. 

 

15.png

 

학습 데이터의 정규화(Normalize)와 양자화(Quantize)도 마찬가지입니다. 크고 작은 값이 섞인 학습 데이터에서 절대 값이 아주 작아 0이라고 판단해도 될 경우, 그 값은 희소 행렬 계산이 자주 발생합니다. 이렇게 희소 행렬의 최적화 대비는 최근의 학습/추론 가속 장치의 트렌드이며, A100도 여기에 맞췄습니다. A100은 2 out of 4 패턴, 즉 4개의 요소 중 2개가 0이 아닌 실효 값을 가진 행렬 계산을 지원합니다. 희소 행렬은 4개 중 어디가 0인지를 나타내는 4비트 인덱스 비트(보라색 Non-zero indices)와 함께 표현합니다. 그럼 2out 4 패턴의 4요소 희소 행렬 계산은 기존 방식의 절반 수준에 해당되는 연산 유닛만 있으면 되니, 전체 처리량은 2배가 됩니다. 

 
  V100 A100 A100 Sparsity A100 Speedup A100 Speedup with Sparsity
A100 FP16 vs V100 FP16 (TFLOPS) 31.4 78 N/A 2.5배 N/A
A100 FP16 TC vs V100 FP16 TC (TFLOPS) 125 312 624 2.5배 5배
A100 BF16 TC vs V100 FP16 TC (TFLOPS) 125 312 624 2.5배 5배
A100 FP32 vs V100 FP32 (TFLOPS) 15.7 19.5 N/A 1.25배 N/A
A100 FP32 TC vs V100 FP32 (TFLOPS) 15.7 156 312 10배 20배
A100 FP64 vs V100 FP64 (TFLOPS) 7.8 9.7 N/A 1.25배 N/A
A100 FP64 TC vs V100 FP64 (TFLOPS) 7.8 19.5 N/A 2.5배 N/A
A100 INT8 TC vs V100 INT8 (TOPS) 62 624 1248 10배 20배
A100 INT4 TC (TOPS) N / A 1248 2496 N/A N/A
A100 Binary TC (TOPS) N / A 1248 2496 N/A N/A

 

A100의 희소 행렬 계산 최적화를 사용했을 경우의 성능을 비교한 표입니다. TC는 텐서 코어를 쓴 연산을 의미합니다. A100과 A100 Sparsity(A100의 희소 행렬 계산 최적화 이론 값)을 비교하면 딱 2배입니다. 텐서 코어를 사용한 희소 행렬 계산의 최적화 이론 값은 FP64와 INT1을 지원하지 않습니다. INT1은 0과 1밖에 없는 이진 값이니 더 이상 단순하게 줄일 수가 없겠고, FP64를 지원하지 않는 건 눈여겨 볼만한 부분입니다. 

 

 

A100을 7개의 GPU처럼 사용하는 MIG 모드

 

A100의 새 기능 중에는 MIG(Multi-Instance GPU)가 있습니다. A100의 8개 GPC(GA100에서는 7개)를 저마다 독립된 GPU로 작동시키는 기술입니다. MIG는 슈퍼컴퓨터와 데이터센터에서 가상 머신을 더욱 효율적으로 운용하기 위해서 도입됐습니다.

 

17.png

 

파스칼 이전의 NVIDIA GPU는 가상 머신에서 1개의 물리 GPU만 소프트웨어 가상화가 가능했습니다. 따라서 여러 사용자(여러 가상 머신)이 보낸 GPU 작업을 소프트웨어 처리로 싱글 GPU 작업인 것처럼 GPU에 보내고, 그 결과를 소프트웨어가 나눠서 반송합니다. 볼타부터는 하드웨어 지원을 통해 여러 가상 머신이 실행한 GPU 작업을 태그해 보냄으로서 그대로 GPU에서 처리할 수 있게 바뀌었습니다. 처리가 끝난 순서대로 가상 머신에 반환하기에 결과적으로 성능도 오릅니다. 

 

18.png

 

볼타 이후의 GPU 가상화를 통해 큰 문제가 해결됐지만 여전히 문제가 남아 있습니다. 각각의 가상 머신에서 메모리와 캐시 사용이 크게 차이가 날 경우, 하나의 작업에서 메모리 버스를 많이 사용하면 다른 가상 머신에서 GPU 캐시를 제대로 쓰지 못하게 됩니다. 그래서 NVIDIA는 GA100에서 7개의 GPC를 최대 7개의 물리적인 GPU처럼 쓸 수 있도록 MIG를 구현했습니다.

 

19.png

 

7개의 GPC 할당 범위를 바꿀 수 있어, 3개의 가상 머신에 4개, 2개, 1개 같은 식으로 나누는 것도 가능합니다. 가상 머신의 사용자 계약이나 처리량에 따라서 GPC 할당을 자유롭게 바꾸는 것입니다. 덕분에 다른 가상 머신에서 메모리나 캐시를 어떻게 사용하던 영향을 주지 않습니다. 

 

다만 MIG는 GPGPU 전용 기능이라 일부 사용 제한이 있습니다. A100 뿐만 아니라 최근의 NVIDIA GPU는 그래픽 처리와 GPGPU 처리를 함께 담당하는 파이프라인이 1개 있고, 그 외의 파이프라인은 모두 GPGPU 처리 전용 파이프라인입니다. GA100에는 7개의 파이프라인이 있으나, MIG 모드에선 모든 파이프라인이 GPGPU 전용이 됩니다. 따라서 MIG 모드의 GA100은 GPGPU 전용 GPU가 되버리며 그래픽 렌더링은 실행하지 못합니다. 또 MIG 모드와 일반 싱글 GPU 모드로의 전환에는 재설정이 필요합니다. 

 

 

NVIDIA GPU 최초의 PCIe 4.0 지원 

 

GA100과 함께 NVIDIA는 NVLink 인터커넥트를 강화했습니다. CPU와 GPU, GPU와 GPU 사이를 연결하는 NVIDIA 전용 버스로 파스칼에서 처음으로 도입, 볼타에서 2세대, A100에서 3세대로 발전했습니다. 3세대 NVLink는 차동 전송 기술(Differential Signaling)을 사용해 전송 레인의 대역폭을 두배로 늘리돼 1링크의 신호 선은 절반으로 줄였습니다. 

 

튜링 세대 이전의 NVLink는 1레인 당 대역폭이 단방향 25Gbps(3.125GB/s)입니다. 이걸 8개 묶어서 NVLink 1링크를 구성하며, 링크 당 8레인 x2(상행/하행)으로 구성되기에 1링크의 대역폭은 양방향 모두 따져서 3.125GB/s(25Gbps)×8레인×2=50GB/s가 나옵니다. 

 

암페어의 NVLink는 싱글 엔드 전송에서 클럭을 높이는데 유리한 차동 전송 기술을 도입해 1레인 전송 속도를 두배로 늘렸습니다. 따라서 링크당 4레인 x2라는 동일 구성에서 50GB/s가 나옵니다. 실질적인 신호 선을 줄일 수 있기에 링크를 늘리는 것도 가능합니다. 볼타 GV100은 6링크, 튜링 TU102는 2링크, TU104는 1링크지만 GA100은 12링크입니다. 

 

최근 NVIDIA GPU의 양방향 NVLink 대역폭입니다. 튜링은 그래픽용 GPU고, 병렬 GPU도 쓰지 않기에 대역폭이 넓진 않습니다. 그에 비해 GPGPU 전용인 GV100과 GA100의 대역폭은 대단히 높습니다. 

 

GV100 : 300GB/s
TU102 : 100GB/s
TU104 : 50GB/s
GA100 : 600GB/s

 

20.png

 

GA10은 12링크 구성의 NVLink를 통해 다른 GA100과 연결합니다. A100과 동시에 발표된 슈퍼컴퓨터, DGX A100은 8개의 GA100을 탑재하며 각각의 GA100은 GPU 인터커넥트인 NVSwitch를 6개 써서 연결합니다. 8개의 GA100가 NVSwitch와 NVLink를 통해 연결되는 구조입니다. NVSwitch는 GPU와 GPU 사이의 연결과도 같습니다. 

 

DGX A100에 탑재된 NVSwitch는 A100에 맞춰 새로 설계했습니다. 8개의 A100을 연결하기 위해 NVLink 16링크를 넣었는데요. 그렇다면 50Gbps × 2(양방향) × 4레인 × 16링크 = 6400Gbps(800GB/s)의 전송 대역폭이 나옵니다. 또 NvSwitch로 연결된 GA100 8개의 전송 대역폭을 계산한다면 800GB/s ÷ (NVSwitch 16링크 ÷ GA100 12링크) = 600GB/s가 나옵니다. GA100이 지닌 NVLink 대역폭과 일치합니다. 

 

NVIDIA는 3세대 NVLink에서 전송 성능이 향상됐을 뿐만 아니라 오류 수정과 GPU 동기화를 쉽게 진행하기 위해 개선하고, 송수신 가능한 명령의 제한도 풀었다고 설명합니다. 그리고 GA100은 NVIDIA GPU 최초로 PCIe 4.0을 지원하기도 합니다. 그리고 I/O 가상화 기술인 SR-IOV도 지원해 가상 머신 시스템에 최적화했습니다.

 

 

암페어 기반 지포스가 출시될까?

 

2019년엔 NVIDIA의 플래그쉽 GPU가 나오지 않았습니다. 이번에 나온 A100은 오래간만의 GPU 아키텍처입니다. 거기에 거대하기까지 하지요. 826제곱mm의 크기에 542억 개의 트랜지스터를 넣었습니다. 하지만 이 암페어 아키텍처의 칩이 지포스나 타이탄으로 출시될 가능성은 낮아 보입니다. GA100은 실시간 레이 트레이싱 처리를 위한 RT 코어와 비디오 인코더인 NVENC를 내장하지 않았기 때문입니다. GA100 같은 비싼 칩으로 그래픽카드를 만들었는데 하드웨어 레이 트레이싱 유닛이 없다면? 그건 말이 안되죠.

 

21.jpg

 

NVIDIA는 GA100의 생산을 통해 7nm 공정을 활용하는 노하우를 터득해 나갈 겁니다. 따라서 암페어를 통해 차세대 하이엔드 GPU가 어떤 모습일지를 예측할 수 있는데요. 볼타 세대의 GV100은 12nm 공정에 210억 개의 트랜지스터와 815제곱mm의 다이 크기, 5120개의 쿠다 코어를 지녔습니다. GA100은 7nm 공정에 542억 개의 트랜지스터와 826제곱mm의 다이 크기에 6912개의 쿠다 코어(풀 스펙은 8192개)를 지닙니다. 다이 크기가 같다고 치면 제조 공정의 개선을 통해 트랜지스터 수는 2.58배, 쿠다 코어는 1.6배 늘어났다는 말이 됩니다. 

 

현재 하이엔드 GPU인 지포스 RTX 2080 Ti의 TU102는 GV100과 같은 12nm 공정으로 만들었으며 다이 크기는 754제곱mm, 트랜지스터 수는 186억개, 쿠다 코어는 4608개입니다. 7nm 공정으로 754제곱mm의 칩을 만든다면 트랜지스터 수는 186억 개의 2.58배인 480억개까지도 가능해 보입니다. 마찬가지로 쿠다 코어의 수는 4608개에서 1.6배 늘어난 7372개가 됩니다. 64배수라고 치면 7296개고요. GA100과 똑같이 GPU 클럭이 1.4GHz라고 치면 성능은 20TFLOPS가 나옵니다. 지포스는 GPC를 1개 비활성화해 수율을 확보하니 쿠다 코어를 6272개로 줄였다 치고, 그럼 17.5TFlOPS의 성능이 나옵니다. 어느 쪽이 됐건, 차세대 지포스는 올해 하반기에 출시됩니다 



  • ?
    미주 2020.06.18 01:03
    신공정에 엄청난 면적에 엄청난 인터커넥트까지 다 때려박고...바쌀 요소를 다 가지고 나서도 일부 면적을 비활성화(라 쓰고 낭비라 읽는다) 한걸 보면 가격이 엄청날거 같군요
  • profile
    냐아      (대충 좋은 소리) 2020.06.18 01:08
    대체 몇 암페어를 먹길래 코드명이 암페어인가....
    아마 12V 기준 300W를 먹으면 25A를 먹으니 (후략)
  • ?
    고자되기 2020.06.18 01:10
    [NVIDIA Geforce XTX 3080Ultra 이벤트 신청]
  • profile
    title: 민트초코미쿠미쿠 2020.06.18 01:25
    이야 엄청나네요. 그야말로 괴물이군요. HBM2 스택이 미래적인 느낌이네요.
    정성들인 글 잘봤습니다!
  • profile
    GENESIS      쪼렙이에요 2020.06.18 02:51
    확실히 더 비싸지겠네요
  • profile
    TundraMC      자타공인 암드사랑/GET AMD, GET MAD. Dam/컴푸어 카푸어 그냥푸어/니얼굴사... 2020.06.18 05:32
    이런거 보면 진짜 암드는 자율주행 시장 진입도 못해보고 끝나겠어요.
  • profile
    유우나      7460 2020.06.18 05:38
    좋아보이긴 하는데 구미가 당기진 않는군요
  • ?
    하늘군군 2020.06.18 08:33
    비싼 소재와 공정은 다 집어넣어놨고 수율도 똥망일 것 같고..
    가격은.. 아.. 안드로메다인가.. ㅎㅎ 저거야 전문영역의 카드니까 그렇다 치고..

    저걸 바탕으로 그래픽카드에서 얼마나 쳐내고 나올 것인가.. 그게 우리한테는 더 중요할 것 같네요 ㅎㅎ
  • profile
    군필여고생쟝- 2020.06.18 09:21
    int1을 기계적으로 지원하는군요,,, relu땜에 쓰는건가요? 희소행렬 최적화도 대단하네여
  • ?
    퉁퉁이 2020.06.20 19:39
    Binary Neural Network라고 weight가 1bit인 뉴럴넷도 사용됩니다.
  • profile
    군필여고생쟝- 2020.06.20 20:24
    그런 신경망에 쓰이는거군요 감사합니다
  • profile
    Precompile 2020.06.18 09:27
    암페어 타이탄은 한 6천코어 정도로 나올까요...

작성된지 4주일이 지난 글에는 새 코멘트를 달 수 없습니다.


  1. No Image

    AMD가 뭔가를 9월 10일에 발표?

    AMD가 뭔가를 9월 10일에 발표할 거라는 트윗입니다. AMD의 Chief Gaming Architect and Marketing인 Frank Azor가 썼으니 AMD겠지요. 최근에 빅 나비, RX 6000의 티저 이미지가 나왔으니 그래픽카드 쪽일 가능성이 높아 보입니다.
    Date2020.09.09 소식 By낄낄 Reply3 Views802
    Read More
  2. No Image

    AMD 빅 나비, 성능은 RTX 3080 수준?

    AMD 빅 나비가 라데온 RX 6000 시리즈로 나오며, 경쟁 상대는 지포스 RTX 3080이 될 거라고 합니다. 메모리는 16GB GDDR6/6X고 HBM2 버전은 없습니다. 가격은 599달러 였지만, 지포스 RTX 30 시리즈의 발표 후 AMD는 가격을 50달러 낮춰 5...
    Date2020.09.07 소식 By낄낄 Reply50 Views4159
    Read More
  3. 인텔 Xe 그래픽의 클럭은 1650Mhz

    인텔 Xe 그래픽의 클럭은 1650Mhz로 작동합니다. 기존에 알려졌던 것보다 100MHz 높습니다. 유닛의 갯수는 768개입니다. 인텔 Xe 그래픽은 9월 2일에 발표되는 타이거레이크에 처음으로 탑재됩니다.
    Date2020.08.31 소식 By낄낄 Reply2 Views890 file
    Read More
  4. 2020년 PC GPU 출하량 2.5% 증가

    2020년 PC GPU 출하량이 2.5% 늘었다는 JPR의 조사 결과입니다. AMD는 8.4% 늘어났고 인텔은 -2.7% 줄었으며 NVIDIA는 17.8% 늘었습니다. 그런데도 전체 출하량이 늘었다니 인텔이 차지하는 비중이 그만큼 크다는 말이겠지요. 전통적으로...
    Date2020.08.28 소식 By낄낄 Reply2 Views588 file
    Read More
  5. 페타플롭스 스케일 GPU, 4타일 구성의 Xe-HP

    라자 코두리가 핫 칩스 컨퍼런스에서 4타일 구성의 Xe-HP GPU 실물을 들고 등장했습니다. 성능이 페타플롭스 수준까지 도달했다고 합니다. 1타일이 단정밀도 10.588테라플롭스, 2타일이 21.161테라플롭스, 4타일이 41.908테라플롭스가 됩...
    Date2020.08.19 소식 By낄낄 Reply7 Views1802 file
    Read More
  6. No Image

    AMD 나비 41, 4세대 RDNA 아키텍처를 개발 중?

    AMD가 코드네임 나비41을 준비 중이라는 소문입니다. AMD는 RDNA1X의 후속작인 RDNA2X 기반의 나비 21을 준비하고 있습니다. 그런데 41이라면 중간에 31도 있고.. 좀 먼 미래의 이야기겠군요. 하여간 아래는 이번에 나온 소문입니다. 1. S...
    Date2020.08.08 소식 By낄낄 Reply1 Views948
    Read More
  7. No Image

    AMD 빅 나비, 레퍼런스는 11월 11일 전에 출시?

    AMD 빅 나비의 기판 샘플이 완성됐습니다. 레퍼런스는 11월 11일 이전에 출시되며, 커스텀 버전은 12월이나 내년 1월에나 나올 것 같습니다. 빅 나비는 12GB와 16GB의 두 가지 메모리를 씁니다. 각각 Sienna Cichlid와 Navy Flounder라는 ...
    Date2020.08.07 소식 By낄낄 Reply6 Views976
    Read More
  8. RDNA2가 11월에 등장. RDNA3는 큰 변화

    AMD RDNA2 아키텍처는 아무리 빨라야 11월에 모습을 드러낼 거라고 합니다. 하지만 그래픽카드가 아니라 콘솔에 들어가는 제품일 가능성도 있습니다. RDNA2는 2.5D 패키지를 쓰지 않습니다. HBM과 코어를 하나의 칩으로 만들지 않는다는 ...
    Date2020.08.06 소식 By낄낄 Reply3 Views1244 file
    Read More
  9. AMD 빅 나비, 최대 80개의 CU 구성?

    AMD Sienna Cichlid가 흔히 빅 나비라고 알려진 나비21 GPU이며, 여기에는 80개의 CU가 탑재된다는 데이터가 나왔습니다. 물론 80개를 다 쓰진 않을 가능성도 있습니다. 라데온 인스팅트 MI100은 실제로 128개의 CU가 있으나 그 중 쓰는 ...
    Date2020.08.01 소식 By낄낄 Reply3 Views1124 file
    Read More
  10. 라데온 인스팅트 MI100, 120개 CU로 구성?

    라데온 인스팅트 MI100의 스펙이 나온 슬라이드입니다. 32GB의 HBM2 메모리가 장착되며 120개 CU로 구성된다고 하네요. CDNA 아키텍처가 클러스터당 64개의 프로세서가 있다고 가정하면 총 7680개의 코어가 나옵니다. 성능은 42TFLOPS입니...
    Date2020.08.01 소식 By낄낄 Reply0 Views461 file
    Read More
  11. AMD Navy Flounder와 Sienna Cichlid는 모두 GFX1030

    AMD의 리눅스 패치 내용입니다. AMD Navy Flounder와 Sienna Cichlid는 모두 GFX1030라는 코드를 사용합니다. 나비10은 GFX1010, 나비12는 GFX1011, 나비14는 GFX1012였습니다. AMD GPU는 코드네임만 엄청 많이 나오는 것 같군요. 어서 신...
    Date2020.07.30 소식 By낄낄 Reply2 Views1040 file
    Read More
  12. 리눅스 패치에 등장한 AMD 네이비 파운더, NAVI 22 GPU

    리눅스 패치에 AMD 네이비 파운더, NAVI 22 GPU가 등장했습니다. 나비 12의 후속작으로 보이며 애플 맥에 탑재되는 GPU입니다.
    Date2020.07.15 소식 By낄낄 Reply4 Views1370 file
    Read More
  13. 중국 CPU 제조사 Zhaoxin이 올해 GPU도 출시

    중국 CPU 제조사인 Zhaoxin이 올해 GPU에도 손을 댑니다. TSMC 28nm 공정으로 제조하며 내장 그래픽이 아닌 독립된 칩입니다. 하지만 소비 전력 70W 짜리라니까 고성능 제품은 아닐 듯 합니다.
    Date2020.07.10 소식 By낄낄 Reply2 Views1278 file
    Read More
  14. 애플, GPU까지 자체 개발, 빅 리틀 지원

    애플은 현재 맥 시스템에 AMD 라데온 그래픽을 사용하고 있지만, Arm 맥 CPU의 개발과 함께 애플 실리콘 맥 GPU도 함께 준비하고 있습니다. 애플의 새로운 GPU는 메탈 그래픽 API를 기반으로 한 메탈 GPU 패밀리가 됩니다. 그리고 애플 Ar...
    Date2020.07.08 소식 By낄낄 Reply8 Views1426 file
    Read More
  15. 타이거레이크의 Xe GPU 성능, 지포스 MX350 수준

    타이거레이크의 Xe GPU 성능입니다. 일부 벤치마크에 한정된 이야기지만 대체적인 성능은 지포스 MX350 수준이라고 합니다. 타이거레이크 코어 i5는 80개의 EU, 코어 i7은 96개의 EU가 탑재됩니다. 두 제품의 성능은 13.5% 정도 차이납니다.
    Date2020.07.05 소식 By낄낄 Reply6 Views2442 file
    Read More
  16. MS의 하드웨어 가속 GPU 스케줄링 설명

    2020년 5월에 나온 윈도우 10 업데이트에서 하드웨어 가속 GPU 스케줄링 기능을 쓸 수 있게 됐습니다. 기본적으로는 꺼져 있지만, 이 옵션을 사용자가 활성화할 수 있습니다. 14년 전, 윈도우 비스타부터 WDDM(윈도우 디스플레이 드라이버...
    Date2020.07.01 소식 By낄낄 Reply2 Views1432 file
    Read More
  17. AMD Navi 31이 애플 macOS 11에 등장

    AMD Navi 31이 애플 macOS 11용 그래픽 드라이버에 등장했습니다. 나비 21보다 더 큰 GPU일지 어떨지는 모르겠군요. 그리고 세잔도 macOS 드라이버에 등록됐습니다. 라데온 인스팅트 MI100과 MI200도요.
    Date2020.06.28 소식 By낄낄 Reply1 Views1125 file
    Read More
  18. NVIDIA 하드웨어 가속 GPU 스케줄링의 효과는?

    NVIDIA, 다이렉트 X 12 얼티밋 지원 드라이버 발표 https://gigglehd.com/gg/7633592 에서 NVIDIA 그래픽카드는 하드웨어 가속 GPU 스케줄링이라는 새로운 기능을 쓸 수 있습니다. 이 기능은 GPU의 대기 시간을 줄여줘 성능을 높일 수 있...
    Date2020.06.27 소식 By낄낄 Reply0 Views5679 file
    Read More
  19. 거대한 인텔의 BFP Xe GPU 패키지

    인텔의 라자 코두리가 트윗에 올린 사진입니다. 왼쪽 위는 인텔 Xe-HP 그래픽 프로세서입니다. 전에 이 사진이 올라왔었지요. 오른쪽 위에는 그보다 작은 칩이 있고 아래에는 거대한 GPU가 있습니다. 이걸 BFP – Big Fabolous Pack...
    Date2020.06.25 소식 By낄낄 Reply9 Views1339 file
    Read More
  20. No Image

    AMD의 새로운 GPU, 나비 23, 반 고흐와 라이트 버전?

    AMD의 드라이버에서 나비 23과 나비 21, 나비 21, 반 고흐 등의 이름이 등장했습니다. NAVI21:gfx1030 NAVI22:gfx1031 NAVI23:gfx1032 VANGOGH:gfx1033 VANGOGHLITE:gfx1040 https://twitter.com/KOMACHI_ENSAKA/status/12052956956173312...
    Date2020.06.19 소식 By낄낄 Reply0 Views767
    Read More
목록
Board Pagination Prev 1 ... 17 18 19 20 21 22 23 24 25 26 ... 35 Next
/ 35

최근 코멘트 30개
Loliconite
04:19
냥뇽녕냥
02:49
ExpBox
02:36
포인트 팡팡!
02:25
아이들링
02:25
아이들링
02:06
아이들링
01:53
아이들링
01:51
스와마망
01:41
스와마망
01:37
스와마망
01:35
PAIMON
01:32
PAIMON
01:31
아스트랄로피테쿠스
01:24
ExpBox
01:22
360Ghz
01:21
투명드래곤
01:20
ExpBox
01:20
까마귀
01:19
ExpBox
01:18
아이들링
01:13
포인트 팡팡!
01:07
MUGEN
01:07
빈도
01:04
아이들링
01:01
까마귀
00:59
아이들링
00:50
이수용
00:47
조마루감자탕
00:46
노코나
00:40

더함
AMD
한미마이크로닉스
MSI 코리아

공지사항        사이트 약관        개인정보취급방침       신고와 건의


기글하드웨어는 2006년 6월 28일에 개설된 컴퓨터, 하드웨어, 모바일, 스마트폰, 게임, 소프트웨어, 디지털 카메라 관련 뉴스와 정보, 사용기를 공유하는 커뮤니티 사이트입니다.
개인 정보 보호, 개인 및 단체의 권리 침해, 사이트 운영, 관리, 제휴와 광고 관련 문의는 이메일로 보내주세요. 관리자 이메일

sketchbook5, 스케치북5

sketchbook5, 스케치북5

나눔글꼴 설치 안내


이 PC에는 나눔글꼴이 설치되어 있지 않습니다.

이 사이트를 나눔글꼴로 보기 위해서는
나눔글꼴을 설치해야 합니다.

설치 취소