머신러닝(ML) 구현에서 ‘상위수준합성(High Level Synthesis, HLS)’이 주목받는 이유 ①

2020-03-30     최태우
▲ [source=alibaba damo academy]
상위수준합성(High Level Synthesis, HLS)이 머신러닝(Machine Learning, ML) 매트릭스와 반복적인 설계 작업을 처리할 수 있는 차세대 기술로써 주목을 받고 있다.

HLS의 분명한 이점은 디자이너들이 RTL이 아닌 C/C++ 및 기타 상위수준 언어로 작업함으로써 생산성이 향상된다는 점이다. 작동하는 레이아웃을 설계한 뒤에 이를 손쉽게 수정해 다른 구성들을 테스트해볼 수 있다면 골치 아픈 문제에 대한 해결책을 찾거나 새로운 맞춤형 제품이나 상용 제품을 신속하게 개발할 경우에 더욱 많은 노력을 절약할 수 있다.

케이던스(Cadence) 디지털 및 사인오프 그룹의 HLS 부문 수석 제품 매니저인 데이브 퍼슬리(Dave Pursley)는 HLS의 가장 큰 이점으로 “새로운 IP를 설계하면서 최상의 전체 아키텍처를 달성하기 위해 변경이 필요할 경우”라고 말하기도 한다.

디자이너들은 아직도 이를 효과적으로 실현하기에 적합한 알고리즘이 무엇인지 알아내기 위해 노력하고 있다. 따라서 하나 이상의 솔루션을 시도하고자 하는 경우도 드문 일이 아니며, 이 모든 비트폭의 조합들로 인해 최근에는 그야말로 흔한 일이 되었다. HLS를 활용하면, C로 설계할 경우에는 코드를 재생성 할 수 있기 때문이다.

RTL 수준에 도달할 때쯤이면, 어떠한 변경이 이루어지든 레이아웃을 처음부터 다시 시작해야 할 가능성이 훨씬 더 커지게 된다.

상위 수준의 추상화 모델을 가지고 작업하게 되면 무엇보다도 IP를 보다 신속하게 작성할 수 있다. RTL에서 설계할 경우에는 모드를 하나 가감하거나 모델에서 뭔가를 변경하면 ‘그것으로 끝’이다.

HLS는 원래 하드웨어 검증용으로 설계된 설계 자동화 툴이다. 이 툴은 RTL보다 높은 추상화 수준을 사용한다.

케이던스가 자사 HLS 제품라인이 미치는 영향으로부터 추정한 바에 따르면 전반적인 설계 시간과 검증 비용을 약 25~50% 줄일 수 있는 잠재력을 가지고 있다고 한다. 시높시스(Synopsys)와 멘토(Mentor, a Siemens Business), 자일링스(Xilinx)도 독자적인 HLS 패키지를 판매하고 있다.

시높시스의 검증그룹 R&D 디렉터인 프라틱 마하잔(Pratik Mahajan)은 “가장 중요한 것은 부동소수점 장치를 작성하는 법”이라고 말한다.

칩을 교육에 사용할 때는 아마도 16비트 곱셈기와 32비트 덧셈기를 사용하고 싶을 것인데, 이는 C++에서 결정하는 편이 훨씬 쉽다. 소프트웨어 엔지니어들은 이를 알고 있으며, 상위수준 언어로 모델화 할 수 있다.

하지만 상위수준 합성은 1단계 RTL의 작성이라는 면에서는 좋지만 면적과 전력소비 면에서는 최상의 선택이 못 된다. 복잡한 연산을 위해서는 아직도 RTL을 수작업으로 코딩하고 있는 이유이기도 하다.

HLS 레이아웃도 RTL과 마찬가지로 테스트하고 검증할 수 있다. 이를 이용해 전력이나 타이밍 문제를 해결할 수 있으며, 이들은 텐서플로(TensorFlow)나 카페(Caffe)와 같은 프레임워크로 작성된 ML 추론 모델 정의를 읽을 수 있다.

이러한 문제 해결을 통해 디자이너는 작업부하를 칩으로, 칩을 작업부하로 최적화할 수 있다. 이는 또한 교육 결과를 데이터센터에서 처리해 추론 모델을 생성하는 동안에 가중치 부여나 강조 과정에서 의도하지 않은 변경이 이루어지지 않았는지 검증할 수 있게 해준다.

추론 모델은 네트워크의 가장자리에 있는 종단(EP) 장치의 크기에 관계없이 상대적인 혼돈 상태를 견뎌내야 한다.

멘토, 지멘스 비즈니스의 HLS 기술 전문가인 마이크 핑거로프(Mike Fingeroff)는 “추론 엔진을 구현할 때는 오리지널 네트워크 모델을 가지고 엣지 장치나 모바일 장치에서 실행하는 것이 중요하다”고 강조한다.
▲ 그림 1. 복잡한 컨벌루션 디자인에는 보다 높은 추상화 수준이 필요하다.
IC의 면적과 전력소비를 줄이되, 성능도 고려해야 하는데, 실시간 성능이 어느 정도 요구되는 자율주행 차량의 ADAS 같은 부문의 일부일 경우에는 특히 그렇다. 최상의 성능을 얻기 위해서는 하드웨어를 특정 네트워크에 맞게 조정하고 모델도 이에 기여하도록 최적화해야 한다는 설명이다.

중요한 것은 정확한 문제를 파악하는 것
HLS는 전력의 사용, 분배, 타이밍, 성능과 같은 칩 설계의 일반적인 해결과제를 최적화하기에 훌륭하다. 하지만, 그 진정한 가치는 관련 디자이너들이 다루기 어려울 수 있는 질문에 대답해줄 수 있다는 데 있다. 옵션은 많아도 표준과 모범사례는 별로 없는 ML의 경우에는 특히 그렇다.

HLS는 실험을 통해 어떤 것이 최고의 성능을 제공하는 지 알 수 있도록 해준다. 그것은 ASIC일 수도 있고 FPGA나 PE 배열일 수도 있다. 어쩌면 PE 배열이 가장 유연한 하드웨어 옵션일 수도 있다. 혹은, 어쩌면 네트워크 최상위 계층에 대해서만 융합 계층(fused layer) 아키텍처를 이용해 메모리 트래픽을 최적화할 수도 있을 것이다.

시행착오 방식은 칩 비즈니스 뿐만 아니라 기준도 개발비용도 높은 다른 모든 사업에 있어서도 솔루션 개발을 위한 가장 효율적인 접근방법은 아닐 것이다.

린리그룹(The Linley Group)이 지난해 2월 발표한 ‘딥러닝을 위한 프로세서 가이드(A Guide to Processors for Deep Learning)’ 보고서에 따르면, 2023년경에는 모든 신규 서버의 절반이 딥러닝 가속기(Deep Learning Accelerator, DLA)를 포함하게 될 것으로 보인다. 2022년에는 19억대의 클라이언트 장치들이 DLA를 탑재한 상태로 출하될 것으로 보고서는 전망하고 있다.

하지만 DLA가 그처럼 보편화된다면, ML 장치를 만들 때 시행착오 방식은 거의 불필요해지는 것일까? 성능을 높일수록 효율성도 높아지며, 더 많은 것을 할 수 있게 된다. 허나 제품만 제대로 동작한다면 비록 흐름이 극히 매끄럽지 않더라도 음성인식 등을 위한 수많은 틈새시장과 장치 및 분야들이 존재한다.

그러나 이러한 결정을 내리기 위해서는 때때로 설계 팀의 구조를 파고 들어야 한다. 각각의 기업에서 ML 애플리케이션을 개발하고 이를 실행할 장치를 설계하고자 소프트웨어/하드웨어 설계 팀을 구성할 경우, 최종적인 책임이 누구에게 있는 지 확인해 두는 것도 나쁘지 않은 생각이다.

중요한 점은 알고리즘이 칩을 정의한다는 사실이다. “중국에서 우리가 하려는 일에 대해 하드웨어 엔지니어와 한참을 얘기한 적이 있는데 그가 결정권자가 아니라는 걸 알게 된 적이 있다. 결정권자는 소프트웨어 설계자였던 것이다. 알고리즘이 칩을 정의하는 것이지, 칩이 알고리즘을 정의하는 것은 아님을 깨달은 후에야 모두 한 자리에 모인 자리에서 성과를 도출할 수 있었다”고 말한 아르테리스 IP(Arteris IP)의 마케팅 부사장인 커트 슐러(Kurt Shuler)의 비즈니스 사례로 우리는 이해할 수 있다.

물론, 소프트웨어 설계자가 항상 좋은 하드웨어 감각을 갖고 있는 것은 아니다. 슐러 또한 “우리가 겪은 또 다른 문제는 소프트웨어 설계자가 트랜지스터 수준까지 추상화해 내려가는 일을 잘 못할 수 있으며, 하드웨어 설계자도 소프트웨어 수준까지 추상화해 올라가는 일을 잘 못할 수도 있다는 것이었다. 말하자면, 이들에게 단계별로 잘 설명해줄 필요가 있다는 것이다”라고 말하기도 했다.

소프트웨어와 하드웨어의 긴밀한 통합 및 최적화를 고수하는 것도 개발 작업을 조정하는 좋은 방법일 수 있지만, 그것이 항상 성능에 대한 현실적인 요구를 반영하는 것은 아니다.

고객사가 해당 문제에 대해 생각해보도록, 하드웨어 설계자에게 해당 칩이 기대에 부응하지 못할 경우 어떤 일이 일어날지 묻기 보다는 이 칩을 제거하고 이를 애플리케이션에 대해 완전히 일반화 되어 있는 상용 추론 칩으로 대체할 경우 해당 장치에 어떤 영향이 미칠지 물어보는 것이 대안이 될 수도 있다.

“엣지에서는 초기에 아키텍처 상의 발견이 이루어지고 있는 것을 볼 수 있다. 이들은 어떤 알고리즘이 적합한 지 신속하게 알아내고자 하는데, 이는 대개 아키텍처를 살펴보는 것이다. 그 다음에는 FPGA나 ASIC 흐름을 이용하게 된다. HLS는 두 경우 모두에 사용될 수 있다.”

글 : 케빈 포가티(Kevin Fogarty) / 반도체산업 전문 자유기고가