티스토리 뷰
이번 실험은 fixed point 연산을 활용한 행렬곱을 진행하여 성능을 평가해본다.
#ifdef solution5
typedef float Mat_Dtype;
typedef ap_fixed<22,13> Mat_DtypeOp;
#endif
이전 코드에서 달라지는 부분은 행렬을 저장하는 array의 type만 재정의 하는 것이다. ap_fixed<22,13>이 의미 하는 바는 22비트폭에 정수부분에 13비트, 나머지 9비트를 fractional part로 선언하는 것이다.
Fixed point 값을 사용하였을 경우 합성 결과는 다음과 같다.
좀더 자세히 보면,
여기서 살펴볼 것은 DSP 사용이 현저히 줄어든 것을 볼 수 있다. 행렬 연산하는 로직 자체도 FF 및 LUT가 크게 줄어든 것을 볼수 있다. 특이한 것은 입력 loop와 출력 loop의 로직이 커졌다는 것이 특이 사항이다. fixed point 에 따른 변환 회로 때문인까?
이전 결과를 보면,
역시 성능 평가를 위해 새롭게 만들어진 fixed point 타입의 matmul ip를 vivado 를 이용하여 통합하였다.
'Tech-Tip' 카테고리의 다른 글
유클리드 호제법 (0) | 2023.05.30 |
---|---|
최신 GPU Spec 체크 (0) | 2023.05.21 |
행렬곱 - Xilinx HLS 실험 3 (0) | 2023.02.23 |
행렬곱 - Xilinx HLS 실험 2 (0) | 2023.02.22 |
행렬곱 - Xilinx HLS 실험 1 (1) | 2023.02.22 |