반응형
Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

테크매니아

pynq z2 : BNN 본문

카테고리 없음

pynq z2 : BNN

SciomageLAB 2024. 10. 4. 12:11
반응형

xilinx의 FPGA 개발보드이다.

FPGA를 Python으로 컨트롤할 수 있는 신기한 보드이다. 간단한 스펙은 아래와 같음

  • ZYNQ XC7Z020-1CLG400C
  • 650MHz dual-core Cortex-A9 processor
  • 13,300 logic slices, each with four 6-input LUTs and 8 flip-flops
  • 512MB DDR3 with 16-bit bus @ 1050Mbps
  • Powered from USB or 7V-15V external power source

영문 자료는 많은데 한국어로 된 강의가 매우 귀하다. 한동대에서 좋은 강의를 올려줘서 많이 도움을 받았다. 아주 깊이 있는 내용은 당연히 스스로 공부 해야 겠지만, 이 보드가 처음이라면 이 강의를 보고 전체적인 그림을 쉽게 이해 할 수 있도록 잘 되어있는 강의이다. 개인적으로 이런 강의를 공개해 주셔서 너무 감사하다.

https://www.youtube.com/watch?v=2dNcx5GH-GQ&list=PLoJdZ7VvEiRPNXbsZKsexm4CRMo1pKr8B&index=1

기본 샘플 코드를 보면.. HDMI를 제어 한다거나.. 하드웨어를 제어 하는 샘플 뿐만 아니라 얼굴인식이나 객체분류 같은 딥러닝 샘플도 있다.

FPGA에서는 아주 경량화된 모델을 사용하는데, BNN이라고 바이너리 뉴런넷이라는걸 만들어 놨다. 보통 GPU에서 FP32, FP16을 쓰는데, 일부 임베디드에서는 INT8까지도 쓴다. INT8만 돼도 보고도 못믿겠는데.. BNN은 바이너리 레벨이다..

https://github.com/Xilinx/BNN-PYNQ

강의에 따르면 네트워크가 1과 -1로 이뤄져 있고, 경우에 따라서 2bit까지 쓴다고 한다... (이게 말이 되나??) 그래서 이미지 분류 모델의 파라미터가 6메가 정도밖에 안된다.

당연히 아주 간단한 모델이 돌아가는 수준이지만.. 이것을 잘 이용하면 복잡한 모델도 FPGA에서 병렬로 실행 시킬 수 있을 것 같은 기대가 든다.

기회가 된다면 객체 인식(분류 말고 인식)을 한 번 포팅 해 보려고 한다. YOLOv5같은 경우 임베디드용으로 설계된 모델이고, 그만큼 파라미터도 작기 때문에 가능성이 있다고 생각하는데, 또 실재로 FPGA에서 최적화가 얼마나 잘되는 모델인지 가능성은 있는지를 타진 해 볼 계획이다.

반응형