설계독학맛비 YouTube/00 쉬어가기

[설계독학] [쉬어가기 4장] 새로운 설계방법론 HLS 의 Tool 종류와 성공사례

반응형

설계독학에서 진행 중인 쉬어가기의 내용입니다.

모든 글의 저작권은 맛있는비빔밥에게 있습니다. ^^

설계독학 유튜브

youtu.be/bN498OGPCew

 

Intro

 

안녕하세요. 설계독학의 맛비입니다.

오늘은 쉬어가기의 네번째 시간을 준비해 봤습니다.

저번 쉬어가기 3장에 이어서 HLS (High Level Synthesis) 에 대해 더 자세히 알아보려고 합니다.

저번시간에는 HLS 가 무엇인지와 장단점을 알아봤습니다.  이번시간에는 HLS 의 Tool 종류와 그리고 성공사례에 대해서 살펴보고자 합니다.

HLS 가 무엇인가를 이해를 하셔야 오늘 내용이 더욱더 유익하리라 생각이 듭니다. 설계독학은 정주행을 추천합니다.

오늘도 재밌게 봐주세요. 그럼 시작하겠습니다.

 

HLS 를 간략하게 정리하면,

저번시간의 내용을 간략하게 말씀드리고 시작하겠습니다.

HLS 은 HDL 과 달리 C/C++ 와 같은 상위레벨의 언어를 이용하여, RTL 설계를 하는 방법입니다.

장점은 시간을 줄일 수 있습니다. 단점은 HLS 와 Spec 에 대한 정확한 이해가 없다면 QoR 이 떨어질 수 있다고 말씀드렸었죠.

 

HLS Tool 종류

그럼 이런 HLS 의 Tool 은 어떤 것들이 있을까요?

HLS 의 Tool 종류는 다음 wiki page 에 가면 참고할 수 있습니다.

https://en.wikipedia.org/wiki/High-level_synthesis

 

약 30개 정도의 Tool 이 있네요. 굉장히 많은 Tool 들이 있는데, 그 중에서 저는 올 초까지만해도 Mentor 사에서 출시한 Catapult HLS 라는 Tool을 사용했었습니다. 현재는 Xilinx 사에서 출시한 Vivado HLS 를 사용중이구요,

그래서 오늘은 사용해본 2가지의 Tool 을 중심으로 설명을 드릴께요.

두가지 Tool 을 사용해본 입장으로써, 굉장히 다른 성격을 띄고 있습니다.

다음 Table 을 보면서 설명을 드릴께요.

 

  Catapult HLS Vivado HLS
Target ASIC, FPGA FPGA (Xilinx)
Tool 가격 유료 (개인 구입하기에 굉장히 비쌈.) 무료
공통점 Library (Math, FP, Fixed P, Testbench, 등등.), C / C++ / System C

 

Catapult HLS

먼저 Catapult HLS 는 Mentor 사에서 출시한 Tool 입니다. 2004 년도에 출시가 되었어요. 그래서 HLS 라는 설계기법을 최신? 이라고 표현하기에는 조금 어색하죠.

나온지는 이제 16년이 넘었습니다. 그만큼 Tool 안정성 측면에서 성숙되었어요. 예전에는 쓰지않았지만 지금은 쓸만하다 라는 생각이 드는 Tool 입니다.

제가 전에 있던 회사에서는 ASIC 의 IP 를 Target 으로 개발을 했었습니다. 그래서 어떤 Tool 이 좋을까? 하다가 지금의 사장님께서 (전회사 CTO) Catapult 라는 Tool 을 선정을 했습니다.

실제로 Catapult HLS 를 통해서 나온 RTL 이 실제 제품에 들어가기도 했어요.

그리고 HLS 의 좋은점이, Target 에 따라서, 하나의 C Code 로 여러 Target 의 RTL 을 생성 수 있다 라는 점입니다.

예를 들어서 FPGA Demo 를 해야하는 상황이었는데, Target library 를 FPGA 로 해서 RTL 을 생성해서 Demo 를 했던 사례도 있었습니다.

이 Tool 이 있으면, ASIC 도 되고, FPGA 도 되는 아주 좋은 Tool 이 었습니다.

굉장히 좋은 Tool 인데, 가장 큰 단점인게 가격이었습니다.

이게 많이 비쌉니다. 제 연봉보다 더~~~ 비싸요. 아주 큰 단점이죠. 그래도 대기업들이 많이 사용하고 있다고 알고있습니다.

예를들면, Nvidia, 삼성, 하이닉스, 퀄컴, 소문으로는 Naver 에서도 try 를 했었다? 라고 줏어들었었어요. (Naver 는 fact 는 아닙니다. )

Vivado HLS

다음으로 볼 Tool 은 Vivado HLS 입니다. Vivado HLS 는 Xilinx 사에서 출시한 Tool 로 Xilinx 사의 FPGA 에 최적화된 Tool 입니다.

즉, Vivado HLS 는 FPGA 를 위한 Tool 이라서 ASIC 까지 만들기에는 거리가 있습니다.

하지만, FPGA 만을 위해 사용한다 라고 했을 때 Catpult HLS 에서 만든 Verilog Code 와 Vivado HLS 에서 만든 Verilog Code 의 QoR 은 당연히도 Vivado HLS 가 경험상 좋았습니다.

Tool 가격은 무료입니다. 무료정책이 가능한 이유가, Xilinx 사에서의 FPGA 에 맞춰져 있다고 했고, 결국 FPGA 가 없으면 사실상 의미가 없죠. 즉, FPGA 비용에 Tool 값이 포함되어 있는 겁니다.

현재 저는 Xilinx 의 FPGA 를 Target 으로 IP 를 만들고 있기 때문에, Vivado HLS 를 사용하고 있습니다.

 

두 Tool의 공통점

두 Tool 의 공통점으로는, 다양한 Library 를 제공합니다. 예를들어, Math 안에는 딥러닝의 Activation 에서 사용되는 sigmoid, tanh 등등이 있구요, float point, fixed point 같은 타입들도 제공을 합니다.

High level Language 인 C/C++/System C 를 사용해서 RTL 설계가 가능하구요. 동일하게 Testbench 도 자동으로 만들어주죠.

여기서 재미있는 사실은, HLS 가 IEEE 처럼 어떤 규약이 아니기 때문에 Tool 마다, 코딩 스타일 하고 옵션이 전부 달라요.

그말은 Catpult HLS 에서 코딩했던 C style 를 Vivado HLS 에 바로 적용하기는 어렵다는 뜻입니다. 어떤 Tool 을 쓰느냐에 따라 새로 공부를 해야합니다. 

두가지 Tool 에서 말하는 HW 적인 개념과 옵션은 공통점이 많아서, 두개의 Tool 중에 하나를 정확하게 알고있다면 새로운 Tool 을 익히고 사용하는데 큰 문제는 없을 것 같습니다.

그래서 설계독학에서는 무료 를 지향하기 때문에, Vivado HLS 를 다뤄볼 예정입니다.

하지만... FPGA 는 따로 구매를 하셔야 겠죠...? ㅠ.ㅠ

 

HLS 의 성공사례

그럼 다음주제로 HLS 를 사용해서 실제 제품에 들어간 사례가 있는지에 대해서 말씀드려보려고 합니다.

HLS 를 회사에서 처음 도입했을때, 많은 분들이 의심을 하셨습니다. 이게 정말 되? RTL 에 버그만 만드는거 아니야? 이런생각을 가진분들이 많았는데, 써보니까 버그가 더 적고, 더 빨리 Design 이 나왔어요.

실제로 HLS 에서 만든 RTL 이 버그가 나와서 Debugging 해보면, 유저가 잘못이해해서 코딩한 잘못이지 Tool 잘못은 거의? 잘? 못본 것 같습니다. 서론이 길었는데, HLS 가 현재는 잘 동작하고 어느정도 성숙된 기술이다 생각하시면 될 것 같아요.

 

Catapult HLS

Catpult 의 홈페이지를 보면 다양한 성공사례를 볼 수 있습니다.

https://www.mentor.com/hls-lp/success-stories#?filter=&start=1&limit=9

 

여기서 Nvidia 는 AI Engine 을 만드는데 사용을 했습니다. HLS 기법을 이용해서 만들었더니, 빠르게 만들 수 있더라 라는 내용이 있어요.

그리고 구글에서는 Video Codec 을 HLS 를 이용해서 만들었어요. 참고로 제가 알기로는 Video Codec 은 이제 TV 회사마다 각자의 코덱을 개발합니다.

그래서 삼성 TV 의  Codec RTL 과 LG TV 의 Codec RTL 은 전혀 다른게 들어가 있겠죠. 이야기를 왜하냐면 코덱이 복잡합니다.

근데 구글이 HLS 로 Video Codec 코드를 Open 했어요. 그래서 카더라인데, L 사 TV 에 구글에서 만든 HLS Code 를 RTL Generation 해서 Chip 을 만들었다 라는 이야기가 있습니다.

그 정도면 어느정도 성공했죠? 

 

Vivado HLS

Vivado HLS 는 FPGA Target 이라고 했습니다.

NgCodec 이라는 회사도 Vivado HLS 를 이용해서 FPGA 에 들어가는 Video Codec 을 개발을 했었습니다.

그리고 나서 Xilinx 가 NgCodec 이라는 회사를 인수를 했구요.

그외에 현재 제가 다니고 있는 Start up 에서도 신박한? 제품을 만들기 위해서 Vivado HLS 를 사용하고 있습니다.

제가 Video 하고 AI 관련 HW 설계를 하다보니, 이런쪽에 집중해서 보게 되네요.

여기에 나와있진 않지만 많은 회사들이 HLS 를 사용하고 있고 사용 추세가 늘고 있다 정도로 알아두시면 될 것 같습니다. 국내는 사실상 적죠.

 

마무리

오늘 설명드린 내용을 정리하고 마무리 하겠습니다.

HLS Tool 종류와 성공사례 에 대해서 간략하게 살펴봤습니다.

결론은 국내는 좀 부족하지만 글로벌적으로 HLS 를 사용하는 비중이 높아지고 있다이고, 설계독학에서는 무료 Tool 인 Vivado HLS 를 공부할 예정이다. 그리고 HLS 를 잘 이해하려면 HW 개념이 필수이기 때문에, 지금 배우고 있는 Verilog 를 열심히 공부하자. 입니다.

그럼 다음시간에 봬요~

반응형