개요
GPU(Graphics Processing Unit)는 많은 연산을 병렬로 수행할 수 있도록 설계된 프로세서다. 그래픽 처리에서 발전했지만 행렬·벡터 계산처럼 병렬성이 높은 작업에 적합해 현대 딥러닝 학습과 Inference에서 중요한 가속 하드웨어로 사용된다.
CUDA의 예
NVIDIA의 CUDA는 GPU의 병렬 계산 자원을 일반 목적 계산에 사용할 수 있도록 제공하는 병렬 컴퓨팅 플랫폼과 프로그래밍 모델이다.[1] CUDA 프로그래밍 가이드는 thread group, 메모리 계층과 동기화 같은 병렬 실행 개념을 설명한다.[1]
AI 시스템에서의 의미
LLM 실행 성능은 GPU라는 이름 하나로 결정되지 않는다. 사용 가능한 메모리, 메모리 대역폭, 계산 정밀도, 모델 구조, 배치 크기와 소프트웨어 스택이 함께 영향을 준다. 따라서 하드웨어 비교에서는 모델과 측정 조건을 함께 확인해야 한다.
계산 예제: 가중치가 들어가도 작업은 메모리를 넘는다
다음은 특정 GPU 사양이 아닌 가상 메모리 예산이다. 70억 파라미터의 16비트 원시 가중치는 70억×2바이트 = 140억 바이트, 십진 GB 기준 14GB다. 가중치 외에 캐시 4GB와 기타 실행용 메모리 2GB가 필요하다고 가정하면 합계는 20GB다. 가상의 사용 가능 용량 16GB 장치에서는 가중치만 보고 실행 가능하다고 판단할 수 없다.
GB와 GiB, 예약 공간과 실제 사용 가능 용량을 구분하고 모델 적재·입력 처리·생성 중 최대 사용량을 나눠 측정한다. 정밀도 축소는 가중치 예산을 바꿀 수 있지만 캐시와 중간 결과까지 같은 비율로 줄어드는 것은 아니다. 캐시는 문맥과 동시 요청에 따라 달라진다. CUDA 가이드 ↗가 설명하는 장치·호스트 메모리와 전송도 함께 확인한다.[1]
시간 예제: 연산을 두 배 빠르게 해도 전체는 1.33배
가상의 겹치지 않는 한 요청에서 전처리 40ms, 전송 10ms, GPU 계산 50ms라면 총 100ms다. 계산만 25ms로 줄이면 총시간은 40 + 10 + 25 = 75ms, 속도 향상은 100 / 75 = 약 1.33배다. GPU 계산의 두 배 개선을 요청 전체의 두 배 개선으로 옮겨 쓰지 않는다.
실제 파이프라인은 전송과 연산을 겹칠 수도 있으므로 이 합산 가정을 먼저 확인한다. 대기·전처리·전송·연산·후처리의 시간을 분리하고, 첫 출력과 완료 시간을 구별한다. 장치 사용률만 높아도 정확한 작업 완료가 늘지 않을 수 있다. 동일 모델·입출력 길이·동시성과 품질 조건을 유지해 비교한다.
대역폭과 계산량을 비교하는 가상 상한
NVIDIA 성능 가이드 ↗는 바이트당 연산 수인 arithmetic intensity를 계산 성능과 메모리 대역폭의 비율에 비교해 병목을 읽는 방법을 설명한다.[2] 가상 장치의 계산 상한이 800GFLOP/s, 대역폭이 80GB/s라면 경계는 10FLOP/바이트다. 연산 집약도가 5이면 단순 상한은 min(800, 80×5) = 400GFLOP/s, 20이면 min(800, 80×20) = 800GFLOP/s다.
이는 자료형·메모리 접근 범위를 고정한 설명용 상한이며 달성 가능한 실측 성능이 아니다. 작은 작업, 충분하지 않은 병렬성, 반복 읽기와 커널 실행 비용은 이 계산에서 빠졌다. 모델 연산과 배치를 바꾸면 같은 GPU에서도 집약도와 병목이 달라질 수 있다.
비교 보고서에 남겨야 할 실행 조건
장치·소프트웨어 버전, 정밀도, 배치, 토큰 수, 캐시 상태, 워밍업, 측정 반복과 실패 요청의 집계 규칙을 남긴다. 메모리에 들어가는가, 목표 응답 시간 안에 끝나는가, 답 품질이 유지되는가를 각각 확인한다. 광고된 최고 연산 수치를 곧바로 추론 처리량으로 해석하지 않는다.
같은 장치라도 짧은 분류와 긴 순차 생성의 병목은 다를 수 있다. 측정하지 않은 항목은 미확인으로 표시하고 시스템 문서에 실제 모델·캐시·서빙 구성을 연결한다. 용량·대역폭·연산·완료 성과를 나눠야 장치 이름보다 유용한 비교가 된다.