github commit 시에 용량 초과 대용량 commit 제거

나도 모르게 이전에 대용량 파일이 커밋 되어 있을시에 filter-branch를 사용하여 파일 제거 및 분리 –all을 사용하면 모든 브랜치에 적용가능하며 배포중인 브렌치에서는 사용을 삼가! reference https://git-scm.com/book/ko/v2/Git-%EB%8F%84%EA%B5%AC-%ED%9E%88%EC%8A%A4%ED%86%A0%EB%A6%AC-%EB%8B%A8%EC%9E%A5%ED%95%98%EA%B8%B0

더 보기

LLVM loop unroll and jam pass and view-cfg

llvm에서 unroll and jam pass를 사용하려고 하는데 아무리 해도 되지 않는다; da,lcssa,loop simplify가 조건이지만 이것은 unroll and jam pass가 시작시에 이미 다 진행하는것을 확인하였고.. 다음과 같은 최적화를 추가하면 수행이 된다. 아래는 행렬 연산의 예시이며 loop unroll and jam 이 수행되어야한다. clang -Xclang -disable-O0-optnone -emit-llvm matmul.c -S opt -stats -debug -loop-unroll-and-jam -allow-unroll-and-jam -unroll-and-jam-count=2 matmul.ll 위처럼 해도…

더 보기

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…

더 보기

zsh(+oh-my-zsh) install source (without sudo) centos7

서버를 사용하는데 bash는 불편하고 zsh의 zsh-autosuggestions 같은 plugin을 사용하고 싶은데 sudo 가 없어서 불편하였다. chsh도 사용하지 못하고 apt-get도 사용못하니 직접 컴파일 해서 설치해보았다. 1. zsh soruce clone 2. preconfig 위 코드를 사용하면 zsh path 에 configure가 생성된다. 이제부터 중요하다. 3. find path 아래와 같은 결과가 나오는데 ~/.local/bin의 binary를 참조 한다는 말이다. 혹시나 아래와 같은 결과가…

더 보기

논문 정리 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…

더 보기