[TVM&VTA] Project result

VTA-TVM result

Result

TVM에서 VTA를 레거시 코드로 인식하여 매뉴얼대로 실행하여도 정상적으로 진행이 되지 않고 수많은 에러에 봉착하게 된다. 이를 해결하기 위해

  1. Compiler 및 runtime 빌드 시 자신의 보드 설정을 추가 해야 한다.
    • 필자의 경우 ZCU104 보드를 추가하고 이에 맞는 LLVM 버전 및 다른 설정들을 추가하였다.
  2. 필자는 RPC 서버를 활용하지 않고 TARGET(ZCU104)에 바이너리를 카피해두고 로컬환경에서 바로 카메라 입력을 받아 처리함
    • TVM에서 제공하는 RPC서버의 경우 FPGA Bit 파일이 PL영역 로드 명령이 수행되지 않는다.(Pynq 버전 차이 인듯)
    • TVM에서 제공하는 RPC서버의 경우 런타임 수행명령에 의해 런타임이 재구성 되는데 이때 정상적으로 런타임이 재구성 되지 않아 오류가 난다.
    • TVM에서 제공하는 예제의 경우 OpenCV명령이 예전 버전이라 현재의 Pynq와 호환이 되지 않는다.
  3. 2항을 위해 Target을 위한 SW를 제작하였다.
    • FPGA Bit파일 / TVM Runtime / 모델 바이너리를 로딩
    • 카메라 입력을 VTA에 전송하고 출력을 받아옴
    • VTA 출력에 NMS를 적용하고 Box와 class Tag를 그리기

상세한 과정은 다음에 기회가 되면 정리하겠다. 다만 TVM 컴파일러가 대대적으로 개편이 되고 FPGA 지원이 빠지면서 TVM을 조금 다시 공부할 필요가 있어 이를 다시 공부하고자 한다.

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