작성
·
523
1
=================
현업자인지라 업무때문에 답변이 늦을 수 있습니다. (길어도 만 3일 안에는 꼭 답변드리려고 노력중입니다 ㅠㅠ)
강의에서 다룬 내용들의 질문들을 부탁드립니다!! (설치과정, 강의내용을 듣고 이해가 안되었던 부분들, 강의의 오류 등등)
이런 질문은 부담스러워요.. (답변거부해도 양해 부탁드려요)
개인 과제, 강의에서 다루지 않은 내용들의 궁금증 해소, 영상과 다른 접근방법 후 디버깅 요청, 고민 상담 등..
글쓰기 에티튜드를 지켜주세요 (저 포함, 다른 수강생 분들이 함께보는 공간입니다.)
서로 예의를 지키며 존중하는 문화를 만들어가요.
질문글을 보고 내용을 이해할 수 있도록 남겨주시면 답변에 큰 도움이 될 것 같아요. (상세히 작성하면 더 좋아요! )
먼저 유사한 질문이 있었는지 검색해보세요.
잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
==================
안녕하세요. 좋은 강의 공유해주셔서 감사합니다!!
Verilog HDL season 2 강의와 본 강의를 보고 여러 AI HW 논문을 읽다보니 한 가지 궁금한 점이 있어서 글 남기게 되었습니다.
많은 AI HW 논문에서는 빠른 data move를 위해서 보통 모든 weight와 feature map을 on-chip memory(Bram)에 모두 넣도록 구성하는 경우가 많더라구요. 그래서 BRAM에 모든 weight를 올릴 수 있도록 모델의 크기를 최적화하는 방향으로 연구를 하더라구요.
그만큼 DDR의 접근 속도가 느리다는 것 같은데 그러면 AI HW 분야에서는 어떤 경우에 DDR를 사용하는지 그리고 느리다면 BRAM과 비교해서 얼마나 느리길래 사용하지 않는 것인지.(Stream을 이용하면 그렇게 차이가 크다고 생각하지 않는데...)
[질문 정리]
현업 AI HW 분야에서 DDR 접근은 언제 사용하나요?
BRAM 접근 속도와 DDR 접근 속도가 얼마나 차이가 나길래 BRAM만 사용해서 AI HW system을 구성하는 것인가요?
항상 좋은 강의 만들어주셔서 감사합니다!!
답변 1
0
안녕하세요 :)
A1. BRAM 에 Data 를 넣는 행위는 크게 두가지로 정의할 수 있습니다.
FPGA 를 구울 당시 부터 BRAM 회로에 fix 값을 넣는 행위 (이때는 DDR 필요없음)
시스템을 구성하고 BRAM 에 값을 채우는 행위 (이때는 DDR 필수)
위 2번 처럼 AI 에는 Weight, Fmap 을 BRAM 에 업데이트 해야합니다. 그리고 대부분의 NPU 는 2번을 택하고 있죠. DDR 없이 그 과정은 불가능 하다고 보셔도 됩니다. 그럼으로 시스템 관점에서 DDR 사용은 필수 입니다.
핵심은 DDR 접근을 최소화 하는것이 중요합니다. 그것을 잘 고려하는 것이 Architect 의 역할이고요.
얼마나 느리냐? 의 답은 BRAM 은 1 cycle 엑세스 인데, DDR 은 ? 의 엑세스 입니다. (시스템 구성마다 다름)
A2. BRAM 을 사용해서 가속기 IP 를 설계하였지, BRAM 만 사용해서 시스템을 구성한적은 없습니다. 우리는 이미 DDR 을 쓰고 있습니다.
초기값을 넣어주는 행위를 상기해보면, 우리는 이미 DDR 을 쓰고 있습니다. (PS <-> DDR)
다만, BRAM 에 값을 넣어주는 행위가 AXI4-Lite 를 통해서 이루어 지고 있고, 그것은 굉장히 저속 I/F 입니다.
Verilog HDL Season2 에서 고속 Bus 를 다루었습니다.
AXI 를 공부하시면 더 완벽한 가속기 설계가 가능할 꺼에요.
즐공하세요 :)
감사합니다!!