2020년 4월 23일 (목) 구글 AI 리서치 블로그
현대 컴퓨팅의 혁명은 컴퓨터 시스템과 하드웨어의 놀라운 발전으로 크게 가능해졌습니다. 무어의 법칙과 데나드 스케일링이 둔화되면서 세계는 기하급수적으로 증가하는 컴퓨팅 수요를 충족시키기 위해 특정 하드웨어로 이동하고 있습니다. 그러나 오늘날의 칩은 설계하는 데 몇 년이 걸리므로 지금부터 2-5년의 머신러닝(ML) 모델을 위해 차세대 칩을 최적화하는 방법에 대해 예측해야 합니다. 칩 설계 주기를 크게 단축하면 하드웨어가 빠르게 발전하는 ML 분야에 적응할 수 있습니다. ML 자체가 칩 설계 주기를 단축할 수 있는 수단을 제공하여 하드웨어와 ML 간에 보다 통합된 관계를 형성할 수 있다면 어떻게 될까요?
“심층 강화 학습을 통한 칩 배치(Chip Placement with Deep Reinforcement Learning)” 논문에서 칩 배치를 강화 학습(RL) 문제로 삼아 칩 배치의 품질을 최적화하기 위해 에이전트(즉, RL 정책)를 훈련시킵니다. 이전 방법과 달리, 우리의 접근 방식은 과거 경험을 통해 배우고 시간이 지남에 따라 개선할 수 있습니다. 특히, 우리는 더 많은 수의 칩 블록에 대해 훈련할 때, 이전에 보지 못한 칩 블록에 대한 최적화된 배치를 신속하게 생성하는 방법이 향상되었습니다. 기존 기준에 따라 루프에서 인간 전문가가 필요하고 생성하는 데 몇 주가 걸리는 반면, Google의 방법은 6시간 이내에 수동으로 설계한 제품보다 실적이 우수하거나 일치하는 게재 위치를 생성할 수 있습니다. 구글은 TPU(Google Accelerator Chip)에 대해 최적화된 게재 위치를 생성할 수 있음을 보여 주지만이 방법은 모든 종류의 칩(ASIC)에 적용할 수 있습니다.
칩 평면 설계도 문제
컴퓨터 칩은 수십 개의 블록으로 나뉘며, 각 블록은 메모리 서브 시스템, 컴퓨팅 유닛 또는 제어 로직 시스템과 같은 개별 모듈입니다. 이러한 블록은 매크로(메모리 구성 요소) 및 표준 셀(Standard Cell, NAND, NOR 및 XOR과 같은 논리 게이트)과 같은 회로 구성 요소의 그래프인 넷리스트(netlist)로 설명할 수 있으며 모두 회로(wire)로 연결됩니다. 칩 블록의 레이아웃을 결정하는 과정인 칩 평면 설계도(chip floorplanning)는 칩 설계 프로세스의 가장 복잡하고 시간이 많이 걸리는 단계 중 하나이며 밀도와 라우팅 혼잡에 대한 제약에 집착하면서 전력, 성능 및 면적(PPA)을 최소화하기 위해 칩 캔버스에 넷리스트를 배치하는 것을 포함합니다. 이 주제에 대한 수십 년의 연구에도 불구하고, 인간 전문가들은 몇 주 동안 반복적인 디자인 기준을 충족하는 솔루션을 생산해야 합니다. 이 문제의 복잡성은 네티즌 그래프의 크기(수백만에서 수십억 노드), 그래프를 배치해야 하는 그리드의 세분화, 산업 표준 전자 설계 자동화 도구를 사용하여 많은 시간(때로는 하루 동안)이 걸릴 수 있는 실제 목표 메트릭을 계산하는 엄청난 비용으로 발생합니다.
심층 강화학습 모델
모델에 대한 입력은 칩 넷리스트(노드 유형 및 그래프 인접성 정보), 배치할 현재 노드의 ID 및 총 와이어 수, 매크로 및 표준 셀 클러스터와 같은 일부 넷리스트 메타 데이터입니다. 넷리스트 그래프와 현재 노드는 입력 상태를 인코딩하기 위해 개발 한 에지 기반 그래프 신경망(graph neural network)을 통과합니다. 이것은 부분적으로 배치된 그래프와 후보 노드의 임베딩을 생성합니다.
그런 다음 에지, 매크로 및 넷리스트 메타 데이터 임베딩이 연결되어 단일 상태 임베딩을 형성하고 피드포워드 신경망(feedforward neural network)으로 전달됩니다. 피드포워드 네트워크의 출력은 유용한 기능을 캡처하고 정책 및 가치 네트워크에 대한 입력으로 사용되는 학습된 표현입니다. 정책 네트워크는 현재 노드가 배치될 수 있는 모든 가능한 그리드 셀에 대한 확률 분포를 생성합니다. 훈련의 각 반복에서, 매크로는 RL 에이전트에 의해 순차적으로 배치되고, 그 후에 표준 셀 클러스터는 force-directed 메서드에 의해 배치되고, wirelength를 최소화하기 위해 회로를 스프링 시스템으로 모델링합니다. RL 훈련은 대략적인 wirelength(즉, half-perimeter wirelength, HPWL)과 혼잡의 가중 평균(weighted average)을 사용하여 에이전트의 칩 배치 각각에 대해 fast-but-approximate reward 신호(배치된 넷리스트가 소비하는 라우팅 리소스의 비율)에 의해 안내됩니다.
[그림 2] 각 학습 반복 동안 매크로는 한 번에 하나씩 정책에 의해 배치되고 표준 셀 클러스터는 force-directed method에 의해 배치됩니다. 보상(reward)은 대략적인 wirelength와 밀접(congestion)의 가중 조합(weighted average)으로 계산됩니다.
결과
우리가 아는 한, 이 방법은 일반화할 수 있는 최초의 칩 배치 방식으로, 이전 넷리스트를 배치하는 동안 배운 내용을 활용하여 보이지 않는 새로운 넷리스트에 대한 더 나은 배치를 생성할 수 있음을 의미합니다. 우리는 사전 훈련을 수행하는 칩 넷리스트의 수를 늘리면 (즉, 우리의 방법이 배치 최적화에 더 익숙해 짐에 따라) 우리의 정책이 새로운 넷리스트에 더 일반화됨을 보여줍니다.
예를 들어, 사전 훈련된 정책은 유기적으로 표준 셀을 배치할 중심에 볼록한 공간이 있는 칩의 가장자리 근처에 매크로를 배치하는 배열을 식별합니다. 이로 인해 과도한 라우팅 정체를 유발하지 않으면 서 매크로와 표준 셀 사이의 와이어 길이가 줄어듭니다. 반대로 처음부터 훈련된 정책은 무작위 배치에서 시작하여 고품질 솔루션으로 수렴하는 데 훨씬 오래 걸리므로 칩 캔버스 중앙에 통로(opening)를 두어야 할 필요성을 다시 발견합니다. 이것은 아래 애니메이션에서 설명합니다.
[그림 3] 훈련이 진행됨에 따라 오픈소스 RISC-V 프로세서인 Ariane의 매크로 배치. 왼쪽에는 정책이 From-Scratch 되고 있으며 오른쪽에는 이 칩에 대해 Finetune a Pre-trained Policy가 적용되어 있습니다. 각 직사각형은 개별 매크로 배치를 나타냅니다. From-Scratch 정책에 의해 발견된 캐비티(cavity)가 Finetune a Pre-trained Policy 배치가 처음부터 어떻게 존재하는지 주목하십시오.
사전 훈련은 샘플 효율과 배치 품질을 향상시킵니다. 사전 훈련된 정책(pre-trained policy)을 사용하여 생성된 배치들의 품질과 from-scratch 정책을 훈련하여 생성된 배치 위치의 품질을 비교합니다. 이전에 보이지 않은 칩 블록에 대한 배치를 생성하기 위해 zero-shot 메서드를 사용합니다. 즉, pre-trained 정책 (미세 조정 없이, no fine-tuning)을 사용하여 새 블록을 배치하여 1초 이내에 배치를 생성합니다. 새 블록의 정책을 미세 조정하여 결과를 더욱 향상시킬 수 있습니다. from-scratch 정책은 수렴하는 데 훨씬 오래 걸리며 24 시간이 지난 후에도 칩 배치는 12시간 후에 fine-tuned 정책보다 달성하기 어렵습니다.
더 큰 데이터 집합을 훈련할수록 접근 방식의 성능이 향상됩니다. 우리는 트레이닝 세트를 2개의 블록에서 5개의 블록으로, 그리고 20개의 블록으로 증가시킬 때, 정책은 제로 샷과 동일한 훈련 wall-clock 시간 동안 fine-tune 된 후에 더 나은 배치를 생성한다는 것을 관찰했습니다.
경험을 통해 배우고 시간이 지남에 따라 개선할 수 있는 우리의 접근 방식은 칩 설계자들에게 새로운 가능성을 열어줍니다. 에이전트가 더 많은 양과 다양한 칩에 노출됨에 따라 새로운 칩 블록에 대한 최적화된 배치를 생성하는 데 더 빠르고 개선됩니다. 더 빠르고 고품질의 자동 칩 배치 방법은 칩 설계를 크게 가속화하고 칩 설계 프로세스의 초기 단계와의 공동 최적화를 가능하게 합니다. 우리는 주로 가속기 칩을 평가하지만 제안된 방법은 모든 칩 배치 문제에 광범위하게 적용할 수 있습니다. 머신러닝을 위해 모든 하드웨어가 완료된 후에, 우리는 머신러닝에게 은혜를 갚아할 때라고 믿습니다.
감사의 말
이 프로젝트는 Google Research와 Google Hardware and Architecture 팀 간의 공동 작업이었습니다. 우리의 공동 저자들에게 감사의 말씀을 전합니다 : Mustafa Yazgan, Joe Jiang, Ebrahim Songhori, Shen Wang, Lee Young-Joon, Eric Johnson, Omkar Pathak, Sungmin Bae, Azade Nazi, Jiwoo Pak, Andy Tong, Kavya Srinivasa, William Hang, Emre Tuncer, Anand Babu, Quoc Le, James Laudon, Roger Carpenter, Richard Ho 및 Jeff Dean이 이 작업에 대한 지원과 기여에 대해 감사합니다.
원본 제목: 심층 강화학습을 통한 칩 설계(Chip Design with Deep Reinforcement Learning)
게시자 : Anna Goldie, 수석 소프트웨어 엔지니어 및 Azalia Mirhoseini, Google Research의 수석 연구 과학자, Brain Team
원본 링크: https://ai.googleblog.com/2020/04/chip-design-with-deep-reinforcement.html
Chip Placement with Deep Reinforcement Learning 논문: https://arxiv.org/abs/2004.10746
Innovations in Graph Representation Learning 블로그: https://ai.googleblog.com/2019/06/innovations-in-graph-representation.html
Airane RISC-V CPU 오픈소스: https://github.com/pulp-platform/ariane
VLSI Cell Palcement Techniques 논문: https://web.eecs.umich.edu/~mazum/PAPERS-MAZUM/cellplacement.pdf
이 블로그는 2020년 4월 23일(목), 구글 AI 리서치 블로그를 영한 번역한 것입니다. 또한 이 번역 글은 정보 공유 목적으로만 작성했으므로 어떠한 상업용으로 사용할 수 없으며, 원본 저작물 모두 구글에게 저작권이 있음을 알려 드립니다. (First Draft Version)