인프런 커뮤니티 질문&답변

hyunwk7989님의 프로필 이미지
hyunwk7989

작성한 질문수

설계독학맛비's 실전 AI HW 설계를 위한 바이블, CNN 연산 완전정복 (Verilog HDL + FPGA 를 이용한 가속기 실습)

Image 인식 가속 모델을 설계하려면

해결된 질문

작성

·

56

·

수정됨

1

안녕하세요. 좋은 강의 감사드립니다.

 

강의를 모두 수강하고 얻은 지식들을 기반으로 Application을 만들고 싶어 가장 간단한 LeNet-5 모델 연산을 가속하여 Image 인식을 해보고자 합니다. 진행 중 궁금한 점이 있어 질문드립니다.

 

  1. 강의 내에서 AXI Protocol을 사용하여 FPGA의 PS 부분으로 Ref_C 부분을 연산하셨고 PL 부분으로 Weight 값, Feature Map 값 등을 FPGA에 입력해주신 것으로 이해했습니다. 제가 이해한 부분이 맞는걸까요?

  2. 만약 맞다면 AXI Protocol을 통해 MNIST 데이터셋 등을 넣어주는 과정이 있어야 Image 인식이 될 것 같다는 생각이 드는데 AXI Protocol에 대한 지식을 얻기 위해서는 맛비님의 어떤 강의들을 수강하면 될까요?

  3. 강의 내에서 제공해주신 Lab Project 코드로 Implementation 결과는 FPGA의 Resource가 대략 7-80% 사용하는 것으로 보여졌습니다. 이게 한 Layer에 대해 그리고 Activation Function이 구현 되지 않았음에도 꽤 많은 HW Resource를 사용하는 것 같은데 강의에서 사용하신 ZYBO Z7-20으로는 하나의 모델 전체 연산을 하기에는 Resource가 부족할까요? 아니면 Pipelining이 되어 있기 때문에 크게 상관이 없을까요?

좋은 강의 제공해주심에 감사드립니다!

답변 2

0

설계독학맛비님의 프로필 이미지
설계독학맛비
지식공유자

안녕하세요 🙂

재밌는 프로젝트 같습니다! 당연히 쉽지 않은 프로젝트이고요. 많은 지식이 필요해보입니다.

답변드릴께요.

  1. 네 이해하신게 맞습니다. 다만, AXI4-Lite 라고 하는 저속 I/F 를 사용하였고요. Core 의 연산시간 보다는 data loading 하는게 performance bottle neck 이 되실겁니다.

  2. 이 부분을 해결하기 위해서 DMA 라는 모듈을 설계하실 줄 알아야하고요. 해당 강의는 Verilog S2 에 있습니다. 하지만 현업 레벨 4년차 이상을 타겟으로 했음으로, 난이도 측면은 판단 부탁드립니다.

  3. 구현하는 방법도 여러가지가 있을 것 같습니다. 하나의 엔진을 돌려서 쓰는 방법이 있을 것 같고요. 그러면 각 layer 마다 pipe line 은 깨지겠지만, 대신 적은 resource 로 결과물을 만들어 내실 수 있을 것 같아요.

자세한 부분은 직접 부딪혀 보시면서 찾으셔야 할 것 같아요.

즐공하세요 🙂

0

안녕하세요, 인프런 AI 인턴입니다. hyunwk7989님. AI HW 설계를 통한 이미지 인식 가속 모델 설계에 대한 질문을 주셔서 감사합니다.

  1. 현재 강의에서 AXI Protocol을 이용하여 FPGA의 PS(Processing System) 부분으로 데이터를 연산하고, PL(Programmable Logic) 부분에서 Weight나 Feature Map 데이터를 입력받아 연산을 처리하신 내용에 대해 제대로 이해하신 것 같습니다. 이와 같은 구조는 특히 FPGA에서 CPU와 하드웨어 가속기의 협력을 통해 효율적인 처리 성능을 발휘하도록 설계되었습니다.

  2. AXI Protocol을 이해하여 데이터를 처리하고 MNIST 데이터셋을 FPGA에 입력하고자 하신다면, 맛비님이 강의하는 FPGA와 관련된 강의들을 추가로 수강하시면 좋을 것 같습니다. 구체적으로 AXI4 인터페이스를 다루는 부분이나, 기존 강의를 통해 AXI Protocol의 기초를 이해하시는 것이 도움이 될 것입니다. 강의 목록 중 설계독학맛비’s 실전 FPGA를 이용한 HW 가속기 설계에서도 관련된 내용을 확인할 수 있습니다.

  3. ZYBO Z7-20의 FPGA Resource가 현재 강의에서 제공되는 코드로 약 70-80% 사용된다는 점에서, 전체 LeNet-5 모델을 구현하기에 충분한 리소스를 제공할 수 있을지 확실하지 않을 수 있습니다. FPGA의 자원 제한으로 인해 모든 레이어와 기능을 동시에 구현하기 어려울 수 있지만, 특정 연산을 가속하기 위해 하드웨어 파이프라이닝을 잘 활용한다면 사용 가능한 리소스 내에서 성능을 최적화할 수 있습니다. 이를 통해 모델의 일부를 가속하는 방식으로 접근하신다면, 리소스 제약 내에서 원하는 기능을 수행할 수 있을 것입니다.

이해하신 대로, AXI Protocol을 통한 데이터 전송 방법이나 하드웨어 가속 설계에서 중요한 점을 잘 알고 계시므로, 추가로 학습하며 프로젝트를 진행하신다면 좋은 결과를 얻으실 수 있을 것 같습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

hyunwk7989님의 프로필 이미지
hyunwk7989

작성한 질문수

질문하기