Xilinx 5

[Vitis-AI] Custom operator 등록하기

사용된 함수 중에는 XIR로 변환할 수 없는 함수들도 있습니다. 이 함수들은 자동으로 변환할 수 없기 때문에 custom op로 등록해줘야만 변환하여 CPU에서 동작시킬 수 있습니다. 이 과정을 정리합니다. 이 글은 다음 글을 참고하였습니다. https://support.xilinx.com/s/article/Custom-OP-complete-example-design-for-Pytorch?language=en_US Vitis AI Custom OP example design with Pytorch Vitis AI Custom OP complete example design with Pytorch This tutorial was designed to help with quick and gradual lea..

Xilinx 2022.12.02

[Vitis-AI] Deploying and Running the Model Compiler

DPU에 deploy하기 전 VART tool을 이용해 DPU inference 결과를 확인하기위해서는 다음 순서를 따르면 됩니다. 이는 VART로 DPU를 디버깅하는 과정입니다. 1. Quantization 된 inference 모델을 생성합니다. python resnet18_quant.py --quant_mode calib --subset_len 200 2. export_xmodel API의 deploy_check를 True로 설정합니다. quantizer.export_xmodel(deploy_check=True) 3. reference data를 이용해 reference 결과를 확인합니다. python resnet18_quant.py --quant_mode test 4. DPU xmodel를 생성합..

Xilinx 2022.11.28

[Vitis-AI] 설치 및 환경 설정

이 글은 Xilinx의 Vitis AI User Guide(UG1414)를 따라 작성하였습니다. Host에서 Docker 설정 1. github Vitis AI repository를 복사합니다. git clone --recurse-submodules https://github.com/Xilinx/Vitis-AI cd Vitis-AI 2. Docker가 설치되어있지 않다면 먼저 설치합니다. Linux 사용자가 group docker에 있는지 확인합니다. 3. docker image를 빌드합니다. cd docker ./docker_build_cpu.sh or ./docker_build_gpu.sh 4. 빌드 완료 후 Vitis-AI 폴더로 되돌아옵니다. 이제 docker를 실행하여 conda 가상환경을 실행..

Xilinx 2022.11.01

[Vitis-AI] Compiling the Model

Vitis AI 컴파일러(VAI_C)는 네트워크 모델을 최적화된 DPU instruction sequence에 매핑합니다. 간략하게는 아래와 같습니다. Optimize 되고 quantize 된 입력 model의 topology를 parsing 한 뒤 VAI_C는 internal computation graph를 intermediate representation(IR)으로 구성합니다. 즉 control flow와 data flow representation에 대응됩니다. 그리고 batch norm과 convolution 결합과 같은 computation node fusion, 병렬 처리를 이용한 효율적인 instruction 스케줄링과 같은 다양한 optimization을 수행합니다. XIR-based 툴..

Xilinx 2022.11.01

[Vitis-AI] Quantizing the Model

이 글은 Xilinx의 Vitis AI User Guide(UG1414)를 따라 작성하였습니다. 먼저 pytorch를 사용하기 위해서 vai_q_pytorch를 설치해야 합니다. 작성일 기준 pytorch 1.2~1.10.2를 지원하지만 data parallelism은 지원하지 않습니다. VAI quantizer는 floating-point model를 input으로 받아 전처리(batchnorm folding 및 inference에 필요하지 않은 node를 삭제)를 수행합니다. Docker container를 이용한 vai_q_pytorch 설치 추가적인 설치 없이 이전에 설치한 docker 환경에서 CPU/GPU 컨테이너를 실행하고 Conda 환경을 활성화합니다. conda activate vitis..

Xilinx 2022.11.01