모개숲 딥러닝 스터디 - 14. SynthAI: A Multi Agent Generative AI Framework for Automated Modular HLS Design Generation
HLS (High-Level Synthesis)
고수준 합성, 소프트웨어 수준의 고수준 언어로 작성된 설계를 하드웨어 기술언어로 변환하는 프로세스.
SynthAI
A Multi Agent Generative AI Framework for Automated Modular HLS Design Generation
자동화된 모듈형 HLS 설계 생성을 위한 다중 에이전트 생성 AI 프레임워크
자동 하드웨어 코드생성에서 대형언어모델(LLMs)의 역할
LLMs는 자연어로부터 하드웨어 설명 코드를 도출하는 데 있어 유망한 능력을 보여주고 있음
기본적인 논리 하드웨어 설계를 생성하는 LLMs의 개념에서,
대화형 하드웨어 설계 분야의 도전, Verilog 코드를 생성하는 LLMs의 능력을 조사
LLMs를 하드웨어 설계 디버깅에 사용하는 LLM4SecHW 프레임워크 등등 발전
Modular Reasoning, Knowledge, and Language (MRKL)
대형 언어 모델(LLM)의 능력을 향상시키는 데 중점을 둔 인공지능 분야의 특화된 시스템
LLM의 자연어 처리 능력 증가
HLS C++ 코드 및/또는 디지털 설계 가이드, 교과서, 과학 논문과 같은 디지털 설계 자원
Agent
생각(Thought) 자체도 행동으로 간주됨. 에이전트는 한 노드에서 수행할 작업을 생성하고, 다른 노드에서 실행가지 상태만 가짐
이러한 에이전트들은 구조적으로 동일하지만, 초기 프롬프트와 정의된 목표는 다름
1) 생각(Thought)’ 단계를 순차적으로 수행
2) '행동(Action)' 단계에서 웹 검색을 수행할지 Python 코드를 실행할지를 결정
3) 도구를 사용한 후, 에이전트 결과 평가
4) 추가적인 '생각' 및 '행동' 단계를 계속 수행
5) 최종적으로 CodeModuleResponse 도구 (출력 형식화 유틸리티)를 사용하여 코드 생성
상호작용 에이전트
특정 작업 에이전트들이 팀 내에서 작업계획, 작업분배 및 작업실행을 수행하는것에 차ㅏㄱ안
데이터수집 에이전트, 시스템설계 에이전트, 모듈설계 에이전트, 평가 에이전트
검색 증강 생성 (RAG)
RAG : 외부 지식 검색을 생성 과정에 통합하여 LLM의 지식을 증강하는 방법
실제로 RAG는 의미 데이터를 기반으로 벡터 데이터베이스를 구성
이 데이터베이스는 LLM의 검색도구로 작동하여 LLM이 고유의 지식과 외부의 작업별 정보를 보완할 수 있게 함
사례 연구
SynthAI의 성능을 평가하기 위해 세 가지 회로 설계 사례 연구를 제시하고 다음 메트릭을 사용하여 성능을 평가
* 시스템 설계: 모듈의 그래프와 그 연결이 논리적으로 타당하고 설계 사양을 준수하는지 평가
Ex) CPU 설계에서 ALU, 데이터 경로, 메모리 및 제어 모듈 또는 그와 동등한 모듈이 그래프에 포함되어 있는지 확인
* 구문: 생성된 코드가 AMD HLS C++ 지침을 따라 구문적으로 올바른지 평가
* 완전성: 생성된 설계가 의도된 기능을 완전히 구현하고 중요한 구성 요소나 기능이 누락되지 않았는지 측정
* 인터페이스: 모듈 간 인터페이스의 정확성을 평가하여 폭, 유형 및 시스템 내 통합이 일치하는지 확인
* 최적화: 설계 목표와 요구 사항에 따른 성능 메트릭 측면에서 생성된 설계의 효율성을 분석
* 합성 가능성: 생성된 설계가 하드웨어로 성공적으로 합성될 수 있는지 평가하여 물리적 구현을 위한 모든 필수 제약 조건과 요구 사항을 충족하는지 확인
https://arxiv.org/abs/2405.16072