Abs and Intro
DNN 모델은 큰 Computational intensity를 요구하고, 그에 따라 performance optimization이 요구됨. 기존의 Tensorflow, PyTorch와 같은 DNN framework는 Intel MKL-DNN, Nvidia cuDNN과 같은 맞춤형 최적화 커널을 통해 최적화를 수행하였음. 그러나 Tensor operation의 복잡성은 빠르게 증가하고 있고, DL 알고리즘의 변동성을 고려하기 위해 자동화된 compile framework가 필요함.
Ø 이러한 요구사항에 따라 XLA, Glow, Tensor Comprehension, TVM과 같은 DL compiler가 개발되었고, 이 중 TVM은 Learning to Compile(AutoTVM)이라는 기법을 통해 우수한 성능 향상을 보였음.
AutoTVM과 같은 Learning to Compile approach는 DNN 모델에 따른 훌륭한 최적화된 코드를 생성하지만, 상당히 긴 최적화 시간이 필요함.
Ø 이러한 단점을 보완하고자 최근에는 optimization을 위한 search strategy를 개선하고, hardware measurement cost를 낮추는 연구가 수행되었음.
그러나 이러한 approach는 대부분 개별 tensor operator(conv2D, batch gemm)를 최적화 시간을 단축시키는 것에 초점을 맞추고 있으며, 이는 수십 개의 tensor operator를 포함하는 전체 model의 느린 convergence와 긴 최적화 시간을 개선하는데 문제가 있음.
Ø 전체 model에서 모든 operator의 execution time의 합을 최소화하는 새로운 DL code optimization algorithm인 DynaTue제시
Challenges and Motivations
1. 현존하는 DL compiler는 전체 model이 아닌 개별 tensor operator의 convergence speed를 가속하는데 중점을 두어 전체 model의 convergence speed가 느리고 최적화 시간이 오래 걸림.
è 최적화된 operator과 최적화 되지 않은 operator간 성능 차이로 인해 전체 model의 inference time은 높게 유지되는 경향이 있음. 이로 인해 전체 operator를 최적화해야 하므로 최적화 시간은 오래걸림.
2. Static scheduling는 Tensor program의 실제 실행 상황을 반영하지 못하므로 한계가 있음.
è Execution time에서 tensor operator optimization은 서로 독립적이므로 system 상황에 따라 동적으로 최적화할 tensor operator를 선택할 수 있음(스케줄링 가능함)
Method

Multi-tensor-operator optimization을 높이기 위해 Multi-Armed Bandits model을 사용. 먼저 time을 고정된 length를 가진 time slot로 분할함. 그 이후, scheduler는 각 time slot에서 해당 slot을 tuning하기 위한 operator를 선택하고, 선택한 operator의 GFLOPS를 측정. 선택할 operator는 index-based MAB policie(Upper Confidence Bound, UCB)와 Bayesian belief model를 통해 결정.