AI 가속기의 행렬곱은 어떤 기본 회로와 연산으로 구성되는가
이 자료가 더한 내용
논리 게이트가 0과 1을 처리하고, AI 모델은 입력과 가중치를 곱해 누산하는 MAC을 반복해 행렬곱 결과를 만든다고 설명한다.
근거 보기 3
- 원문 구간 1
이 게이트들은 0과 1을 입력으로 받아서 다시 0 또는 1을 출력합니다. 즉 칩은 처음부터 복잡한 숫자를 계산하는 것이 아니라, 아주 작은 0과 1 계산을 엄청나게 많이 이어 붙여서 큰 계산을 만들어냅니다. 아무리 거대한 AI 모델을 돌린다고 해도 맨 아래에서는 결국 0과 1을 다루는 논리 게이트들이 움직이고 있습니다. 핵심 연산 = 행렬곱(Matrix multiplication, "Matmul") AI 칩이 하는 핵심 연산은 행렬곱(matmul)입니다. 그리고 그 행렬곱 안으로 들어가보면 진짜 기본 단위는 곱셈-누산(multiply-accumulate, "MAC")입니다. 행렬곱의 안쪽 루프에 있는 게 MAC입니다. 두 수를 곱한 뒤 그 결과를 계속해서 더해서 쌓는 연산을 뜻합니다. 수식으로 보자면 "y = Wx + b(입력값(x)에 가중치(W)를 곱하고 편향(b)을 더해 결괏값(y)를 도출하는 것)"입니다. 숫자를 곱하고 더하는 일이 핵심입니다.
- 원문 구간 2
예시를 위해서 이미지를 하나 살펴봅니다: 왼쪽 차트의 처음을 보시면 왼쪽엔 2행 3열의 행렬이, 오른쪽에는 3행 2열의 행렬이 있습니다. 이 둘을 곱하면 그 아래와 같은 2행 2열짜리 결과가 나옵니다. 여기서 가장 간단한 설명을 할 수 있는 건 하이라이트된 숫자들을 쭉 따라갔을 때 어떻게 140이 나오느냐입니다. 왼쪽 행렬의 가로줄과 오른쪽 행렬의 세로줄을 짝지어서 같은 위치끼리 곱한 뒤에 전부 더하는 것입니다. 이것이 행렬곱이고, 곱하고 더하는 이 과정이 행렬곱의 기본 계산 단위라 할 수 있는 핵심인 MAC입니다. AI 칩이 하는 연산도 똑같습니다. 입력값과 가중치를 곱합니다. 그 곱한 결과를 계속 더합니다. 그렇게 새로운 출력값을 만듭니다. 이 작업을 엄청난 규모로 반복하는 것입니다. LLM이건, 이미지 모델이건 내부에서는 입력값과 가중치 행렬을 계속 곱하고 더하면서 다음 값을 만들어내는 과정을 합니다.
- 원문 구간 3
칩 안에서는 0과 1로 표현됩니다 그림에서는 1, 2, 3 / 10, 20, 30 등 읽기 쉽고 헷갈리시지 않도록 표현되어 있지만 실제 칩에서는 이 숫자들은 전부 0과 1로 표현됩니다. 칩은 이 비트를 갖고 곱셈을 합니다. 오른쪽의 차트를 보시며 아주 간단하게 정리하자면 ⓐAND 게이트가 부분곱을 만들고(Multiplier), ⓑ이 부분곱을 전부 더할 때 쓰는 것이 가산기(Adder)입니다. 이 MAC 회로로 놓고 보면 이렇습니다. 1단계 : 처음에는 Z(누산값)=0, 행렬 A=1, B=10으로 놓으면, Z = 0 + 1x10 = 10이 나옵니다. 2단계 : A=2, B=20을 곱하고, Z = 10 + 2x20 = 50이 나옵니다. 3단계 : A=3, B=30을 곱하고, Z = 50 + 3x30 = 140이 나옵니다. 3MAC을 통해서 2행 3열의 행렬 x 3행 2열의 행렬이 2행 2열의 행렬의 첫 번째로 나온 것입니다.