※ solution에 대한 코드는 절대 제공되지 않으며, 수업진행에 필요한 모든 도움은 최영규 교수님의 자료 및 이메일을 참고하길 바랍니다.
FIR 필터라는 주제에 대한 이해를 바탕으로
실제로 동작하는 hls코드를 작성해볼 것입니다.
Vitis HLS GUI 툴을 이용하여 C/RTL 시뮬레이션을 합니다.
해당 주제에 대한 자세한 내용은, 전자공학과 과목인 '신호 및 시스템'에서 배울 수 있습니다.
저희가 다루는 것은 디지털 필터로, 아날로그 필터와는 달리 불연속적인 dataset을 가지고, 이에 대한 합성곱(convolution)을 수행합니다.
평균 계산 필터는 생략
해당 코드를 살펴보면, 배열(불연속적인 data)들에 대해 병렬적인 연산을 차례차례 수행하고 있음을 볼 수 있습니다.
Vitis-HLS 툴을 이용하여 FIR filter 코드를 합성할 것입니다. 가속화 하겠다는 뜻
Vitis HLS를 실행하는 2가지 방법이 있습니다.
가장 큰 차이점은 개발환경인 text editor가 다르다는 점입니다.
필자는 DCV 외부 확장 프로그램을 사용하였습니다. (MAC이기 때문)
깃허브 링크로 들어가서 주어진 절차에 따라 환경을 설치하면 됩니다.
링크에서의 7번 과정은 매 DCV 프로그램을 재사용할 때마다 실행해야 한다는 점인데, 이 점 유의하시길 바랍니다.
IAM role - 계정권한 관련 설정을 해줍니다.
인스턴스에 8443 포트를 열어 해당 접근에 대해서 수락해줍니다.
해당 과정이 왜 존재하는가? -MAC OS 기준-
1. 인스턴스는 기본적으로 클라우드 컴퓨팅 시스템을 원격으로 사용하는 방식입니다.
2. 모든 통신엔 포트 개념이 존재하는데(컴퓨터 네트워크 수업 참조), aws의 클라우드 컴퓨팅인 ec2는 기본적으로 최초 연결 포트를 제외하고는 전부 막아둡니다.
3. DCV(맥 기준)에 접근하는 포트번호가 default가 8443으로 정해져있기 때문에, 이 포트번호를 인스턴스에 대해서 허락해줘야만 DCV를 통한 접속이 가능합니다.
틀린 점 있으면 지적 바랍니다.
웹 브라우저 혹은, 상기에서 설치한 DCV를 이용해 접근 주소를 입력해 인스턴스에 gui로서 접근합니다.
terminal을 실행합니다.
이제 저희가 사용할 tool인 Vitis-hls tool을 명령어를 통해 실행합니다.
다운로드 받아서 과정을 수행합니다.
실행시간을 측정하기 위해서 필요한 공식입니다.
600개의 sample이 input으로 주어지고, 각각 28cycle이 발생해, 총 16800cycle이 발생됩니다.(순차적인 처리인 경우)
RTL레벨에서의 simulation도 가능합니다. (전에 언급한 바 있음) 왜 하는지 궁금하다면, 블로그링크를 통해 답을 구하셨으면 좋겠습니다.
그래프로도 관측 가능합니다.
이번 시간에는 세팅에 관한 설명과, tool의 기능을 주로 하였습니다.
fir filter의 가속에 대한 자세한 내용은 다루지 않았습니다.
저희가 배우는 주제와 관련되어서는 다음 강의에서부터 제대로 다룹니다.
감사합니다.