오늘 끝나면
GPU: 많은 일을 한꺼번에
- ✓CPU는 똑똑한 코어 소수, GPU는 단순한 코어 대군이라는 설계 차이를 설명할 수 있다
- ✓병렬 처리가 왜 그래픽(픽셀 동시 칠하기)에서 출발해 행렬과 AI 연산에 맞는지 말할 수 있다
- ✓병렬이 통하는 조건(작업이 많고 서로 독립)을 들어 GPU가 유리한 경우와 아닌 경우를 구분할 수 있다
실습 미션
오른쪽 실험에서 작업 수를 키우고 GPU 코어 수를 올린 뒤 처리 시작을 눌러, GPU가 CPU보다 몇 배 빨리 끝나는지 직접 확인한다.
성공 조건
- □작업 수를 늘릴수록 GPU와 CPU의 라운드 차이가 벌어지는 것을 본다
- □GPU 코어 수를 올리면 GPU 라운드가 줄어 더 빨리 끝나는 것을 확인한다
- □끝난 뒤 'GPU가 약 N배 빠름' 결과를 읽고 그 이유(라운드는 올림(작업÷코어))를 설명할 수 있다
병렬 처리 · 그래픽 · 행렬 연산
GPU: 많은 일을 한꺼번에
CPU는 똑똑한 코어 몇 개로 어려운 일을 빨리 푼다. GPU는 단순한 코어 수천 개로 같은 일을 한꺼번에 푼다. 이 '한꺼번에'가 병렬이고, 오늘 AI를 떠받치는 힘이다.
소수 정예 vs 단순한 대군
CPU와 GPU는 같은 '코어'를 가졌지만 설계 철학이 정반대다.
CPU는 코어가 몇 개뿐이다. 대신 하나하나가 똑똑해서, 갈래 많고 순서 꼬인 복잡한 일을 깊고 빠르게 푼다.
GPU는 반대로 간다. 단순한 코어를 수백에서 수천 개 박는다. 코어 하나는 굼떠도 떼로 덤비면 무섭다.
그래서 어려운 일 하나는 CPU가, 쉬운 일 수천 개는 GPU가 이긴다. 도구가 다른 게 아니라 전략이 다른 것이다.
큰 코어 4개, 면적을 똑똑함에 씀
CPU는 소수 정예. 갈래 많고 순서 꼬인 일을 코어 하나가 깊게 빨리 풂.
픽셀을 한꺼번에 칠하다
GPU의 'G'는 Graphics다. 원래 화면을 그리려고 태어난 칩이다.
화면은 픽셀 수백만 개의 격자다. 각 픽셀 색은 거의 같은 공식으로 계산되고, 서로 남의 답을 기다릴 필요가 없다.
그래서 한 픽셀씩 줄 세우는 대신 수천 개를 동시에 칠하면 화면이 단번에 뜬다. 직렬은 한 칸씩 처리하고, 병렬은 한 줄을 통째로 처리한다.
1999년 NVIDIA가 지포스 256을 'GPU'라는 이름으로 내놓으며 이 동시 칠하기 구조를 대중화했다.
직렬은 픽셀 1칸씩, 다 칠하는 데 80스텝. GPU는 이 '한 줄 통째' 방식을 수천 칸으로 키운 칩임.
행렬 곱은 픽셀 칠하기와 똑같다
알고 보니 픽셀 칠하기와 모양이 같은 계산이 하나 더 있었다. 바로 행렬 곱셈이다.
딥러닝 속은 거의 다 행렬 곱이다. 결과 칸 하나하나가 '곱하고 더하기'의 반복이고, 칸끼리는 서로 독립이다.
독립이라는 게 핵심이다. 픽셀처럼 서로 안 기다리니, 수천 칸을 GPU 코어에 한 칸씩 맡겨 한꺼번에 굴린다.
그래서 CPU로 며칠 걸릴 학습이 몇 시간으로 줄어든다. 2007년 NVIDIA가 CUDA로 이 힘을 일반 계산에 열어줬고, 지금 AI 붐의 하드웨어 바탕이 됐다.
A의 한 행 × B의 한 열 → C의 한 칸. 곱해서 더하면 끝.
딥러닝 속은 거의 다 이 곱-더하기의 반복임. 결과 칸이 수백만 개라도 서로 독립이라, GPU 코어들이 한꺼번에 채움. 픽셀 칠하기와 똑같은 구조임.
병렬이 통하려면, 독립이어야 한다
코어를 아무리 많이 깔아도 항상 빨라지는 건 아니다. 일이 서로 '독립'일 때만 병렬이 통한다.
독립이면 코어들이 동시에 출발해 동시에 끝난다. 픽셀과 행렬 칸이 그래서 GPU에 딱 맞았던 것이다.
반대로 앞 결과를 받아야 다음을 푸는 '의존' 사슬이면, 코어가 천 개 있어도 999개는 줄 서서 논다.
그래서 GPU는 만능이 아니다. 똑같은 일을 잔뜩, 서로 안 엮인 채 던질 때 진가가 나온다. 엮인 일은 여전히 CPU 몫이다.
독립이면 코어 8개가 동시에 출발 → 1라운드에 끝. 이게 픽셀·행렬이 GPU에 맞는 이유임.
직접 CPU vs GPU 처리 시간 재보기
이제 직접 만져볼 차례다. 작업 수와 GPU 코어 수를 정하고, CPU(코어 4)와 GPU에 같은 일을 동시에 던져본다.
한 라운드마다 코어 수만큼 작업이 끝난다. 그래서 완료 라운드는 올림(작업÷코어)이다. 코어 많은 GPU가 라운드가 적어 먼저 끝난다.
작업 수를 키우고 GPU 코어를 올릴수록 'GPU가 약 몇 배 빠름'이라는 숫자가 점점 벌어진다.
단순한 일이 많을수록 GPU가 압승한다. 1강에서 본 모든 이야기가 이 한 칸에서 숫자로 확인된다.
한 라운드마다 코어 수만큼 작업이 동시에 끝남. 코어가 많을수록 라운드 수가 줄어 빨리 끝남. 라운드 = 올림(작업÷코어).