본문 바로가기

Paper Reading/Compiler Optimization

(8)
Ansor : Generating High-Performance Tensor Programs for Deep learning (20' OSDI) 연구 주제 기존의 search strategies와 비교하여 Ansor는 Search space의 hierarchical representation에서 프로그램을 샘플링하여 더 많은 최적화 조합을 탐색한다. 그 다음 샘플링된 프로그램을 evolutionary search로 fine-tune하고 학습된 cost model이 best program을 찾게 합니다. 연구 개요 커널 라이브러리들은 하드웨어 플랫폼과 연산들을 위해 수동적으로 튜닝하기 위해 상당한 엔지니어링적 노력이 요구된다. 성능이 우수한 tensor programs을 찾기 위해서는 large search space를 해결하기 위해 search-based approach가 요구되는데 기존 approach들은 predefined manually-w..
GPTune: Multitask Learning for Autotuning Exascale Applications (PPoPP` 21) Abs and Intro 엑사스케일 컴퓨팅 시대가 옴에 따라 점차 코드와 라이브러리는 거대해지고 있고, 이러한 모든 코드의 최적의 성능 및 성능 이식성을 달성하는 것은 점점 더 다루기 어려운 문제가 되었다. 대부분의 엑사스케일 애플리케이션 코드에는 성능에 영향을 미치는 조정 가능한 파라미터가 있으며, 종종 시뮬레이션에는 비용이 많이 드는 "함수 평가"가 수반되어 실행시간이 길거나나 많은 하드웨어 리소스(ex, 코어 수)가 필요하기에, 최적의 매개 변수를 찾기 위한 bruteforce “grid search” 접근법이 불가능하다. → Multitasking learning은 예측을 위해 추가적인 지식을 사용할 수 있을 때 유용하다는 것이 머신러닝 학계에서 증명되었다. → 이 논문에서는 이 패러다임을 이용하..
DynaTune: Dynamic Tensor Program Optimization in Deep Neural Network Compilation 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)..
Bolt: Bridging the Gap between Auto-tuners and Hardware-native Performance (22’) Abs and Intro 오늘은 auto-tuners는 효율적인 tensor programs을 생성하지만 불투명한 하드웨어 세부 사항으로도 그렇게 한다. 이러한 성능은 수동으로 최적화하는 방식인 hardware-native libraries의 성능보다 뒤쳐진다. 뿐만 아니라 vendor library들은 지원되는 기능의 집합이 고정되어 있으며 auto-tuner에 의해 제공되는 customization기능 및 automation기능의 지원이 부족합니다. BOLT는 이 격차를 줄이고 hardware-native templated search를 사용함으로써 양쪽의 장점을 모두 구현합니다. 또한 Bolt는 graph, operator, model level에서 종단간 tensor optimization을 다시..
One-shot tuner for deep learning compilers (22' CC) Abs and Intro Auto-tuning overhead를 줄이기 위해 neural-predictor 접근법을 활용. 해당 pre-trained performance predictor는 auto-tuning process에서 효과적으로 repeated search나 hardware measurements없이 optimized tensor operation codes를 생성하고 cost model update를 제거. Sample-efficient training dataset을 생성하기 위해 task-specific information을 포함하는 input representation 확장. data sampling methods를 high-performing codes를 학습하는 것에 중점을 둠...
ALT : Optimizing Tensor Compilation in DeepLearning Compilers with Active Learning 1. Abstract or Introduction ALT은 more informative samples을 찾기위한 active learning을 기반으로 한 sampling 전략을 사용한다. 이 sampling strategy을 수행하는 active learning exploration module은 uncertainty predictor와 score predictor로 구성된다. 이 둘의 ping-pong 방식을 사용하도록 설계되어 있다. autoTVM과 같은 모듈로 automatic tensor compilation을 수행하고 이는 fusing, tiling, splitting과 같은 schedule primitive의 type들을 통해서 extremly huge size의 Search Space를 ..
Autotuning Algorithmic Choice for Input Sensitivity 1. Introduction 최상의 autotuned configuration은 input sets에 따라 달라질 수 있다. 이 논문은 two-level의 autotuning을 다루는 학습 알고리즘을 제시한다. 이 접근법은 input grouping, feature selection, classifier construction을 automatically하게 사용한다. 좋은 최적화를 찾는 일반적인 솔루션은 새로운 input의 특징에 따라 새로운 run(알고리즘?)을 사용해서 ML model을 build하는 것이다. 좋은 최적화를 찾기 위해 복수 개의 algorithm을 recursive한 poly-algorithm으로 합치는 방식이 있다. 그리고 input feature는 domain-specific하고 ..
simulating execution time of tensor programs using gnn 1. Introduction tensorflow, pytorch와 같은 DL framework들은 computaional graph representaion을 optimize한다 하지만 이들은 hardware-specific한 operator-level transformation을 다루지는 않는다. 최근 TVM과 같은 compiler framework가 graph-level and operator-level의 optimization을 지원하면서 그 간극을 매우고 있다. 이 논문은 tensor operators의 configuration을 abstract syntax tree (약자 AST, compiler theory 용어)로 표현하는 방법을 제시하고 TVM을 사용해서 node의 feature를 추출하는..