본문으로 건너뛰기

© 2026 Molayo

Dev.to헤드라인2026. 06. 18. 08:39

AI 학습에서 GPU가 CPU보다 뛰어난 이유 (그리고 왜 단순히 더 큰 CPU를 만들 수 없는가)

요약

AI 학습 워크로드의 특성과 CPU 및 GPU의 설계 차이점을 분석합니다. 병렬 연산이 핵심인 AI 학습에서는 복잡한 제어 로직을 가진 CPU보다 단순한 코어를 대량으로 배치한 GPU가 훨씬 효율적임을 설명합니다.

핵심 포인트

  • AI 학습은 독립적인 연산이 반복되는 '당혹스러울 정도로 병렬적인' 특성을 가짐
  • CPU는 분기 예측 등 복잡한 제어 로직에 최적화되어 AI 연산 시 자원 낭비 발생
  • GPU는 SIMT 구조를 통해 수만 개의 단순 코어로 대규모 병렬 연산 수행
  • 코어당 전력 효율성 측면에서도 GPU가 CPU보다 압도적으로 유리함

최근 Intel 면접에서 계속 머릿속을 맴도는 질문이 하나 생겼습니다. 왜 AI 학습에는 실제로 GPU가 CPU보다 더 나은 것이며, 왜 단순히 CPU를 더 크게 만드는 것으로 이 문제를 해결할 수 없는 걸까요? 이는 겉보기에는 단순해 보이는 질문입니다. 솔직한 답변은 "GPU가 더 빠르다"가 아니라, CPU와 GPU는 설계 단계부터 서로 다른 문제를 해결하도록 만들어졌으며, AI 학습은 공교롭게도 CPU의 설계 방식이 오히려 방해가 되는 종류의 문제라는 것입니다.

워크로드의 형태가 칩보다 더 중요합니다

신경망 (Neural Network)을 학습시키는 것은 본질적으로 반복적인 행렬 곱셈 (Matrix Multiplication)입니다. 텐서 (Tensor)에 적용되는 수백만 또는 수십억 개의 독립적인 곱셈-누산 (Multiply-Accumulate) 연산이 모든 레이어, 모든 배치, 모든 단계에 걸쳐 반복됩니다. 이 워크로드의 결정적인 특징은 이러한 연산 중 거의 어느 것도 서로 의존하지 않는다는 점입니다. 가중치 행렬 (Weight Matrix)의 47번째 요소를 곱할 때 48번째 요소에 어떤 일이 일어났는지 알 필요가 없습니다. 사람들이 이를 "당혹스러울 정도로 병렬적인 (Embarrassingly Parallel)"이라고 부를 때 의미하는 것이 바로 이것입니다.

A CPU 코어는 정반대의 종류의 문제를 해결하도록 구축되었습니다. CPU 코어 실리콘의 대부분은 다음 명령어가 예측 불가능할 때 다음에 무엇을 할지 결정하는 데 사용됩니다. 분기 예측 (Branch Prediction), 비순차 실행 (Out-of-order Execution), 투기적 실행 (Speculative Execution), 깊은 다단계 캐시 (Deep Multi-level Caches) 등 이 모든 것은 코드에 조건문과 데이터 의존적 분기 (Data-dependent Branches)가 가득할 때 하나의 코어에 계속해서 작업을 공급하고 바쁘게 유지하기 위해 존재합니다. 이는 웹 요청을 파싱하거나 데이터베이스를 쿼리할 때 정확히 원하는 방식입니다. 하지만 분기가 전혀 없이 "이 두 숫자를 곱하라"는 명령이 10억 번 반복되는 워크로드에서는 이러한 기능들이 거의 완전히 낭비됩니다.

A GPU는 그러한 장치들의 대부분을 버립니다. 개별적으로 매우 똑똑한 소수의 코어 대신, 그룹 간에 제어 로직을 공유하며 많은 스레드에 걸쳐 동시에 동일한 명령을 일제히 실행하는 수천 개의 단순한 코어를 채워 넣습니다 (NVIDIA는 이를 SIMT, 단일 명령 다중 스레드라고 부릅니다). 개별 GPU 코어는 CPU 코어보다 훨씬 능력이 떨어집니다.

하지만 워크로드(workload)에 필요한 것은 뛰어난 능력이 아니라, 수많은 코어입니다.

현재 수치를 살펴보면 다음과 같습니다.
Intel의 최신 서버 칩인 Xeon 6+ ("Clearwater Forest", 2026년 중반 출시 예정)는 소켓당 최대 288개 코어, 듀얼 소켓 박스에서는 576개의 코어를 탑재합니다. 이는 CPU로서는 엄청난 숫자이며, 그토록 많은 범용 코어를 하나의 다이(die)에 집적하기 위해 실제적인 엔지니어링 노력이 투입되었음을 의미합니다.

NVIDIA의 현재 플래그십 학습 및 추론용 GPU인 Blackwell Ultra B300은 각각 128개의 CUDA 코어를 포함하는 160개의 스트리밍 멀티프로세서(streaming multiprocessors)를 갖추고 있어, 단일 칩에 20,480개의 CUDA 코어를 보유하고 있습니다. 이는 단일 가속기만으로도 현재 Intel이 공급하는 가장 큰 CPU의 코어 수보다 약 70배나 많은 수치입니다.

전력 소비량 또한 다른 관점에서 동일한 이야기를 들려줍니다. 최상위 Xeon 6+ 모델은 288개 코어 전체에서 최대 450W를 소모하며, 코어당 약 1.5W를 사용합니다. 반면 B300은 20,480개 코어 전체에서 최대 1,400W를 소모하며, 코어당 약 0.07W를 사용합니다. 개별 CPU 코어는 GPU 코어보다 전력을 대략 20배 더 소모하는데, 이는 CPU 코어가 행렬 곱셈(matrix multiply)에서는 전혀 사용하지 않을 분기 예측(branch prediction) 및 투기적 실행(speculative execution)에 전력 예산을 할당하기 때문입니다.

메모리 대역폭(Memory bandwidth)이 나머지 절반의 해답입니다.

연산 능력(Compute)만으로는 전체 그림을 설명할 수 없습니다. 그 수많은 코어 중 하나하나가 처리할 데이터가 필요하며, 바로 이 지점에서 격차는 더욱 벌어집니다. Xeon 6+는 12개의 DDR5-8000 메모리 채널을 지원하며, 이는 소켓당 약 770 GB/s의 총 메모리 대역폭으로 계산됩니다. B300은 GPU 패키지에 직접 적층된 고대역폭 메모리인 HBM3e를 사용하여 8 TB/s를 제공하는데, 이는 CPU 대역폭보다 10배 이상 높은 수치입니다.

이 격차는 매우 중요한데, 수천 개의 병렬 코어가 데이터를 기다리며 유휴 상태(idle)로 머물러 있다면 아무런 소용이 없기 때문입니다. GPU는 연산에서의 거대한 병렬성과 메모리 액세스의 거대한 병렬성을 결합하여, 이 두 요소가 함께 확장될 수 있도록 설계되었습니다. 작은 작업 집합(working set)에 대한 저지연(low-latency) 액세스에 최적화된 CPU는 범용 소프트웨어에는 적합한 설계이지만, 수천 개의 실행 유닛(execution units)을 통해 거대한 텐서(tensors)를 지속적으로 스트리밍해야 하는 경우에는 잘못된 설계입니다.

Tensor Cores: 중요한 연산을 위해 특수 제작된 실리콘

범용 CUDA 코어를 넘어, B300에는 스트리밍 멀티프로세서(streaming multiprocessor)당 4개씩 탑재된 전용 Tensor Core(텐서 코어)가 포함되어 있습니다. 이는 5세대 기술로, 범용 명령어(general-purpose instructions)를 통하는 대신 하드웨어에서 직접 행렬 곱셈-누적(matrix multiply-accumulate) 연산을 수행하도록 특수 제작되었습니다. CPU는 AVX-512나 Intel의 AMX와 같은 벡터 명령어 확장(vector instruction extensions)을 통해 동일한 행렬 수학을 표현해야 합니다. 이러한 기술들이 도움을 주기는 하지만, 여전히 행렬 엔진을 흉내 내려고 최선을 다하는 범용 벡터 유닛(general-purpose vector units)일 뿐입니다. Tensor Core는 흉내를 내는 것이 아닙니다. 오직 하나의 작업을 위해 구축된 실리콘이며, 그 작업을 훨씬 적은 에너지와 시간 비용으로 수행합니다.

그렇다면 왜 그냥 CPU를 더 크게 만들지 않는 걸까요?

이 질문이 실제로 중요한 부분입니다. 만약 병렬성(parallelism)이 승부처라면, 왜 GPU 대신 CPU에 20,000개의 코어를 넣지 않는 걸까요?

솔직한 답변은, 그렇게 하면 CPU를 CPU답게 만드는 요소들을 제거하게 된다는 것입니다. 모든 CPU 코어의 가치는 예측 불가능하고, 분기(branchy)가 많으며, 지연 시간(latency)에 민감한 작업을 처리하는 데 능숙하다는 점에서 나오는데, 이러한 능력은 코어를 아무리 많이 추가하더라도 코어당 고정된 실리콘 및 전력 비용을 발생시킵니다. 이러한 코어를 하나의 다이(die)에 20,000개 쌓는다면, 유용한 코어 수에 도달하기도 훨씬 전에 전력 장벽(power wall)과 발열 장벽(heat wall)에 부딪히게 됩니다. Clearwater Forest는 이미 288개의 코어를 확보하기 위해 450W의 전력과 강력한 냉각 시스템이 필요합니다. 동일한 설계를 GPU 수준의 코어 수로 확장하는 것은 단순히 공학적인 불편함의 문제가 아니라, 목표 자체가 다른 칩을 만드는 일이며, 그것이 바로 GPU가 이미 수행하고 있는 역할입니다.

또한 병렬 효율성의 불일치(parallel efficiency mismatch) 문제도 있습니다. 어떻게든 20,000개의 완전한 CPU 코어를 하나의 다이에 집어넣는다 하더라도, AI 학습에는 분기 예측(branch prediction)과 비순차적 실행(out-of-order execution)이 가능한 20,000개의 코어가 필요하지 않습니다. AI 학습에 필요한 것은 각각 빠르게 곱셈과 덧셈을 수행할 수 있는 20,000개의 코어이며, 코어 그룹 간에 제어 로직(control logic)을 공유함으로써, 그 지능을 전혀 사용하지 않을 작업에 대해

이것이 바로 GPU 설계의 실제 통찰입니다. 즉, "더 많은 코어"가 아니라, "워크로드(workload)에 비싼 코어가 필요하지 않기 때문에 더 저렴한 코어를 사용하는 것"입니다.

이를 시각화하는 유용한 방법이 있습니다. CPU 코어는 포뮬러 1(Formula 1) 자동차와 같습니다. 예측 불가능한 지형을 주행하는 데 탁월하지만, 매우 비싸며 제작 및 연료 공급에 엄격한 한계가 있습니다. 반면 GPU 코어는 지게차와 같습니다. 개별적으로는 덜 정교하지만, 만약 해야 할 일이 동일한 팔레트를 만 번 옮기는 것이라면, 지게차 함대가 매우 빠른 자동차 한 대보다 훨씬 낫습니다. 그리고 각 지게차가 저렴하기 때문에 그 함대를 운용할 여력이 생기는 것입니다.

Intel조차도 이에 동의하며, 이것이 바로 진짜 정답입니다.

특히 Intel에 이 질문을 던지는 것이 흥미로운 이유는 다음과 같습니다. Intel은 50년 동안 범용 CPU(general-purpose CPU)를 완성하는 데 시간을 보낸 기업이며, Intel의 자체 로드맵조차 이 점을 인정하고 있습니다. Xeon 6+와 더불어, Intel은 AI 워크로드(workload)를 위해 특별히 설계된 자체 데이터 센터 GPU 라인업(코드명 Crescent Island)을 출시하고 있습니다. 이 제품은 일반적인 연산(general compute)보다는 AI 추론(inference) 및 학습(training)에 최적화된 자체 메모리 서브시스템(memory subsystem)을 갖추고 있습니다. Intel은 단순히 코어를 더 추가함으로써 Xeon이 AI 학습 경쟁에서 승리하도록 만들려 하지 않습니다. Intel의 공식적인 입장은 AI 인프라에서 CPU의 역할은 제어 평면(control plane)으로서 데이터 전처리(preprocessing)와 오케스트레이션(orchestration)을 담당하는 것이며, 실제 텐서 연산(tensor math)은 목적에 맞게 설계된 가속기 실리콘, 즉 Intel의 경우 점점 늘어나고 있는 자체 GPU가 담당한다는 것입니다.

제 생각에 이것이 면접에서 실제로 통하는 답변입니다. "GPU가 무조건 더 낫다"가 아닙니다. 현대의 AI 인프라는 설계 단계부터 이기종(heterogeneous) 구조라는 점입니다. 즉, 예측 불가능하고 제어 집약적인 작업에 탁월한 CPU와, 예측 가능하고 대규모 병렬 처리가 필요한 작업에 탁월한 가속기를 결합하는 것입니다. 흥미로운 시스템 엔지니어링(systems engineering) 문제는 어느 쪽이 승리하느냐가 아니라, 어떻게 그들 사이에서 작업을 분할하느냐이며, 이는 제가 구축하고자 하는 종류의 인프라에서 끊임없이 등장하는 질문입니다.

AI 자동 생성 콘텐츠

본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
0

댓글

0