inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

[FPGA 21장] 프로젝트 Fully Connected Layer 설계 - 코드리뷰편

input node 갯수와 관련된 질문

해결된 질문

352

유승재

작성한 질문수 18

4

안녕하세요,
 
수업을 여러 번 들으면서 공부 중에 의문점이 들어 질문 드립니다.
 
수업 중에 input node가 4096개 일때를 기준으로 현재 fully connected layer 를 구현 중이다 라고 말씀하셨는데, 그렇게 되면 수학적으로 식은 다음과 같습니다.
 
(output node가 y개라는 가정 하에)
Weight_matrix: (y * 4096)크기의 행렬
input_matrix: (4096*1)크기의 행렬
output_matrix: (y*1)크기의 행렬
 
output_matrix = dot(Weight_matrix, input_matrix)
 
그러나 input node 경우, BRAM에 저장되는 과정에서 8bit로 표현되는 숫자가 4개씩 32bit에 memory depth 4096 만큼 저장이 되기 때문에 4*4096 = 16384개가 되는데 이는 input node 갯수가 4096개라는 처음 가정과 맞지 않습니다.
 
어떤 부분에 착오가 있는 것일까요?
 
 
 
 

임베디드 fpga

답변 1

1

설계독학맛비

아.. 이런, 오해의 소지가 있겠네요. (문제가 맞습니다.)

제가 약간 말장난을 할 건데,

SW 를 보니까, input node 의 값 4개가 전부 random 이라 말씀하신대로

16384 입니다. 하지만 그 때는 (일반적으로) output node 는 1개가 되어야겠죠. 

왜냐하면, 16384 의 input node 수와 동일한 16384 의 weight 가 loading 되었으니까요. 

input node 16384 에 해당하는 최종 결과 1개를 구하려면,

우선 코어는 4096 의 결과 4개를 갖고 있으니, 4개를 SW 에서 가져간 후 최종적으로 sum 하면 결과를 얻을 수 있을 것 같습니다.

 

 

SW 의 input node gen 을 전부 동일하게 했다면, 오해의 소지가 사라질 것 같긴하네요

이렇게 이해해 주시면 될 것 같아요. 다음 그림에서,

input node 입력이 ( 파란색 영역)

node 0,1,2,3 이 전부 동일하다.

이러면 input node 4096 의 4 core 가 성립할 것 같습니다.

정리하면, 해당 HW 는 여러가지 Case 를 처리할 수 있을 것 같구요.

Overflow 의 가정을 제거하면, SW 에 loading 하는 값으로

말씀해주신, input node : 16384, output node : 1

처음 의도하였던, input node : 4096, output node : 4

물론 SW 만으로 더 다양한 조합을 만드실 수 있겠죠? 

 

 

UART0, 1 중 선택

1

50

2

datamoverbram모듈질문

1

63

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

289

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