사전 설치 파일
- 필요 패키지를 설치한다
- 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
|
- conda를 설치하고 python=3.8 버전의 환경을 구성한다.(option)
- 필자는 패키지 의존성 꼬이는게 싫어서 conda 환경을 구성했다. 그러나 문제가 많이 생겨서 삽질 많이함
1
2
|
conda create -n tvm python=3.8
conda active tvm
|
빌드 및 설치
- 소스를 다운로드 한다.
1
|
git clone --recursive https://github.com/apache/tvm tvm
|
- 공식 매뉴얼에 conda 환경을 꾸미고 conda 환경에서 tvm 빌드 및 설치하는 방법이 나와 있으나 매뉴얼 대로 진행시 정상적으로 동작하지 않는다. 따라서 Cmake를 이용하여 빌드할 예정이다.
- tvm/conda 폴더에 보면 해당 파일들이 확인 가능하다.
- 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"
- tvm 빌드
1
2
3
|
cd build
cmake ..
make -j4
|
- 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 모듈 사용시
|
- 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