텐서처리장치 구조 (Tensor Processing Unit Architecture)

전기전자공학
한 줄 정의: 신경망 연산의 핵심인 행렬 및 텐서 곱셈을 대량으로 빠르게 처리하도록 전용으로 설계된 반도체 가속기의 하드웨어 구조입니다.
지지된 보에 하중이 작용하는 모습
구조 부재에 하중이 가해지는 기본 개념을 나타냅니다.

쉽게 풀면

일반 컴퓨터의 중앙처리장치(CPU)가 온갖 종류의 작업을 두루 잘 처리하는 만능 일꾼이라면, 텐서처리장치는 신경망에서 반복적으로 등장하는 대규모 곱셈과 덧셈, 즉 행렬 연산 하나만 극도로 빠르게 처리하도록 특화된 전문 일꾼에 비유할 수 있습니다. 신경망 학습과 추론은 수많은 숫자 배열(텐서)끼리의 곱셈으로 이루어지는데, 이를 범용 프로세서로 처리하면 비효율적인 부분이 많습니다. 텐서처리장치는 이런 연산만을 위한 회로를 대량으로 배치해, 같은 시간에 훨씬 많은 곱셈과 덧셈을 동시에 처리할 수 있도록 설계되어 있습니다.

왜 중요한가

딥러닝 모델의 규모가 커지면서 연산량이 폭발적으로 증가함에 따라, 범용 프로세서만으로는 학습과 추론에 필요한 속도와 전력 효율을 충족하기 어려워졌습니다. 텐서처리장치와 같은 전용 가속기 구조는 대규모 AI 연산을 빠르고 에너지 효율적으로 처리할 수 있게 해주어, 컴퓨터구조 분야에서 중요한 연구 및 설계 대상이 되고 있습니다.

논문에서는 이렇게 쓰입니다

"본 연구에서는 시스톨릭 배열 기반의 텐서처리장치 구조를 제안하여 행렬곱 연산의 처리량을 크게 향상시켰다."

데이터가 규칙적으로 흐르며 연속적으로 연산되는 회로 구조를 이용해 행렬 곱셈 속도를 높였다는 뜻입니다.

"제안된 가속기 구조는 온칩 메모리 대역폭 제약을 완화하여 에너지 효율을 개선하였다."

칩 내부의 데이터 이동 병목을 줄여 같은 연산을 더 적은 에너지로 수행하도록 개선했다는 의미입니다.

조금 더 깊게 보면

많은 텐서처리장치 설계는 시스톨릭 배열이라는 구조를 사용하는데, 이는 데이터가 여러 개의 연산 유닛을 순차적으로 통과하며 곱셈과 누산을 반복하도록 배치한 방식으로, 메모리 접근 횟수를 줄이면서 병렬성을 극대화합니다. 또한 낮은 정밀도의 숫자 표현(예: 8비트 정수)을 활용해 연산 속도와 메모리 사용량을 함께 줄이는 기법도 함께 연구됩니다.

주의할 점

텐서처리장치는 행렬 연산에 특화되어 있어 그 외의 범용 연산에는 CPU만큼 효율적이지 않으며, 모델 구조가 하드웨어 특성과 잘 맞지 않으면 기대한 만큼의 성능 향상을 얻지 못할 수 있습니다.

관련 용어