최신글

GPU 하드웨어 스펙표를 처음 볼 때, 보면 좋을 스펙

반응형

GPU 하드웨어 스펙표를 처음 열면 VRAM 80GB, 메모리 대역폭 3.35TB/s, FP8 3,958TFLOPS 같은 숫자가 보입니다. “그래서 어떤 숫자부터 봐야 하지?”헷갈려서, GPU 처음입문할때 보면 좋은 GPU스펙을 정리했습니다.

 

1. VRAM

가장 먼저 볼 항목은 VRAM입니다. VRAM은 모델 가중치와 추론에 필요한 데이터를 올려두는 GPU 메모리입니다. 단일 GPU로 모델을 실행할 때는 가중치와 추론 데이터를 VRAM에 담을 수 있는지 먼저 확인해야 합니다.

 

AI모델 로드할때 계산식은 파라미터 수 × 파라미터 하나의 바이트로 어림할 수 있습니다. 파라미터 바이트는 데이터 타입크기로 부동소수점 표현인데 이전 블로그에 다뤘으므로 참고하시길 바랍니다.
- AI모델 숫자표현: https://malwareanalysis.tistory.com/956

 

FP16은 파라미터 하나당 2바이트, FP8은 1바이트로 단순 계산하면, AI모델을 로드하기 위한 VRAM은 아래처럼 계산됩니다.

8B 약 80억 파라미터 약 16GB(8x2) 약 8GB(8x1)
32B 약 320억 파라미터 약 64GB(32x2) 약 32GB(32x1)
70B 약 700억 파라미터 약 140GB(70x2) 약 70GB(70x1)

 

모델 크기와 저장 데이터 타입은 모델 카드와 체크포인트 메타데이터에서 확인하는 편이 정확합니다. config.json은 모델 구조와 데이터 타입의 단서를 제공합니다.

 

가중치 계산이 끝나면 추론 중에 사용하는 VRAM도 더해야 합니다. AI 모델은 KV cache(이미 처리한 토큰의 중간 결과), activation과 workspace(계산에 사용하는 임시 공간), CUDA runtime(GPU 실행 환경)에도 VRAM을 사용합니다. KV cache는 입력·출력 길이와 동시 요청 수가 늘수록 커지므로, 가중치 크기와 같은 VRAM을 가진 GPU는 여유가 있다고 볼 수 없습니다.

 

2. FLOPS

FLOPS(Floating Point Operations Per Second)는 1초에 수행할 수 있는 부동소수점 연산 횟수입니다. TFLOPS는 1초에 1조 번, PFLOPS는 1초에 1,000조 번의 연산을 뜻합니다. GPU 스펙표에 FP8과 FP16 성능을 따로 표시하는 이유는 데이터 타입에 따라 최대 연산량이 달라지기 때문입니다.

 

FLOPS가 두 배라고 실제 응답 속도가 항상 두 배가 되는 것은 아닙니다. 스펙표의 FLOPS는 이론상 최대치이며, Tensor Core 사용 여부와 sparsity(일부 0 값을 건너뛰는 가속) 적용 여부에 따라 숫자가 달라집니다. 예를 들어 NVIDIA는 H100 SXM의 FP8 성능을 3,958TFLOPS로 표시하면서 이 수치에 sparsity가 적용됐다고 명시합니다. GPU끼리 비교할 때는 같은 데이터 타입과 같은 sparsity 조건의 수치인지 확인해야 합니다.

 

FLOPS의 영향을 많이 받는 단계는 일반적으로 prefill입니다. prefill은 입력 프롬프트를 한꺼번에 처리해 첫 토큰을 준비하는 단계입니다. 계산량의 영향을 많이 받으므로 해당 데이터 타입의 연산 성능이 중요합니다. 다만 실제 성능은 모델 구조, 입력 길이, batch 크기(한 번에 묶어 처리하는 요청 수), 추론 엔진과 kernel 최적화에도 달라집니다.

 

3. 메모리 대역폭

VRAM 용량이 창고 크기라면 메모리 대역폭은 창고에서 GPU 계산 장치로 데이터를 나르는 통로의 폭에 해당합니다. 3TB/s는 이론상 1초에 3TB를 옮길 수 있다는 의미입니다.

 

메모리 대역폭에 성능영향을 많이 미치는 것은 decode입니다. decode는 첫 토큰 이후에 토큰을 하나씩 생성하는 단계인데, 토큰을 생성할 때마다 가중치와 KV cache를 반복해서 읽기 때문에 일반적으로 메모리 대역폭의 영향을 많이 받습니다. 따라서 VRAM 용량이 같은 GPU라도 대역폭이 높으면 decode 처리량과 토큰 생성 속도에 유리할 수 있습니다.

 

다만 메모리 대역폭도 이론상 수치입니다. 실제 decode 속도는 batch 크기, 동시 요청 수, quantization 형식, 추론 엔진과 kernel 최적화에도 달라집니다.

 

마무리

  • 모델 가중치와 추론 데이터가 VRAM에 들어가는지 확인합니다.
  • 모델이 실제로 사용할 FP8·FP16 등 FLOPS을 확인합니다.
  • decode를 처리할 메모리 대역폭이 충분한지 확인합니다.

 

참고자료

반응형