[TCAD'23] TensorLib

TensorLib: Automatic Generation of Spatial Accelerator for Tensor Algebra

Liancheng Jia, et.al. on June 1, 2023
doi.org github
obsidian에서 수정하기

author: Yun Liang

Abstract

텐서 대수는 머신 러닝 애플리케이션, 데이터 분석 등 다양한 영역에서 활용되고 있습니다. 공간 하드웨어 가속기는 텐서 대수 애플리케이션의 성능을 향상시키는 데 널리 사용됩니다. 복잡한 하드웨어 아키텍처와 풍부한 설계 공간을 갖추고 있습니다. 수동 구현에 기반한 기존 접근 방식은 프로그래밍 생산성이 낮아 넓은 설계 공간을 탐색하기 어렵습니다. 이 글에서는 텐서 대수 애플리케이션을 위한 공간 하드웨어 가속기를 생성하기 위한 프레임워크인 Tensorlib를 제안합니다. 텐서리브는 텐서 데이터 흐름을 선형 변환으로 표현할 수 있고, 서로 다른 설계에서 재사용할 수 있는 공통 하드웨어 모듈을 공유한다는 점에 착안해 개발되었습니다. Tensorlib은 먼저 시공간 변환을 사용해 다양한 데이터 흐름을 탐색하고, 변환 행렬을 사용해 하드웨어 데이터 흐름을 간결하게 나타낼 수 있습니다. 다음으로, 다양한 데이터 흐름의 공통 구조를 파악하고 매개변수화된 하드웨어 모듈 템플릿을 구축합니다. 생성 프레임워크는 각 데이터 흐름에 필요한 하드웨어 모듈을 선택하고, 지정된 상호 연결 패턴을 사용하여 모듈을 연결하고, 전체 하드웨어 가속기 설계를 자동으로 생성할 수 있습니다. Tensorlib은 공간 하드웨어 아키텍처의 개발 및 최적화를 위한 생산성을 획기적으로 개선하여 성능, 면적, 전력의 절충점을 갖춘 풍부한 설계 공간을 제공합니다. 실험 결과 Tensorlib는 다양한 텐서 대수 프로그램에 대해 서로 다른 데이터 흐름을 가진 하드웨어 설계를 자동으로 생성할 수 있는 것으로 나타났습니다. Tensorlib은 최신 제너레이터를 능가하는 318MHz 주파수 및 786GFLOP/s 처리량을 달성할 수 있는 Xilinx VU9P FPGA에서 행렬 곱셈 커널을 생성할 수 있습니다.

Figure

figure 1 figure 1

figure 2 figure 2

figure 3 figure 3

figure 4 figure 4

figure 5 figure 5

figure 6 figure 6

figure 7 figure 7

figure 8 figure 8

figure 9 figure 9

figure 10 figure 10

figure 11 figure 11

figure 12 figure 12

Table

table I table I

table II table II

table III table III

table IV table IV

Result

table V

Table V