LLVM (clang) build and install (ubuntu 18.04)

1.clone llvm repo 2. configure Ninja를 사용하면 컴파일 시간을 많이 단축할 수 있다. pass를 만들다보면 자주 컴파일할 상황이 생기기 때문에 ccache와 ninja를 사용해서 빌드 속도를 높혀주는것을 추천한다.(-LLVM_CCACHE_BUILD ON) 만약에 ninja가 없을시에는 -G “Unix Makefile”로 바꾸자 위 설정에서 build type이 Debug일 시에 linking시 많은 ram이 소요되니 주의 바란다. 위에서 빌드한 clang을 특정 위치에 설치하고 싶다면 -DCMAKE_INSTALL_PREFIX…

더 보기

논문 정리 Chameleon: Adaptive Code Optimization for Expedited Deep Neural Network Compilation(ICLR 2020)

제목 Chameleon: Adaptive Code Optimization for Expedited Deep Neural Network Compilation 저자 AmeByung Hoon Ahn, Prannoy Pilligundla, Amir Yazdanbakhsh, Hadi Esmaeilzadeh Motivation The current approaches are oblivious to the patterns in the design space of schedules that are available for exploitation, and causes inefficient search or even converges to solutions that may even be suboptimal….

더 보기

간단논문 정리 Fast and Effective Orchestration of Compiler Optimizations(Zhelong Pan,Rudolf Eigenmann;Purdue University ;CGO’06)

제목 Fast and Effective Orchestration of Compiler Optimizations 저자 Zhelong Pan,Rudolf Eigenmann Motivation compile-time optimizations 은 전반적으로 프로그램 성능을 향상시키지만 일부 기법은 성능 하락을 야기한다.  입력프로그램와 target architecture에 대한 불충분한 정보는 컴파일 시간에 정확도 향상을 향상 시키는 모델의 한계를 만든다.  Contribution 해당논문 기존에 존재하는 Batch Elimination(BE)와 Iterative Elimination(IE)의 장점을 섞어 Combined Elimination(CE) 알고리즘을 제안한다.  OptimizationSpace Exploration (OSE),Statistical Selection (SS)에 비하여도 향상된 성능을 보여준다.  large set of realistic programs에서 평가하여 현실적인 결과를 제시한다.  Content Exhaustive Search =>O(2^n)  Batch Elimination => O(n)  Relative Improvement Percentage(RIP)을 기준으로 RIP하락시 optimizations 제거  Iterative Elimination => O(n^2)  RIP을 기준으로 부정적인 결과를 보이는 하나의 optimization을 제거하는…

더 보기

논문 정리 NeuroVectorizer: End-to-End Vectorization with Deep Reinforcement Learning (CGO 20)

제목 NeuroVectorizer: End-to-End Vectorization with Deep Reinforcement Learning 저자 Ameer Haj-Ali, Nesreen K. Ahmed, Ted Willke, Sophia Shao, Krste Asanovic, Ion Stoica Motivation Compilers are designed today to use fixed-cost models that are based on heuristics to make vectorization decisions on loops. However, these models are unable to capture the data dependency, the computation graph,…

더 보기

간단논문 정리 TVM: An Automated End-to-End Optimizing Compiler for Deep Learning (OSDI 18)

제목 TVM: An Automated End-to-End Optimizing Compiler for Deep Learning 저자 Tianqi Chen and Thierry Moreau, University of Washington; Ziheng Jiang, University of Washington, AWS; Lianmin Zheng, Shanghai Jiao Tong University; Eddie Yan, Haichen Shen, and Meghan Cowan, University of Washington; Leyuan Wang, UC Davis, AWS; Yuwei Hu, Cornell; Luis Ceze, Carlos Guestrin, and Arvind Krishnamurthy Motivation  기존 머신러닝을 이용한 compiler optimizaion 방법에서는  human experts를 이용한다양한 hardward back-end(GPU,FPGA,ASIC)이 늘어남에 따라 그 구조에 적합한 complier optimization이 달라 질 수 밖에 없다.  …

더 보기

간단논문 정리 End-to-End Deep Learning of Optimization Heuristics (PACT 17)

제목 End-to-End Deep Learning of Optimization Heuristics 저자 Chris Cummins ; Pavlos Petoumenos ; Zheng Wang ; Hugh Leather Motivation  기존 머신러닝을 이용한 compiler optimizaion 방법에서는  human experts를 이용한 feature engineering 이 필요  Contribution 논문에서 제안하는 Source Rewriter & Language model을 이용하여 RAW PROGRAM CODE을 직접 이용하여 compiler optimizaion을 수행 아울어 transfer learning 을 이용하여 small number of program 에서도 학습을 수행  references

더 보기

논문 정리 LLVM: A Compilation Framework for Lifelong Program Analysis & Transformation(CGO 04)

제목 LLVM: A Compilation Framework for Lifelong Program Analysis & Transformation 저자 Chris Lattner Vikram Adve 개인적으로 느끼는 논문의 insight  : Lifelong Program Analysis개념을 도입하여 Front-end를 제외한 부분에서 전체적인 최적화를 수행 Motivation Multiple-stages of analysis & transformation compile-time, link-time, install-time, run-time, idle-time Use aggressive interprocedural optimizations Gather and exploit end-user profile information Tune the application to the user’s hardware Contributions A…

더 보기