inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

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

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

175

최규현

작성한 질문수 4

1

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

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

 

fpga 임베디드

답변 2

1

최규현

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

0

설계독학맛비

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

0

설계독학맛비

안녕하세요 🙂

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

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

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

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

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

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

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

UART0, 1 중 선택

1

49

2

datamoverbram모듈질문

1

62

2

vitis 설치엣 alveo kria versal 등 옵션을 끄고 설치를 했습니다.

1

96

2

vitis 설치 관련 질문 있습니다!

1

84

2

FPGA 공식문서 읽는법

1

95

2

보드 추가의 클릭창이 없습니다.

1

70

2

Edit in IP Packager에서 코드 수정 후 IP 수정하면 simulation에서 수정된 코드로 작동이 안됩니다

1

81

2

BRAM의 Read / Write를 다 수행했는지 확인할 때 사용되는 num_cnt / i_num_cnt 관련 질문

1

106

1

Vitis 코드 작성

1

130

2

vivado 및 vitis 리눅스 환경 설치 관련 질문드립니다.

1

288

3

[9장 led 점등 시간 제어 불가]

1

81

2

Platform Invalid 오류

1

145

3

WSL 설치 관련 문의드립니다!!

1

96

2

Vivado 툴, 파일 질문드립니다!

1

150

2

9장 LED 점등 안됨

1

109

3

Edit in IP Packager 이후에

1

82

1

Fpga 로직

1

89

2

pmu-fw is not running

1

126

2

Create Project에 대해서 궁금해요

1

89

2

장치관리자 USB 포트

1

98

2

FPGA 7장 AXI_LITE I/F질문

1

89

1

bram mover에서 합성할때

1

77

2

타이밍 위반 질문

1

78

2

rvalid 초기화

1

66

2