인공지능(AI) 설계에서 개발자 편의는 중요한 화두로 떠오르고 있다. 소프트웨어와 하드웨어 모두에서 AI는 빠르게 성장하며, 그만큼 빠르게 바뀌고 있다.
이는 잦은 수정이 필요하다는 말이고, 그만큼 개발자들에게 유연한 툴이 필요하다는 것이다. 그런 면에서 파이썬(Python)은 AI 소프트웨어 개발자들에게 단비와도 같은 존재였다.
그러면 하드웨어 개발자들도 파이썬을 사용하면 되지 않을까? 하드웨어부터 소프트웨어, 그리고 서비스까지 모두 같은 언어를 사용하면 AI 개발이 빨라지지 않을까?
이런 시도는 말처럼 쉬운 것이 아니다.
원칙적으로 하드웨어의 작동은 0과 1로 이뤄진 기계어로 이뤄지기 때문에 그보다 상위 언어로 사용하기 위해서는 이를 위한 툴 키트, 라이브러리 등이 필요하기 때문이다.
이는 비용이 든다는 것을 의미한다. 과거에는 반도체 회사들이 굳이 인력과 비용을 써서 이런 솔루션을 만들 이유가 없었다.
하지만 최근에 AI 시장이 본격적으로 성장하면서 엉덩이가 무거운 반도체 회사들이 새로운 솔루션들을 공개하고 있다. 하드웨어 설계부터 소프트웨어까지 하나의 솔루션으로 통합된다면 그만큼 해당 기업의 AI 시장 점유율을 높일 수 있다는 계산이다.
하드웨어 설계에도 C++은 물론이고 AI용 프로그래밍 언어를 지원하거나, 하드웨어 설계-소프트웨어 설계-서비스 운영까지 하나의 플랫폼을 제공하겠다는 것이다. 대표적으로 Arm, 자일링스, 멘토 지멘스 비즈니스(이하 멘토) 등이 이런 서비스를 지원한다.
◇ Arm, "모든 디바이스·OS에서 엔드포인트를 클라우드 서비스 공급자까지 통합·연결"
오늘날의 개발 프로세스는 시간 소모적인 단계들을 여러 번 거친다. 하드웨어, 클라우드, 운영체계, 미들웨어 각각 다른 플랫폼을 사용한다. 이는 개발자들의 작업 속도를 느리게 한다.
이에 모든 집단이 다룰 수 있으며 낯선 분야에서도 누구나 쉽게 아이디어를 개발·출시할 수 있도록 하는 개발도구가 필요하다.
영국의 반도체 설계(IP) 기업 Arm은 새로운 개발 워크플로는 사용자가 머신러닝, DSP(Digital Signal Processing), 실시간 컴퓨팅 간의 새로운 조합을 다룰 때도 소프트웨어 복잡성을 처리할 수 있도록 도움을 줘야 한다고 강조했다.
또한 개발 도구는 모든 디바이스와 운영 체제에서 엔드포인트를 모든 클라우드 서비스 공급자와 원활하게 통합하고 연결할 수 있는 기능을 제공해야 한다.
즉 '상당히' 유연한 플랫폼이 필요하다는 것이다.
이에 Arm은 개발자들이 영감에서 프로토타입, 생산 단계까지 빠르게 나아갈 수 있도록 돕는 툴을 개발할 계획을 26일 밝혔다.
Arm은 "이를 통해 개발자들은 그들의 설계 방식이 개발을 복잡하게 만들지 걱정하거나 기본 구성 요소들의 변형, 변경, 업데이트 등을 처리하는 데 시간을 소모하는 대신, 시장에서 우위를 점할 새로운 차별화 기능에 집중할 수 있게 된다"고 설명했다.
현재는 툴 및 에코시스템에서의 사용이 간편하지 않아 새로운 IoT나 머신러닝 설계에 대한 수요가 억제된 상태이므로 새로운 툴이 보다 조속히 마련되어야 한다는 것이다.
딥티 바차니 Arm 오토모티브·IoT 사업부 수석 부사장 겸 총괄 매니저는 "Arm은 복잡한 소프트웨어 개발을 최대한 쉽게 할 수 있는 도구를 제공함으로써 개발자들이 아이디어를 더욱 빠르고 효율적으로 현실화할 수 있는 세상을 만들 것”이라고 말했다.
이런 계획의 하나로, Arm은 마이크로소프트와 협력해 AI 워크로드 개발 라이프사이클 전체를 최적화하고 가속화하는 데 초점을 맞출 예정이다. 애저(Azure) 클라우드에서 머신러닝 모델을 트레이닝과 튜닝하는 것에서부터 모든 Arm 기반 엔드포인트 디바이스에서 해당 모델을 최적화, 배포, 실행하는 것까지 모두 포함한다.
이어 Arm은 마이크로소프트와의 협업을 통해 임베디드, IoT, ML 개발자 커뮤니티 간에 보다 효과적인 시너지가 창출될 수 있도록 할 예정이다. 개발자 경험을 최우선으로 하는 것은 혁신가들에게 힘을 실어 주어 그들이 더 나은 솔루션과 미래를 더욱 쉽게 제공할 수 있도록 하겠다는 것이다.
◇자일링스·멘토·시놉시스, HLS로 하드웨어 언어를 개발자 편의 소프트웨어 언어로 바꿔야
FPGA(Field Programmable Gate Array)의 가장 큰 특징은 프로그램이 가능하다는 것이다. 회로 변경이 불가능한 일반 반도체와 달리 용도에 맞게 회로를 다시 새겨넣을 수 있다는 장점이 있다.
이는 최근 하루가 다르게 성장하는 AI 시장에 걸맞은 특징이다. 하지만 FPGA는 이런 장점에도 불구하고 뚜렷한 몇 가지 단점 때문에 잘 사용되지 않는다.
하나는 비싸다는 것이고, 다른 하나는 설계가 매우 어렵다는 것이다.
기존에 FPGA를 설계하기 위해서는 VHDL(Very high speed integrated circuit HDL)과 베릴로그(Verilog)를 배워야 했다. 0과 1로 이뤄진 기계어에 가장 가까운 언어다.
모든 반도체와 소프트웨어는 두 개의 언어로 개발, 수정 가능하다. 이론적으로는 인공지능(AI) 소프트웨어 프로그램도 두 언어로 만들 수 있다.
문제는 지극히 어렵다는 것이다. 기계에 가깝다는 말은 사람이 이해하기에는 매우 멀다는 이야기다.
이에 자일링스와 멘토는 이런 접근성을 낮추기 위해 솔루션을 개발했다.
2011년, 자일링스는 ‘올 프로그래머블’이란 개념을 도입했다. 하드웨어는 물론 소프트웨어 설계까지 하나의 환경에서 개발할 수 있다는 것이다. 자일링스는 HDL(VHDL과 베릴로그와 같은 '하드웨어 기술 언어')은 물론이고 C언어로 FPGA를 개발하는 비바도(Vivado) HLS(High Level Synthesis)를 공개했다.
HLS는 HDL을 C나 C++ 등 상위 수준의 언어로 바꿔주는 기술이다.
2014년부터 자일링스는 오픈CL과 C++를 비바도에 추가했으며, 지난해 비바도에서 업그레이드 된 바이티스(Vitis)를 공개하며 AI용 개발 언어인 파이썬까지 지원했다.
자일링스 외에도 멘토, 시놉시스(Synopsys) 등이 HLS 패키지를 판매하고 있다.
데이비드 버네트 멘토 엔지니어링 부장은 'AI 가속기 생태계'라는 글에서 "하드웨어와 소프트웨어 설계에서 가장 빠르게 성장하고 있는 분야 중 하나는 AI/ML"이라며, AI와 ML을 위해서 반도체는 성능과 함께 에너지 효율적으로 설계해야 된다고 말했다.
복잡한 합성곱 신경망(CNN)을 통해 딥러닝 시스템을 구현하기 때문에 많은 컴퓨팅 능력이 요구되고, 소비되는 전력이 많다는 것이다.
버네트 부장은 이를 효율적으로 설계하기 위해서는 기존의 하드웨어 언어만으로는 시간이 걸릴 수밖에 없다며, HLS 툴을 통해 간편한 설계를 할 수 있다고 강조했다.
