AEGLOSLAB 엔비디아 기술 스택

제1부 GPU 아키텍처

1.1 처리량 vs 지연 컴퓨팅

1.1.1 이 장에서 배우는 것 / 선수 지식

제1부의 첫 장이다. GPU를 "왜 빠른가"의 관점에서 한 문장으로 압축할 사고 모형을 세운다 — CPU는 지연을 줄이고, GPU는 지연을 은닉한다. 이 한 줄이 제1부(아키텍처)·제2부(CUDA) 전체의 토대다. SIMT 실행 모델·지연 은닉의 메커니즘은 다음 장(1.2)에서 잇는다.

이 장을 마치면 다음을 할 수 있어야 한다.

  • 처리량(throughput) 컴퓨팅과 지연(latency) 컴퓨팅의 차이를 설명하고, CPU·GPU 설계 철학 대비를 그림으로 그린다.
  • 같은 트랜지스터 예산을 CPU는 제어·캐시에, GPU는 ALU 밀도에 쓰는 이유를 안다.
  • "GPU는 코어가 많아서 빠르다"는 말의 부정확한 점을 지적한다.
  • 왜 이 구조가 딥러닝(대규모 행렬 연산)에 잘 맞는지 설명한다.

선수 지식: 0.1·0.2(풀스택·학습 지도)·0.3(환경). CPU 캐시·파이프라인·SIMD, 지연(latency)과 대역폭(bandwidth)의 차이 정도는 안다고 본다. CUDA 문법은 아직 필요 없다(2.1부터).

정직성 노트(S-5): 이 장의 구체 수치(클럭·코어 수·지연 사이클)는 설명용 개략값·예시다. 세대·제품마다 다르며 "시점 의존, 확인 필요". 핵심은 숫자가 아니라 비율과 관계에 대한 정성적 이해이다.


1.1.2 두 가지 빠름 — 지연 컴퓨팅 vs 처리량 컴퓨팅

"빠르다"에는 서로 다른 두 정의가 있다. 이 구분이 CPU와 GPU가 갈리는 출발점이다.

  • 지연(latency): 작업 하나를 시작부터 끝까지 얼마나 짧은 시간에 마치는가. "이 한 건을 최대한 빨리."
  • 처리량(throughput): 단위 시간에 작업을 몇 개 마치는가. "전체를 최대한 많이."

둘은 같지 않다. 비유: 스포츠카(지연 최적)는 한 사람을 가장 빨리 데려다준다. 2층 버스(처리량 최적)는 한 사람당으로 보면 느릴 수 있지만 한 번에 80명을 옮긴다. 80명을 옮기는 총 시간은 버스가 압도한다.

구분지연 최적화 (CPU 철학)처리량 최적화 (GPU 철학)
목표작업 1건의 완료 시간을 최소화단위 시간당 완료 건수를 최대화
방법분기 예측·거대 캐시·OoO 실행·깊은 파이프라인으로 '이 한 건'을 멈추지 않게 한다수천 스레드를 동시에 — 한 건이 느려도 다른 건으로 자리를 메움. 지연은 '가리면(hide)' 된다

CPU는 직렬·분기 많은·지연 민감한 워크로드(OS, 단일 요청 응답, 포인터 추적)를 위해 한 스레드를 멈추지 않게 막대한 트랜지스터를 제어 로직과 캐시에 투자한다. GPU는 동일·독립 연산이 수백만 개 있는 워크로드(픽셀, 행렬 원소, 입자)를 위해 연산 자원(ALU) 밀도에 투자하고, 지연은 "많은 일거리로 은닉해" 처리량을 끌어올린다.

핵심 한 줄: CPU는 지연을 줄이려 하고, GPU는 지연을 가리려 한다. 이 한 문장이 이 장 전체의 요약이다.


1.1.3 칩 위의 트랜지스터 예산 — CPU vs GPU

같은 실리콘 면적(트랜지스터 예산)을 어디에 쓰느냐가 두 철학을 물리적으로 가른다.

CPU (소수 강력 코어) Core 제어·OoO Core 제어·OoO 큰 L2/L3 캐시 (지연 숨김의 주력) 제어 로직 (분기예측·OoO) 큼 면적의 多 = 캐시 + 제어 코어 수 수~수십 · 스레드당 빠름 · 지연 민감 GPU (다수 단순 코어) 수천 개의 작은 ALU 다발 작은 제어 (스케줄러) 작은 L2 + 큰 메모리 대역폭 면적의 多 = 연산 유닛(ALU) 코어 수 수천 · 스레드당 느림 · 대량 병렬

표로 대비하면:

축CPUGPU
설계 목표한 스레드 지연 최소화총 처리량 최대화
코어소수·복잡(분기예측·OoO·깊은 파이프라인)다수·단순(연산 레인 밀집)
제어 로직 비중큼작음(여러 레인이 제어 공유)
캐시크고 다층(지연 은닉 주력)상대적으로 작음, 대신 대역폭·동시 스레드로 은닉
동시 스레드(in-flight)코어당 1~2(SMT)SM당 수십 워프 = 수백~수천 스레드
클럭높음상대적으로 낮음
잘 맞는 일직렬·분기·지연 민감대량·동일·독립 연산(데이터 병렬)

여기서 "GPU는 수천 코어"라는 말의 함정을 짚자. 그 "코어"는 CPU 코어처럼 독립적으로 자기 명령 흐름을 가진 단위가 아니다. 여러 레인이 하나의 명령을 공유해 동시에 실행한다(SIMT, 1.2). 그래서 GPU 코어 수와 CPU 코어 수를 직접 비교하는 것은 사과와 오렌지다. 칩 상위 구조(GPC·TPC·SM 계층)는 1.3, SM 내부는 1.4~1.6에서 분해한다.


1.1.4 왜 GPU가 딥러닝에 맞는가

처리량 철학의 결론을 미리 본다. 딥러닝의 계산은 GPU 철학과 거의 완벽히 겹친다.

  • 대량의 동일·독립 연산: 신경망의 핵심은 행렬곱(GEMM)·합성곱이다. 출력 원소 하나하나가 독립적인 곱-누적이다 → "같은 명령, 다른 데이터"(SIMT, 1.2)에 정확히 맞고, 워프를 수천 개 띄울 병렬성이 충분하다.
  • 재사용 가능한 데이터 → 높은 산술 강도: 큰 GEMM은 타일링으로 데이터 재사용을 높여 연산 바운드로 끌어올린다 → 연산 천장(텐서코어, 1.11)을 정조준. 그래서 행렬곱 전용 하드웨어(텐서코어)와 저정밀도(1.13)가 딥러닝 성능을 폭발시킨다.
  • 지연보다 처리량이 중요: 학습·대량 추론은 "이 한 샘플을 1ms 빨리"보다 "초당 토큰·이미지를 최대한 많이"가 가치다 → 처리량 컴퓨팅의 정의 그 자체.
  • 분기가 적은 규칙적 구조: dense 연산은 다이버전스(1.2)가 거의 없어 SIMT 효율이 높다(반면 트리·그래프·심한 분기 알고리즘은 GPU에 덜 맞는다 — 정직하게).

요약하면, 딥러닝은 "병렬성 풍부 + 데이터 병렬 + 처리량 지향 + 규칙적"이라는, GPU가 가장 잘하는 워크로드의 교과서적 사례다. 그래서 엔비디아 스택 전체(CUDA→cuBLAS/cuDNN→TensorRT→도메인)가 이 토대 위에 쌓인다.


1.1.5 중간 점검 (체크포인트)

여기까지 이해했다면 다음을 답할 수 있어야 한다.

  • [ ] "지연을 줄인다 vs 은닉한다"로 CPU·GPU 철학을 한 문장씩 구분한다.
  • [ ] 트랜지스터 예산을 CPU는 어디에, GPU는 어디에 쓰는지 그림으로 그린다.
  • [ ] "GPU는 코어가 많아서 빠르다"의 부정확한 점(코어 ≠ 독립 명령 흐름)을 지적한다.
  • [ ] 딥러닝이 왜 GPU 워크로드의 교과서적 사례인지 네 가지로 제시한다.

막히는 신호: "코어 수"로 GPU를 평가하려 든다면 → 1.1.3의 마지막 문단("하나의 명령을 공유")으로 돌아간다.


1.1.6 흔한 함정

  • "코어 수"로 GPU를 평가. GPU 코어는 독립 코어가 아니다. 실효 성능은 점유율·메모리·다이버전스가 좌우한다(1.6·1.10).
  • 지연 은닉을 "캐시가 크다"로 착각. GPU 캐시는 상대적으로 작다. 은닉의 주력은 캐시가 아니라 많은 워프 + 거대 레지스터 파일 + 높은 대역폭이다(1.2·1.4).
  • 작은 문제를 GPU에 던지고 빠르길 기대. 병렬성이 부족하면 지연이 노출돼 GPU가 CPU보다 느릴 수 있다. GPU는 "큰 병렬 문제"에서 이긴다.
  • 모든 워크로드가 GPU에 맞다고 가정. 직렬·분기·포인터 추적 위주(트리·그래프)는 CPU가 낫다. GPU는 데이터 병렬·규칙적 연산이 강점이다.

1.1.7 연습문제

각 문제 아래 정답:을 접어 둔다. 먼저 스스로 풀어라.

연습 1 (처리량 vs 지연 사고). 다음 두 워크로드 각각에 CPU와 GPU 중 무엇이 더 적합한지, 이유를 한 줄로. (a) 단일 사용자 웹 요청에 대한 빠른 응답, (b) 1,000만 장 이미지에 동일한 필터 적용.

정답

(a) CPU — 한 건의 지연 최소화가 가치, 병렬성 낮음. (b) GPU — 대량·동일·독립 연산, 처리량 지향. 핵심 판별축은 "병렬성의 양"과 "지연 vs 처리량 중 무엇이 가치인가".

연습 2 (트랜지스터 예산). "GPU에 거대한 L3 캐시를 달면 CPU만큼 지연 민감 워크로드도 잘하게 될까?"에 답하라. 설계 철학 관점에서.

정답

아니다(또는 그렇게 하면 GPU의 강점이 희석된다). 캐시·제어에 면적을 쓰면 ALU 밀도가 줄어 처리량이 떨어진다. GPU는 지연을 캐시로 줄이는 대신 "많은 워프로 은닉하는" 전략을 택했고, 그것이 ALU 밀도를 가능케 한다. 두 철학은 면적 예산을 두고 트레이드오프 관계다.

연습 3 (워크로드 적합성). 깊은 재귀와 포인터 추적이 많은 그래프 탐색 알고리즘을 GPU로 옮겼더니 CPU보다 느렸다. 1.1로 그 이유를 설명하라.

정답

그래프 탐색은 (1) 병렬성이 불규칙·부족하고(워프를 충분히 못 채움 → 지연 노출), (2) 분기·포인터 추적이 많아 다이버전스(1.2)와 비병합 메모리 접근이 심하다. GPU가 강한 "대량·동일·독립·규칙적" 조건과 정반대라 처리량 이점이 안 나온다.


1.1.8 요약 · 다음 장

  • "빠름"엔 지연과 처리량 두 정의가 있고, CPU는 지연을 줄이고 GPU는 지연을 은닉한다.
  • 트랜지스터 예산을 CPU는 제어·캐시에, GPU는 ALU 밀도에 쓴다. "수천 코어"는 독립 코어가 아니라 명령을 공유하는 연산 레인이다.
  • 딥러닝은 "병렬성 풍부 + 데이터 병렬 + 처리량 지향 + 규칙적"이라 GPU 워크로드의 교과서적 사례다.

다음 장: 1.2 SIMT·워프·지연 은닉 — "지연을 은닉한다"가 실제로 어떻게 일어나는지, 워프 lockstep·다이버전스·지연 은닉의 산수를 본다. 이 메커니즘이 GPU 처리량의 핵심 원리이다.