스킬캠퍼스
22 · GPU: 많은 일을 한꺼번에
강의

오늘 끝나면

GPU: 많은 일을 한꺼번에

  • CPU는 똑똑한 코어 소수, GPU는 단순한 코어 대군이라는 설계 차이를 설명할 수 있음
  • 병렬 처리가 왜 그래픽(픽셀 동시 칠하기)에서 출발해 행렬·AI 연산에 맞는지 말할 수 있음
  • 병렬이 통하는 조건(작업이 많고 서로 독립)을 들어 GPU가 유리한 경우와 아닌 경우를 구분할 수 있음

실습 미션

오른쪽 실험에서 작업 수를 키우고 GPU 코어 수를 올린 뒤 처리 시작을 눌러, GPU가 CPU보다 몇 배 빨리 끝나는지 직접 확인해 보셈.

성공 조건

  • 작업 수를 늘릴수록 GPU와 CPU의 라운드 차이가 벌어지는 걸 봄
  • GPU 코어 수를 올리면 GPU 라운드가 줄어 더 빨리 끝남을 확인함
  • 끝난 뒤 'GPU가 약 N배 빠름' 결과를 읽고 그 이유(라운드=올림(작업÷코어))를 설명할 수 있음

병렬 처리 · 그래픽 · 행렬 연산

GPU: 많은 일을 한꺼번에

CPU는 똑똑한 코어 몇 개로 어려운 일을 빨리 풂. GPU는 단순한 코어 수천 개로 같은 일을 한꺼번에 풂. 이 '한꺼번에'가 병렬이고, 오늘 AI를 떠받치는 힘임.

NVIDIAAMDIntel
P.0122 · GPU: 많은 일을 한꺼번에

소수 정예 vs 단순한 대군

CPU와 GPU는 같은 '코어'를 가졌지만 설계 철학이 정반대임.

CPU는 코어가 몇 개뿐임. 대신 하나하나가 똑똑해서, 갈래 많고 순서 꼬인 복잡한 일을 깊게 빨리 풂.

GPU는 반대로 감. 단순한 코어를 수백~수천 개 박음. 코어 하나는 굼떠도 떼로 덤비면 무서움.

그래서 어려운 일 하나는 CPU가, 쉬운 일 수천 개는 GPU가 이김. 도구가 다른 게 아니라 전략이 다른 거임.

코어 적고 똑똑함 vs 코어 많고 단순함 — 눌러서 비교
같은 칩 면적, 다른 전략 — 눌러서 비교
core 1
core 2
core 3
core 4

큰 코어 4개 — 면적을 똑똑함에 씀

코어 수
코어 몇 개
코어 성격
코어 하나가 똑똑함
잘하는 일
복잡한 일 하나를 빨리

CPU는 소수 정예. 갈래 많고 순서 꼬인 일을 코어 하나가 깊게 빨리 풂.

P.0222 · GPU: 많은 일을 한꺼번에

픽셀을 한꺼번에 칠하다

GPU의 'G'는 Graphics임. 원래 화면 그리려고 태어난 칩임.

화면은 픽셀 수백만 개의 격자임. 각 픽셀 색은 거의 같은 공식으로 계산되고, 서로 남의 답을 기다릴 필요가 없음.

그래서 한 픽셀씩 줄 세우는 대신, 수천 개를 동시에 칠하면 화면이 단번에 뜸. 직렬은 한 칸씩, 병렬은 한 줄을 통째로.

1999년 NVIDIA가 지포스 256을 'GPU'라는 이름으로 내놓으며 이 동시-칠하기 구조를 대중화함.

직렬 한 칸씩 vs 병렬 한꺼번에 — 픽셀 칠하기
같은 그림, 칠하는 방식 — 한 칸씩 vs 한 줄씩
칠한 픽셀 0/800/80 스텝

직렬은 픽셀 1칸씩 — 다 칠하는 데 80스텝. GPU는 이 '한 줄 통째' 방식을 수천 칸으로 키운 칩임.

P.0322 · GPU: 많은 일을 한꺼번에

행렬 곱은 픽셀 칠하기와 똑같다

알고 보니 픽셀 칠하기 모양을 한 계산이 하나 더 있었음 — 행렬 곱셈임.

딥러닝 속은 거의 다 행렬 곱임. 결과 칸 하나하나가 '곱하고 더하기'의 반복이고, 칸끼리는 서로 독립임.

독립이라는 게 핵심임. 픽셀처럼 서로 안 기다리니, 수천 칸을 GPU 코어에 한 칸씩 맡겨 한꺼번에 굴림.

그래서 CPU로 며칠 걸릴 학습이 몇 시간으로 줄어듦. 2007년 NVIDIA가 CUDA로 이 힘을 일반 계산에 열어줌 — 지금 AI 붐의 하드웨어 바탕임.

결과 칸마다 곱하고-더하기 · 칸끼리 독립이라 동시 계산
행렬 곱 — 칸마다 곱하고 더하기, 칸끼리 독립
A×B=C결과 칸

A의 한 × B의 한 → C의 한 칸. 곱해서 더하면 끝.

C의 칸들은 서로 안 기다림 → 코어에 한 칸씩 맡겨 동시에
C₁₁core 1
a₁₁·b₁₁ + a₁₂·b₂₁
C₁₂core 2
a₁₁·b₁₂ + a₁₂·b₂₂
C₂₁core 3
a₂₁·b₁₁ + a₂₂·b₂₁
C₂₂core 4
a₂₁·b₁₂ + a₂₂·b₂₂

딥러닝 속은 거의 다 이 곱-더하기의 반복임. 결과 칸이 수백만 개라도 서로 독립이라, GPU 코어들이 한꺼번에 채움. 픽셀 칠하기와 똑같은 구조임.

P.0422 · GPU: 많은 일을 한꺼번에

병렬이 통하려면 — 독립이어야 한다

코어를 아무리 많이 깔아도 항상 빨라지는 건 아님. 일이 서로 '독립'일 때만 병렬이 통함.

독립이면 코어들이 동시에 출발해 동시에 끝남. 픽셀·행렬 칸이 그래서 GPU에 딱 맞았던 거임.

반대로 앞 결과를 받아야 다음을 푸는 '의존' 사슬이면, 코어 천 개가 있어도 999개는 줄 서서 놂.

그래서 GPU는 만능이 아님. 똑같은 일을 잔뜩, 서로 안 엮인 채 던질 때 진가가 나옴. 엮인 일은 여전히 CPU 몫임.

독립이면 동시·의존이면 줄서기 — 토글해서 보기
코어 8개·작업 8개 — 독립이냐 의존이냐로 갈림
작업 8— 따로따로
1
2
3
4
5
6
7
8
완료 라운드
0 / 1
놀고 있는 코어
0 / 8

독립이면 코어 8개가 동시에 출발 → 1라운드에 끝. 이게 픽셀·행렬이 GPU에 맞는 이유임.

P.0522 · GPU: 많은 일을 한꺼번에

직접 CPU vs GPU 처리 시간 재보기

이제 직접 만져볼 차례임. 작업 수와 GPU 코어 수를 정하고, CPU(코어 4)와 GPU에 같은 일을 동시에 던져보셈.

한 라운드마다 코어 수만큼 작업이 끝남. 그래서 완료 라운드 = 올림(작업÷코어)임. 코어 많은 GPU가 라운드가 적어 먼저 끝남.

작업 수를 키우고 GPU 코어를 올릴수록, 'GPU가 약 몇 배 빠름' 숫자가 점점 벌어짐.

단순한 일이 많을수록 GPU가 압승함 — 1강에서 본 모든 이야기가 이 한 칸에서 숫자로 확인됨.

작업 수·GPU 코어 수 슬라이더 — 동시 처리해 몇 배 빠른지 확인
CPU vs GPU · 같은 작업, 다른 코어 수
작업 수64
GPU 코어 수 (CPU는 4 고정)256
CPU · 코어 4
0/640R
GPU · 코어 256
0/640R
완료 시간 — 적은 라운드일수록 빠름
CPU 라운드
16
GPU 라운드
1

한 라운드마다 코어 수만큼 작업이 동시에 끝남. 코어가 많을수록 라운드 수가 줄어 빨리 끝남. 라운드 = 올림(작업÷코어).

3줄 요약

  1. 1CPU는 똑똑한 코어 몇 개로 복잡한 일을, GPU는 단순한 코어 수천 개로 쉬운 일을 한꺼번에 풂.
  2. 2픽셀을 동시에 칠하던 그래픽 구조가 행렬 곱에도 그대로 맞아, 2007년 CUDA를 거쳐 AI 연산의 주력이 됨.
  3. 3병렬은 작업이 많고 서로 독립일 때만 통함. 의존 사슬이면 코어가 많아도 줄을 서므로 GPU는 만능이 아님.

완료 전 점검

복습 카드

병렬 처리

여러 일을 동시에 함. 서로 안 기다리고 한꺼번에 굴림

코어

계산을 실제로 하는 일꾼. CPU는 적고 똑똑, GPU는 많고 단순

독립/의존

독립이면 동시에 풀 수 있고, 의존이면 앞 결과를 기다려 줄을 섬