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

최규현님의 프로필 이미지
최규현

작성한 질문수

설계독학맛비's 실전 FPGA를 이용한 HW 가속기 설계 (LED 제어부터 Fully Connected Layer 가속기 설계까지)

[FPGA 10장] FSM 기본코어 IDLE -> RUN -> DONE 모듈을 FPGA 에 올려보기 HW Sleep 함수 구현 (PS <-> PL 간의 통신 방법 익히기2) - 실습편

bram에 관련해서 질문있습니다!

작성

·

71

1

안녕하세요 맛비님, 강의 잘 시청하고 있습니다! 강의를 보며 직접 ANN을 설계해보는 중에 궁금한 점이 있어 질문 드립니다.

질문: Fully Connected Layer에서 제가 알기론 각 코어의 출력값이 순차적으로 나오는 것이 아니라 병렬로 나오는 것으로 알고 있습니다. 이 출력값들을 다음 층의 입력으로 전달하기 위해 메모리를 사용하려고 하는데, 이러한 상황에서 출력값을 메모리에 저장하는 가장 효율적인 방법이 무엇인지 궁금합니다.

 

답변 2

1

최규현님의 프로필 이미지
최규현
질문자

답해주셔서 감사합니다! FPGA21 장의 질문을 올렸어야 하는데 실수로 10장의 올렸네요 ..ㅎㅎ
21장에서 맛비님이 설계하신 코드를 보면 fully connected core를 4개로 설계 하셨는데 이 4개에서 나오는 출력값들을 메모리에 저장 후 다음 layer로 전달하고 싶습니다. 이때 메모리에 주소를 하나 씩 변경하면서 저장하고 싶은데 각 각 다른 코어에서 값들이 나와서 메모리에 input을 어떻게 줘야 될지 궁금합니다.

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

concatenation 문법을 통해서 4개의 data 를 하나의 data 처럼 메모리에 넣어두면 될 것 같아요.

0

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

안녕하세요 🙂

FPGA10 장의 질문이라.. 답변이 맞는지 모르겠네요.

질문이 모호한 부분이 있는데요.

먼저 아키텍처를 어떻게 잡느냐에 따라서 코어의 출력값이 순차적으로 나오게 할 수 있고, 병렬로도 나오게 할 수 있어요. 병렬이라고 가정할께요.

효율적? 이 어떤 관점인지는 모르겠는데요. (PPA)

Performance 관점에서만 설명드리면,

출력을 다음 Layer 의 입력으로 전달한다 하시면, 최소 Cycle 을 원하시면 현 Layer 의 결과를 저장할 수 있는 최대 bit width 로 설정하시면, 한 cycle 에 많은 data 양을 R/W 할 수 있으니 performance 관점에서는 좋을 것 같아요.

이런 식으로 질문자님께서 아키텍쳐를 고려해보시면 좋을 것 같아요.

최규현님의 프로필 이미지
최규현

작성한 질문수

질문하기