- L-Mul은 LLM의 큰 에너지 비용이 부동소수점 곱셈에서 나온다는 점에 주목해, 곱셈을 정수 덧셈으로 근사하려는 선형 복잡도 곱셈 알고리듬임
- fp32 곱셈은 int32 덧셈보다 에너지 비용이 37배 높아, 텐서 처리 하드웨어에 L-Mul을 적용하면 원소별 부동소수점 텐서 곱셈 에너지의 95%, dot product 에너지의 80%를 줄일 잠재력이 있음
- 계산 방식은 가수(mantissa) 곱셈과 반올림을 생략하고, 부호는 XOR로 처리하며 나머지 비트는
x[1:] + y[1:] - offset형태의 덧셈으로 구성함 - 실험에서 4-bit mantissa L-Mul은 float8 e4m3 곱셈과 비슷한 정밀도를 보였고, 3-bit mantissa L-Mul은 float8 e5m2보다 나은 결과를 냄
- 사전학습 LLM에 추가 학습 없이 L-Mul 어텐션을 적용했을 때 자연어 추론 과제 평균 손실은 0.07%였고, 비전 과제에서는 평균 정확도가 0.12% 향상됨
L-Mul이 겨냥하는 병목
- 대형 신경망은 계산의 많은 부분을 부동소수점 텐서 곱셈에 쓰며, 이 연산은 덧셈보다 에너지 비용이 큼
- L-Mul은 부동소수점 수의 곱셈을 정수 덧셈으로 근사하는 linear-complexity multiplication 알고리듬임
- 적용 대상은 여러 계산 단계에 걸쳐 있음
- 어텐션 메커니즘 내부 곱셈
- 행렬 곱셈
- 원소별 곱셈
- Transformer 기반 LLM에서 어텐션은 입력 컨텍스트 길이
N에 대해O(N²)복잡도를 가지며, 고차원 텐서 곱셈까지 포함해 계산 효율의 주요 병목이 됨
산술 연산별 에너지 비용
- Horowitz(2014)의 연산 비용 표는 덧셈과 곱셈의 에너지 차이를 직접 보여줌
- int8 덧셈: 0.03 pJ
- int32 덧셈: 0.1 pJ
- fp16 덧셈: 0.4 pJ
- fp32 덧셈: 0.9 pJ
- int8 곱셈: 0.2 pJ
- int32 곱셈: 3.1 pJ
- fp16 곱셈: 1.1 pJ
- fp32 곱셈: 3.7 pJ
- fp32 곱셈은 fp32 덧셈보다 4배, int32 덧셈보다 37배 많은 에너지를 사용함
- PyTorch의 텐서 곱셈 결과 누적 기본 정밀도는 fp32로 설정되어 있음
- I/O와 제어 연산을 제외하면 fp32 곱셈을 int32 덧셈으로 근사할 때 에너지 사용량은 약
1/37 ≈ 2.7%수준임 - 누적 정밀도를 fp16으로 낮춰도 정수 덧셈은 부동소수점 곱셈 에너지의 약 4.7% 만 사용함
L-Mul의 계산 방식
- 일반 부동소수점 곱셈은 두 수
x,y에 대해 다음 형태를 가짐(1 + xm) · 2^xe · (1 + ym) · 2^ye- 결과는
(1 + xm + ym + xm · ym) · 2^(xe+ye)와 부호 XOR로 구성됨
- 계산 병목은
m비트 가수에 대한O(m²)가수 곱셈임 - L-Mul은
xm · ym을 제거하고 다음 형태로 근사함(1 + xm + ym + 2^-l(m)) · 2^(xe+ye)
l(m)은 가수 비트 수에 따라 달라짐m ≤ 3이면mm = 4이면 별도 값m > 4이면 별도 값
- 비트 수준 구현은 더 단순한 식으로 정리됨
- 부호 비트:
x[0] ⊕ y[0] - 나머지 비트:
x[1:] + y[1:] - offset
- 부호 비트:
- 부동소수점 형식이
1 + xm을 암묵적으로 처리하므로, L-Mul은 실제 구현에서 하나의 adder로 구성될 수 있음 - 가수 합이 2를 넘으면 carry가 자동으로 exponent에 전달됨
- 기존 부동소수점 곱셈에 필요한 가수 곱셈과 반올림 과정을 건너뛰어 계산량을 줄임
Transformer 어텐션 적용
- L-Mul 기반 어텐션은
Q,K,V를 만든 뒤 어텐션 계산의 행렬 곱셈을 L-matmul로 대체함 - 계산 형태는 다음과 같음
K = H · WkQ = H · WqV = H · WvA = softmax[L-matmul(Q, Kᵀ) / √d]H′ = L-matmul(A, H)
L-matmul은 일반 부동소수점 곱셈을 모두 L-Mul로 구현한 행렬 곱셈임- 이 구조는 부동소수점 곱셈을 정수 덧셈으로 바꿔 계산 자원 사용을 낮춤
정밀도·복잡도 분석과 실험 결과
- 정밀도 분석은 L-Mul이 부동소수점 수의 fraction을 몇 비트까지 유지한 것과 동등한지 평가하는 방식으로 구성됨
- 균등 분포 operand 기준 분석에서 L-Mul은 fp8 e5m2보다 정확함
- 사전학습 LLM 5개의 결합 weight 분포를 기준으로 한 실용적 분석에서는 5-bit mantissa operand에서 fp8 e4m3보다 높은 정밀도를 달성할 수 있음
- 실험 결과는 이론적 오차 추정과 일치함
- 4-bit mantissa L-Mul은 float8 e4m3 곱셈과 비슷한 정밀도
- 3-bit mantissa L-Mul은 float8 e5m2보다 높은 정밀도
- 사전학습 LLM에는 표준 어텐션 구현을 L-Mul 어텐션으로 직접 바꿔 적용했으며, 추가 학습은 사용하지 않음
- commonsense, structured reasoning, language understanding 과제 평균 성능 손실: 0.07%
- visual question answering, object hallucination, free-form visual instruction 과제 평균 정확도 변화: 0.12% 향상
- fine-tuning 실험에서는 어텐션, linear transformation, 원소별 곱셈의 모든 곱셈을 3-bit mantissa L-Mul로 바꾼 모델이 float8 e4m3 누적 정밀도를 쓰는 표준 모델과 비슷한 성능을 냄
- 게이트 수준 계산량 추정에서 일반 곱셈은 다음 수준임
- fp16 곱셈: 약 584
- fp8 e4m3 곱셈: 약 325
- fp8 e5m2 곱셈: 약 296
- L-Mul의 게이트 수준 계산량 추정은 더 낮음
- fp16 L-Mul: 약 256
- fp8 L-Mul: 약 157
- GPU에는 L-Mul의 네이티브 구현이 없어 효율을 완전히 활용하기 어렵고, L-Mul 기반 모델은 특수한 아키텍처 설계가 통합된 장치에서 학습·호스팅하는 것을 권장함
- 해당 기술은 patent pending 상태임