GPU와 TPU는 뭐가 다를까, 당최

by 당최서생

수업을 마치고 전자칠판과 연결된 컴퓨터의 강의자료 파일을 정리하고 있는데 학생 한명이 제게로 다가 왔습니다.

서생: “오늘도 늦으셨어요?” (이 학생은 지각이 잦은 편입니다. 지각한 학생은 교수가 출석 인증을 해 주어야 합니다.)

학생: “아니요. 오늘은 제 시간에 왔습니다.”

서생: “잘 하셨네요.”

학생: “실은 제가 교수님께 궁금한 것이 있습니다.”

서생: ‘뭐지? 뭐가 궁금할까? 학기 마지막 강의가 끝난 이 시점에.’

학생: “제가 주식 투자를 하려 하는데, 엔비디아와 구글 중에 선택하려고요. 그런데 GPU하고 TPU가 뭐가 다른가요?”

바로 직전 수업시간에 AI반도체를 다루면서 설명했던 것인데 전혀 기억을 못하는 듯 합니다. 그래서 선 채로 다시 설명을 해 주었습니다.


우선 GPU(Graphics Processing Unit)가 왜 인공지능의 데이터 학습에 많이 사용되는지부터 알아야 합니다. AI는 인간의 뇌처럼 수억, 수십억 개의 데이터를 동시에 학습하며 패턴을 발견합니다. 따라서 수많은 데이터를 한꺼번에 병렬적으로 처리하는 능력이 필수적입니다. 컴퓨터 중앙처리장인 CPU(Central Processing Unit)는 복잡하고 다양한 명령어를 순서대로, 매우 빠르게 처리하도록 설계되었습니다. 마치 어려운 수학 문제를 척척 풀어내는 수학고수와 같습니다. 하지만 이 고수에게 1+1 같은 간단한 계산 1,000개를 동시에 시키면 하나씩 순서대로 풀어야 하므로 시간이 오래 걸립니다. GPU는 원래 3D 게임 화면의 수백만 개 픽셀 색깔을 동시에 계산하기 위해 만들어졌습니다. 이를 위해 수천 개의 작은 코어들이 간단한 계산을 한꺼번에 병렬적으로 처리하도록 특화되어 있습니다. 마치 1,000명의 초등학생에게 1+1 문제를 하나씩 나눠주고 동시에 풀게 하는 것과 같습니다.


CPUvsGPU.png


앞서 말씀드린 것처럼 AI 학습은 수억 장의 사진을 보고 고양이인지 강아지인지 구분하는 것처럼 방대한 양의 데이터를 동시에 처리해야 합니다. 이는 CPU의 직렬 처리 방식보다 GPU의 대규모 병렬 처리 방식에 훨씬 더 적합합니다. 결론적으로 AI 시대에는 복잡한 문제를 하나씩 푸는 수학 고수, CPU보다 간단한 문제를 수천 개씩 동시에 푸는 초등학생 군단, GPU가 훨씬 더 효율적이기 때문에 GPU가 AI 시대의 핵심 반도체로 떠오른 것입니다.


그러면 구글이 개발했다는 TPU(Tensor Processing Unit)는 무엇일까요? 당최. 이름에 사용된 Tensor의 의미부터 설명 드리면 Tensor는 인공지능이 데이터를 처리할 때 사용하는 다차원 데이터 묶음입니다. 엑셀 표 하나가 2차원 행렬이라면 이 표가 여러 장 겹쳐 있는 큐브 모양의 데이터가 텐서입니다. 따라서 TPU는 이름 그대로 인공지능의 언어인 텐서 계산을 가장 잘하도록 태어난 반도체 칩입니다.


2015년 무렵 구글이 구글 번역, 검색, 사진, 음성 인식 등 모든 서비스에 인공지능을 도입하려 하니 기존의 CPU나 GPU로는 전기가 너무 많이 들고 속도도 충분히 빠르지 않았던 것입니다. 구글은 엔비디아 GPU를 사서 쓰는 걸로는 부족함을 느꼈기에 본인들 소프트웨어에 딱 맞는 AI 반도체 칩을 직접 만들기로 결심합니다. 구글은 GPU의 게임 그래픽 처리와 같이 인공지는 연산에 불필요한 기능은 제외하고 오직 AI 연산에만 특화된 칩인 TPU를 탄생시켰습니다.


TPU가 GPU와 차별화된 기술적 특성을 메모리 접근 방식입니다. 기존 방식은 데이터를 메모리에서 가져와서 계산한 후 계산 결과를 메모리에 다시 저장하고, 데이터를 또 가져와서 계산하는 과정을 반복합니다. TPU는 심장이 피를 뿜듯 메모리에서 데이터를 한 번 펌프질하여 연산 장치들의 격자판으로 밀어 넣습니다. 각 연산 장치는 계산을 한 번 하고 그 결과값과 데이터를 다시 메모리에 넣지 않고 바로 옆이나 아래에 있는 연산 장치로 넘깁니다. 최종적으로 데이터가 파도타기 하듯이 수만 개의 연산 장치를 훑고 지나가면 끝에서 계산 결과가 도출됩니다.


여러분의 이해를 돕기 위해 기존 CPU, GPU 방식과 TPU 방식의 차이를 화재현장에서 물 끌어오기에 비유해 보겠습니다. 기존 방식은 소방관(연산 장치) 한 명이 호수(메모리)까지 뛰어가서 물통을 채운 뒤, 불이 난 곳으로 뛰어와서 물을 붓습니다. 물 한 번 부을 때마다 호수까지 왔다 갔다 해야 하니 이동하는 시간(메모리 접근 시간)이 너무 깁니다. TPU는 소방관들이 호수부터 불 난 곳까지 일렬로 쭉 섭니다. 첫 번째 사람이 물통을 채워 옆 사람에게 건네줍니다. 그 사람은 받자마자 바로 다음 사람에게 넘깁니다. 소방관들은 제자리에 서서 물통만 받아서 넘기면 됩니다. 호수까지 뛰어갔다 올 필요가 없어서 훨씬 빠르고 힘(전력)도 덜 듭니다. 결국 TPU는 메모리에 왔다 갔다 하는 횟수를 획기적으로 줄여, 전력 소모는 줄이고 속도는 엄청나게 빨라집니다.


시스톨릭어레이.png


최근 구글 제미나이3.0이 발표되면서 제미나이3.0의 성능이 ChatGPT를 능가한다는 평가를 받고 있습니다. 제미나이3.0의 성능이 인정받으니 제미나이를 작동시키는 TPU의 성능도 인정받게 된 것입니다. 이런 상황에서 메타가 2027년부터 자사 데이터센터에 TPU 도입을 논의 중이라고 하니 TPU에 대한 세상의 관심이 더욱 높아지고 있습니다.



설명을 다 들은 학생이 말합니다.

학생: “교수님, 저는 구글 주식을 사겠습니다.”

서생: “외국 주식은 오래 두면 어떻게든 오른다고 하더라고요.”

월요일 연재