핵심 개념
TATAA는 선형 레이어에는 int8 연산을, 비선형 레이어에는 bfloat16 연산을 사용하는 혼합 정밀도 접근 방식과 재구성 가능한 산술 아키텍처를 통해 트랜스포머 모델의 추론 속도를 높이는 FPGA 기반 프레임워크입니다.
초록
TATAA: 변형 가능한 산술 아키텍처를 사용한 프로그래밍 가능 혼합 정밀도 트랜스포머 가속화
본 연구 논문은 트랜스포머 모델의 추론을 효율적으로 가속화하기 위한 새로운 하드웨어-소프트웨어 공동 설계 프레임워크인 TATAA를 제안합니다.
TATAA는 선형 레이어에는 int8 연산을, 비선형 레이어에는 bfloat16 연산을 사용하는 혼합 정밀도 양자화 방식을 사용합니다. 이를 위해 TATAA는 int8 행렬 곱셈을 위한 systolic array 모드와 벡터화된 bfloat16 연산을 위한 SIMD 모드를 모두 지원하는 변형 가능한 산술 아키텍처를 특징으로 합니다. 또한, TATAA는 사용자가 제공한 트랜스포머 모델을 TATAA 프로세서 코어의 사용자 정의 명령어 세트 아키텍처(ISA)에 유연하게 매핑할 수 있는 엔드 투 엔드 컴파일러를 제공합니다.
TATAA 아키텍처의 주요 구성 요소
듀얼 모드 처리 장치 (DMPU): int8 및 bfloat16 작업을 모두 효율적으로 지원하도록 구성 가능한 정수 처리 요소(PE) 배열로 구성됩니다.
모드 MUX: DMPU 간의 연결을 제어하여 런타임에 systolic array 모드와 SIMD 모드 간의 전환을 가능하게 합니다.
양자화 및 레이아웃 변환 모듈: 레이어 간의 출력 결과를 양자화하고 다양한 작업 간의 데이터 레이아웃을 처리합니다.
레지스터 파일 (RF): 효율적인 ISA 및 컴파일러 설계를 위해 추상 레지스터 파일을 사용합니다.
듀얼 모드 버퍼 (DMB): 계산된 결과를 외부 메모리로 다시 쓰기 전에 임시로 저장하는 역할을 합니다.
TATAA 컴파일러의 주요 기능
비선형 함수 파싱: SoftMax, LayerNorm, GELU와 같은 비선형 함수를 기본 연산으로 분해합니다.
노드 융합 및 혼합 정밀도 양자화: 성능 향상을 위해 노드를 융합하고 혼합 정밀도 양자화를 적용합니다.
행렬 곱셈 스케줄링: TATAA 배열에 맞게 큰 행렬 곱셈을 작은 타일형 행렬 곱셈으로 분할합니다.
특수 부동 소수점 연산 근사: 빠른 역 제곱근 알고리즘을 사용하여 부동 소수점 나눗셈을 근사합니다.
어셈블리 코드 생성: TATAA 프로세서에서 실행될 수 있는 어셈블리 코드를 생성합니다.