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
'Machine Learning > Edge Device' 카테고리의 다른 글
ONNX Quantization Test (0) | 2023.03.18 |
---|---|
ONNX & TensorRT & TVM (0) | 2023.03.18 |
경량화 기법 원리 ( 가지치기, 지식증류, 양자화 ) (0) | 2023.03.18 |
Docker에서 TensorRT 설치 (0) | 2022.09.02 |