[TVM] TVM Install (base on CONDA)

conda 환경에서 tvm의 설치

사전 설치 파일

  1. 필요 패키지를 설치한다
  • cmake는 3.18 이상 버전이 필요하다(우분투 20.04에서는 apt로 설치 시 3.10버전이 설치되므로 repo를 등록하여 업데이트 하자)
  • llvm을 설치하기를 권장하고 있다. 최신버전은 llvm-18은 호환성 문제로 tvm이 빌드가 안된다. apt를 이용시 llvm-10이 설치되므로 이를 이용하자.
1
2
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 llvm
  1. conda를 설치하고 python=3.8 버전의 환경을 구성한다.(option)
  • 필자는 패키지 의존성 꼬이는게 싫어서 conda 환경을 구성했다. 그러나 문제가 많이 생겨서 삽질 많이함
1
2
conda create -n tvm python=3.8
conda active tvm

빌드 및 설치

  1. 소스를 다운로드 한다.
1
git clone --recursive https://github.com/apache/tvm tvm
  1. 공식 매뉴얼에 conda 환경을 꾸미고 conda 환경에서 tvm 빌드 및 설치하는 방법이 나와 있으나 매뉴얼 대로 진행시 정상적으로 동작하지 않는다. 따라서 Cmake를 이용하여 빌드할 예정이다.
  • tvm/conda 폴더에 보면 해당 파일들이 확인 가능하다.
  1. build 폴더 생성, config파일 수정 복사를 진행한다.
1
2
mkdir build
cp cmake/config.cmake build
  • llvm을 사용할 경우 set(USE_LLVM ON), 가상환경을 사용하므로 set(USE_LLVM "/path/to/llvm-config --link-static")
  • 디버깅을 위해 set(USE_GRAPH_EXECUTOR ON)set(USE_PROFILER ON)
  • IR 디버깅시 set(USE_RELAY_DEBUG ON) 및 환경변수 선언 export TVM_LOG_DEBUG="ir/transform.cc=1,relay/ir/transform.cc=1"
  1. tvm 빌드
1
2
3
cd build
cmake ..
make -j4
  1. python dependecies 패키지 설치(설치중에 패키지가 필요할 수 있으므로 미리 설치한다)
  • tvm/python 폴더에 gen_requirements.py를 실행하면 필수 패키지들을 볼 수 있다.
1
2
3
4
conda install numpy decorator attrs   //필수 패키지
conda install typing-extensions psutil scipy   //tvmc 사용시
conda install tornado   //RPC talker 사용시
conda install tornado psutil 'xgboost>=1.1.0' cloudpickle   // auto-tuning 모듈 사용시
  1. tvm 패키지 설치
  • 환경 변수 설정, 환경변수를 선언해 놓으면 변경사항이 즉시 반영된다고 한다(변경 시setup 호출이 필요하지 않음)(필요 시 ~./bashrc 추가)
1
2
export TVM_HOME=/path/to/tvm
export PYTHONPATH=$TVM_HOME/python:${PYTHONPATH}
  • 라이브러리 복사
1
cd python; python setup.py install; cd ..

pynq2.7 설치 cmake 지우고 재설치 (sudo ln -s /opt/cmake-3.29.0-linux-aarch64/bin/* /usr/local/bin/) tvm 다운로드 () git tag version

zcu104 플래그 추가하고 빌드

에러 해결 AttributeError: /home/xilinx/tvm/vta/python/vta/../../../build/libvta.so: undefined symbol: VTARuntimeShutdown 리빌드 링크 https://discuss.tvm.apache.org/t/error-vtaruntimeshutdown-symbol-is-undefined/6832/10

Licensed under CC BY-NC-SA 4.0
comments powered by Disqus
Built with Hugo
Theme Stack designed by Jimmy