Machine Learning/Edge Device

Install Apache TVM

light_meal 2023. 3. 18. 11:41
728x90

Apache TVM 이란?

CPU, GPU 및 기계 학습 가속기를 위한 오픈 소스 기계 학습 컴파일러 프레임워크

백엔드에서 계산을 효율적으로 최적화하고 실행할 수 있도록 하는 것을 목표로 한다

 

TVM 흐름

 

지원하는 딥러닝 모델 컴파일 프레임워크

  • Tensorflow
  • Keras
  • Core ML
  • MXNet
  • ONNX
  • Pytorch
  • DarkNet
  • Caffe2 → ONNX
  • CNTK → ONNX

 

실행 가능한 위치 or 하드웨어

  • CPU
  • GPU
  • ARM
  • AMDGPU
  • FPGA
  • NVCC
  • …..

 

TVM 설치

  • git clone
git clone --recursive <https://github.com/apache/tvm> tvm

 

  • tvm 폴더에서 진행
cd tvm

 

  • 패키지 설치
sudo apt-get update
sudo apt-get install -y python3 python3-dev python3-setuptools gcc libtinfo-dev zlib1g-dev build-essential cmake libedit-dev libxml2-dev python3-pip

 

  • cmake를 사용하여 라이브러리 구축
sudo mkdir build
sudo cp cmake/config.cmake build

 

  • build/config.cmake 사용자 정의
sudo vim build/config.cmake

 

  • cuda 백엔드 활성화 하려면 다음을 수정 ( CUDA 미설치 상태일 경우 에러 발생함 )
set(USE_CUDA_OFF)    ->  set(USE_CUDA_ON)

 

  • 그래프 실행기 및 디버깅 활성화 확인
set(USE_GRAPH_EXECUTOR ON)
set(USE_PROFILER ON)

 

  • IR로 디버그를 ON 하고 환경변수를 설정
set(USE_RELAY_DEBUG OFF)     ->    set(USE_RELAY_DEBUG ON)
export TVM_LOG_DEBUG="ir/transform.cc=1,relay/ir/transform.cc=1"

 

LLVM 설치

  • LLVM 소스 build 오래 걸린다 해서 빌드 된 것 다운로드 해서 설치하려 했으나 안됨. 아마 내 컴퓨터에는 현재 설치되어 있는 버전이 Ubuntu 20.04 버전인데 Git에 올라와 있는 버전은 18.04버전이라서 에러가 발생하는 것이 아닌가 예상됨 http://releases.llvm.org/download.html 리눅스 우분투 버전으로 다운로드
    wget <https://github.com/llvm/llvm-project/releases/download/llvmorg-14.0.6/clang+llvm-14.0.6-powerpc64le-linux-ubuntu-18.04.5.tar.xz>
    
    • 압축 풀기
    tar -xvf clang*.xz
    
    • cmake가 사용 가능한 버전의 LLVM을 검색하도록 직접 설정하거나 허용
    sudo vim build/config.cmake
    
    set(USE_LLVM /home/your/path/tvm/clang+llvm-14.0.6-powerpc64le-linux-ubuntu-18.04.5/bin/llvm-config)
    


  • apt로 직접 설치를 택함
sudo apt install llvm
sudo vim build/config.cmake

 

  • cmake가 사용 가능한 버전의 LLVM을 검색하도록 허용
set(USE_LLVM OFF)     ->    set(USE_LLVM ON)

 

  • tvm 및 관련 라이브러리 구축
cd build
sudo cmake ..
sudo make -j4

 

파이썬 패키지 설치

TVM 패키지

  • .bashrc 수정
sudo vim ~/.bashrc

 

  • 다음 코드를 추가 작성
# tvm python setting
export TVM_HOME=/home/{your user name folder}/tvm
export PYTHONPATH=$TVM_HOME/python:${PYTHONPATH}

 

  • 적용
source ~/.bashrc

 

파이썬 의존성 설치

  • 필요한 종속성
pip3 install --user numpy decorator attrs

 

  • RPC 트래커 사용을 위한 패키지
pip3 install --user tornado

 

  • 오토튜닝 모듈을 사용하고자 하는 경우
pip3 install --user tornado psutil 'xgboost<1.6.0' cloudpickle

 

  • tvm , onnx 설치
pip3 install --user tvm
pip3 install --user onnx onnxoptimizer
728x90