칩 디자인이 왔다 1971년 이후로 먼 길을 갔다. 페데리코 파긴 최초의 상용 마이크로프로세서 스케치를 마쳤습니다. 인텔 4004직선자와 색연필만 사용합니다. 오늘날의 설계자는 새로운 집적 회로를 계획하고 테스트하는 데 사용할 수 있는 수많은 소프트웨어 도구를 보유하고 있습니다. 그러나 칩이 엄청나게 복잡해지면서 일부는 다음과 같이 구성되었습니다. 수천억 개의 트랜지스터—디자이너가 해결해야 할 문제도 마찬가지입니다. 그리고 이러한 도구가 항상 작업에 적합한 것은 아닙니다.
현대 칩 엔지니어링은 시스템 사양부터 사양까지 9단계의 반복 프로세스입니다. 포장. 각 단계에는 여러 하위 단계가 있으며, 각 단계는 문제의 규모와 제약 조건에 따라 몇 주에서 몇 달이 걸릴 수 있습니다. 많은 설계 문제에는 10가지 중 실행 가능한 솔루션이 소수에 불과합니다.100 10까지1000 가능성 – 건초 더미에 바늘이 박힌 시나리오가 있다면. 오늘날 사용되는 자동화 도구는 이 정도 규모의 실제 문제를 해결하지 못하는 경우가 많습니다. 즉, 인간이 개입해야 하므로 칩 제조업체가 원하는 것보다 프로세스가 더 힘들고 시간이 많이 걸립니다.
놀랍지도 않게 사용에 대한 관심이 높아지고 있습니다. 칩 설계 속도를 높이는 기계 학습. 그러나 우리 팀은 인텔 AI 연구소 발견했다, 기계 학습 알고리즘만으로는 충분하지 않은 경우가 많으며, 특히 충족되어야 하는 여러 제약 조건을 처리할 때 더욱 그렇습니다.
실제로 평면도 계획(해당 작업에 대한 자세한 내용은 나중에 설명)이라는 까다로운 설계 작업을 해결하기 위해 AI 기반 솔루션을 개발하려는 최근 시도를 통해 우리는 기존 검색과 같은 비AI 방법을 기반으로 한 훨씬 더 성공적인 도구를 개발하게 되었습니다. 이는 해당 분야가 기존 기술을 너무 성급하게 무시해서는 안 된다는 것을 의미합니다. 현재 우리는 두 가지 방법의 장점을 결합한 하이브리드 접근 방식이 비록 현재는 아직 연구가 진행되지 않은 분야이지만 앞으로 가장 유익한 경로가 될 것이라고 믿습니다. 이유는 다음과 같습니다.
AI 알고리즘의 위험성
칩 설계에서 가장 큰 병목 현상 중 하나는 아키텍처가 해결되고 로직과 회로가 완성된 후의 물리적 설계 단계에서 발생합니다. 물리적 설계에는 칩의 레이아웃과 연결성을 기하학적으로 최적화하는 작업이 포함됩니다. 첫 번째 단계는 칩을 CPU 코어, 메모리 블록 등과 같은 높은 수준의 기능 블록으로 분할하는 것입니다. 그런 다음 이러한 큰 파티션은 매크로와 표준 셀이라는 더 작은 파티션으로 세분화됩니다. 평균적인 SoC(시스템 온 칩)에는 수백에서 수천 개의 매크로와 수천에서 수십만 개의 표준 셀로 구성된 약 100개의 상위 수준 블록이 있습니다.
다음은 고성능, 저전력 소비, 비용 효율성 등 특정 설계 목표를 충족하도록 기능 블록을 배열하는 평면도입니다. 이러한 목표는 일반적으로 와이어 길이(회로 요소를 연결하는 나노와이어의 전체 길이)와 공백(회로가 차지하지 않는 칩의 전체 영역)을 최소화함으로써 달성됩니다. 이러한 평면도 문제는 조합 최적화라고 알려진 수학적 프로그래밍의 한 분야에 속합니다. 테트리스 게임을 해본 적이 있다면 매우 간단한 조합 최적화 퍼즐을 풀어본 적이 있을 것입니다.
칩 평면도는 스테로이드를 사용한 테트리스와 같습니다. 가능한 해결책의 수는 문자 그대로 천문학적으로 클 수 있습니다. 일반적인 SoC 평면도에는 약 10개가 있습니다.250 120개의 상위 레벨 블록을 배열하는 가능한 방법; 비교해 보면 대략 10개가 있습니다.24 우주의 별. 매크로와 표준 셀에 대해 가능한 배열 수는 훨씬 더 많습니다.
예를 들어 기능 블록을 가능한 가장 작은 실리콘 영역에 밀어 넣는 것과 같은 단일 목표가 주어지면 상업용 평면도 도구는 이러한 규모의 문제를 단 몇 분 만에 해결할 수 있습니다. 그러나 특정 블록이 어디로 가야 하는지, 어떻게 형성될 수 있는지, 어떤 블록을 함께 배치해야 하는지에 대한 규칙과 같은 여러 목표와 제약에 직면하면 허둥대게 됩니다. 결과적으로 인간 디자이너들은 종종 시행착오와 독창성에 의존하여 생산 일정에 몇 시간 또는 며칠을 추가합니다. 그리고 그것은 단지 하나의 하위 단계에 대한 것입니다.
지난 10년 동안 머신러닝이 거둔 성공에도 불구하고 지금까지는 칩 설계에 상대적으로 거의 영향을 미치지 않았습니다. Nvidia와 같은 회사가 시작되었습니다. 대규모 언어 모델 훈련 (LLM)—Copilot 및 ChatGPT와 같은 서비스를 지원하는 AI 형태 스크립트 작성 하드웨어 설계 프로그램 및 버그 분석. 그러나 이러한 코딩 작업은 평면도와 같은 복잡한 최적화 문제를 해결하는 것과는 거리가 멀습니다.
얼핏 보면 던지고 싶은 유혹이 들 수도 있지만 변압기 모델의 기초 LLM물리적 설계 문제에서도 마찬가지입니다. 이론적으로는 AI 챗봇이 문장에서 단어를 순차적으로 예측하는 것과 유사하게 칩에 있는 각 블록의 물리적 좌표를 순차적으로 예측하도록 변환기를 훈련하여 AI 기반 플로어플래너를 만들 수 있습니다. 그러나 블록이 겹치지 않도록 블록을 배치하도록 모델을 가르치려고 하면 금방 문제에 부딪힐 것입니다. 인간이 이해하기에는 간단하지만, 이 개념은 컴퓨터가 배우기에는 쉽지 않기 때문에 엄청난 양의 훈련 데이터와 시간이 필요합니다. 블록을 함께 배치하거나 특정 가장자리 근처에 배치해야 하는 요구 사항과 같은 추가 설계 제약 조건에도 마찬가지입니다.
그래서 우리는 다른 접근 방식을 취했습니다. 우리의 첫 번째 업무 순서는 평면도에서 블록의 위치를 전달하기 위한 효과적인 데이터 구조를 선택하는 것이었습니다. 우리는 B*-트리라고 불리는 곳에 착륙했습니다. 이 구조에서 각 블록은 이진 트리의 노드로 표시됩니다. 평면도의 왼쪽 하단에 있는 블록이 루트가 됩니다. 오른쪽 블록은 하나의 가지가 됩니다. 위에 있는 블록은 다른 가지가 됩니다. 이 패턴은 새로운 노드마다 계속됩니다. 따라서 나무가 자라면서 오른쪽과 위쪽으로 팬을 그리며 평면도를 캡슐화합니다.
B*-트리 구조의 가장 큰 장점은 블록 위치가 절대적이 아닌 상대적이기 때문에(예: “이 지점”이 아닌 “다른 블록 위”) 중복 없는 평면도를 보장한다는 것입니다. 결과적으로 AI 평면도는 자신이 배치하는 각 블록의 정확한 좌표를 예측할 필요가 없습니다. 대신, 블록의 크기와 관계형 이웃의 좌표 및 크기를 기반으로 이를 간단하게 계산할 수 있습니다. 그리고 짜잔—겹치는 부분이 없습니다.
데이터 구조를 마련한 후 수백만 개의 최적 평면도 데이터 세트에서 여러 기계 학습 모델, 특히 그래프 신경망, 확산 모델 및 변환기 기반 모델을 교육했습니다. 모델은 면적과 와이어 길이에 최적화된 평면도를 생성하기 위해 이전에 배치된 블록 위나 오른쪽에 배치할 최상의 블록을 예측하는 방법을 학습했습니다. 그러나 우리는 이 단계별 방법이 효과가 없다는 것을 금방 깨달았습니다. 우리는 평면도 문제를 약 100개 블록으로 확장하고 중복되지 않는 규칙을 넘어서는 엄격한 제약 조건을 추가했습니다. 여기에는 동일한 전압 소스를 공유하는 가장자리 또는 그룹화 블록과 같은 미리 결정된 위치에 일부 블록을 배치해야 하는 것이 포함되었습니다. 그러나 우리의 AI 모델은 차선의 솔루션을 추구하는 데 시간을 낭비했습니다.
우리는 모델이 역추적을 하지 못하는 것이 문제라고 추측했습니다. 블록을 순차적으로 배치하기 때문에 이전의 잘못된 배치를 소급하여 수정할 수 없습니다. 강화 학습 에이전트와 같은 기술을 사용하여 이 장애물을 해결할 수 있지만 좋은 모델을 훈련하는 데 필요한 에이전트 탐색의 양은 비현실적입니다. 막다른 골목에 도달한 우리는 블록별 의사결정을 버리고 새로운 방법을 시도하기로 결정했습니다.
칩 설계 전통으로 돌아가기
대규모 조합 최적화 문제를 해결하는 일반적인 방법은 다음과 같은 검색 기술을 사용하는 것입니다. 모의 어닐링 (SA). 1983년에 처음 기술됨SA는 야금학에서 영감을 얻었는데, 여기서 어닐링은 금속을 고온으로 가열한 다음 천천히 냉각하는 과정을 의미합니다. 제어된 에너지 감소를 통해 원자가 질서정연한 배열로 자리잡게 되어 물질이 빠르게 냉각되었을 때보다 더 강하고 유연해집니다. 유사한 방식으로 SA는 모든 가능성을 지루하게 확인할 필요 없이 최적화 문제에 대한 최상의 솔루션을 점진적으로 찾아냅니다.
작동 방식은 다음과 같습니다. 알고리즘은 무작위 솔루션으로 시작합니다. 우리의 목적에 따라 B*-트리로 표현되는 무작위 평면도입니다. 그런 다음 알고리즘이 다시 무작위로 세 가지 작업 중 하나를 수행하도록 허용합니다. 두 개의 블록을 교환하거나, 블록을 한 위치에서 다른 위치로 이동하거나, 블록의 너비 대 높이 비율을 조정할 수 있습니다(해당 영역을 변경하지 않고). 우리는 전체 면적과 전선 길이의 가중 평균을 취하여 결과 평면도의 품질을 판단합니다. 이 숫자는 해당 작업의 “비용”을 나타냅니다.
새로운 평면도가 더 좋다면, 즉 비용이 절감된다면 우리는 이를 받아들입니다. 상황이 더 나쁠 경우에도 일부 “나쁜” 결정이 좋은 방향으로 이어질 수 있다는 사실을 알고 처음에는 이를 받아들입니다. 그러나 시간이 지남에 따라 알고리즘이 블록을 무작위로 계속 조정함에 따라 비용이 증가하는 작업을 점점 더 자주 허용하게 됩니다. 금속 가공과 마찬가지로 우리는 이러한 전환을 점진적으로 진행하고 싶습니다. 금속을 너무 빨리 냉각하면 원자가 무질서한 배열에 갇힐 수 있는 것처럼, 알고리즘 탐색을 너무 빨리 제한하면 국소 최소치라고 불리는 차선책 솔루션에 갇힐 수 있습니다. 이러한 함정을 조기에 피할 수 있도록 알고리즘에 충분한 여유를 줌으로써 우리는 실제로 원하는 솔루션인 전역 최소값(또는 이에 대한 좋은 근사값)을 향해 알고리즘을 동축화할 수 있습니다.
우리는 기계 학습 모델보다 SA를 사용하여 평면도 문제를 해결하는 데 훨씬 더 많은 성공을 거두었습니다. SA 알고리즘에는 배치 순서에 대한 개념이 없기 때문에 언제든지 모든 블록을 변경할 수 있으므로 본질적으로 알고리즘이 이전 실수를 수정할 수 있습니다. 제약 없이 수백 개의 블록이 포함된 매우 복잡한 평면도를 몇 분 안에 해결할 수 있다는 사실을 발견했습니다. 이에 비해 상용 도구를 사용하여 작업하는 칩 설계자는 동일한 퍼즐을 해결하는 데 몇 시간이 필요합니다.
물론 실제 설계 문제에는 제약이 따릅니다. 그래서 우리는 일부 블록이 배치되는 위치와 그룹화 방법에 대한 제한을 포함하여 기계 학습 모델에 제공한 것과 동일한 일부 블록을 SA 알고리즘에 제공했습니다. 우리는 먼저 평면도가 이를 위반하는 횟수를 비용 함수에 추가하여 이러한 엄격한 제약을 해결하려고 시도했습니다. 이제 알고리즘이 제약 조건 위반을 증가시키는 무작위 블록 변경을 수행하면 확률이 증가하여 이러한 작업을 거부하여 모델에 이를 방지하도록 지시합니다.
하지만 불행하게도 그 전술은 역효과를 냈습니다. 비용 함수에 제약 조건을 포함한다는 것은 알고리즘이 제약 조건을 충족하는 것과 면적 및 와이어 길이를 최적화하는 것 사이의 균형을 찾으려고 노력한다는 것을 의미합니다. 그러나 정의에 따르면 엄격한 제약 조건은 타협될 수 없습니다. 그러나 이러한 강성을 설명하기 위해 제약 조건 변수의 가중치를 높였을 때 알고리즘의 최적화 작업이 제대로 수행되지 않았습니다. 전역 최소값(최적 평면도)을 초래하는 위반을 수정하려는 모델의 노력 대신 모델이 벗어날 수 없는 로컬 최소값(차선 평면도)으로 반복적으로 이어졌습니다.
머신러닝을 통해 앞으로 나아가다
드로잉 보드로 돌아가서 우리는 새로운 T를 구상했습니다. 제약 인식 SA(CA-SA)라고 부르는 SA에 대해 알아보겠습니다. 이 변형은 두 가지 알고리즘 모듈을 사용합니다. 첫 번째는 SA 모듈로, SA가 가장 잘하는 일, 즉 면적 및 와이어 길이 최적화에 중점을 둡니다. 두 번째 모듈은 무작위 제약 조건 위반을 선택하고 수정합니다. 이 수리 모듈은 매우 드물게 시작되지만(약 10,000개의 작업마다 한 번씩) 시작되면 영역 및 와이어 길이에 대한 영향에 관계없이 결정이 항상 받아들여집니다. 따라서 우리는 CA-SA 알고리즘을 햄스트링 없이 엄격한 제약 조건을 충족하는 솔루션으로 안내할 수 있습니다.
이 접근 방식을 사용하여 우리는 CA-SA의 여러 반복을 동시에 실행하는 오픈 소스 평면도 도구를 개발했습니다. 우리는 그것을 부른다 제약 조건 인식을 통한 병렬 시뮬레이션 어닐링 또는 Parsac 줄여서. 인간 디자이너는 Parsac의 최고의 솔루션 중에서 선택할 수 있습니다. 최대 300개의 블록을 포함하는 인기 있는 평면도 벤치마크에서 Parsac을 테스트했을 때 다른 SA 기반 알고리즘 및 기계 학습 모델을 포함하여 발표된 다른 모든 공식을 쉽게 능가했습니다.
그러나 이러한 확립된 벤치마크는 20년이 넘은 것이며 최신 SoC 설계를 반영하지 않습니다. 주요 단점은 엄격한 제약이 없다는 것입니다. Parsac이 보다 현실적인 설계에서 어떻게 수행되는지 확인하기 위해 블록 배치 및 그룹화에 대한 규정을 포함하여 벤치마크 문제에 자체 제약 조건을 추가했습니다. 기쁘게도 Parsac은 상업적 규모(약 100블록)의 높은 수준의 평면도 문제를 15분 이내에 성공적으로 해결하여 동종의 가장 빠른 평면도가 되었습니다.
우리는 현재 이상한 모양의 블록이 있는 평면도를 처리하기 위해 기하학적 검색을 기반으로 하는 또 다른 비AI 기술을 개발하고 있으며 이를 통해 실제 시나리오에 대해 더 깊이 탐구하고 있습니다. 불규칙한 레이아웃은 B*-트리로 표현하기에는 너무 복잡하므로 순차적인 블록 배치로 돌아갔습니다. 초기 결과는 이 새로운 접근 방식이 Parsac보다 훨씬 빠를 수 있음을 시사하지만 역추적 문제가 없기 때문에 솔루션이 최적이 아닐 수 있습니다.
한편, 우리는 Parsac을 다음 용도로 적용하기 위해 노력하고 있습니다. 매크로 게재위치블록 평면도보다 한 단계 더 세부적인 수준으로, 제약 조건을 준수하면서 수백에서 수천 개의 요소로 확장하는 것을 의미합니다. CA-SA만으로는 이러한 규모와 복잡성의 문제를 효율적으로 해결하기에는 너무 느릴 수 있으며, 머신러닝이 도움이 될 수 있습니다.
예를 들어 SA가 생성한 평면도가 주어지면 AI 모델을 훈련하여 어떤 작업이 레이아웃의 품질을 향상시킬지 예측할 수 있습니다. 그런 다음 이 모델을 사용하여 CA-SA 알고리즘의 결정을 내릴 수 있습니다. 제약 조건을 수용하면서 무작위 또는 “멍청한” 동작만 취하는 대신 알고리즘은 어느 정도 확률로 모델의 “스마트” 동작을 받아들입니다. 우리는 AI 모델과 협력함으로써 Parsac이 최적의 솔루션을 찾는 데 필요한 작업 수를 대폭 줄이고 실행 시간을 단축할 수 있다고 판단했습니다. 그러나 일부 무작위 작업을 허용하는 것은 알고리즘이 문제를 완전히 탐색할 수 있도록 하기 때문에 여전히 중요합니다. 그렇지 않으면 실패한 AI 기반 평면도와 같이 최적이 아닌 함정에 빠지기 쉽습니다.
이 접근 방식이나 이와 유사한 접근 방식은 평면 계획 이외의 다른 복잡한 조합 최적화 문제를 해결하는 데 유용할 수 있습니다. 칩 설계에서 이러한 문제에는 코어 내 상호 연결 라우팅 최적화와 부울 회로 최소화가 포함됩니다. 여기서 문제는 기능을 실행하기 위해 가장 적은 게이트와 입력으로 회로를 구성하는 것입니다.
새로운 벤치마크의 필요성
Parsac에 대한 우리의 경험은 또한 우리가 다음을 만드는 데 영감을 주었습니다. 샘플 평면도의 공개 데이터세트이 분야의 새로운 벤치마크가 되기를 바랍니다. 연구자들이 새로운 칩 설계 도구를 검증하려고 함에 따라 이러한 최신 벤치마크의 필요성이 점점 더 시급해지고 있습니다. 예를 들어, 최근 연구에서는 오래된 벤치마크나 독점 레이아웃을 기반으로 한 새로운 기계 학습 알고리즘의 성능에 대한 주장이 제기되어 주장의 적법성에 대한 의문이 제기되었습니다.
우리는 FloorSet-Lite 및 FloorSet-Prime이라는 두 가지 데이터 세트를 출시했습니다. 현재 다음에서 사용할 수 있습니다. GitHub. 각 데이터 세트에는 기계 학습 모델 훈련을 위한 100만 개의 레이아웃과 영역 및 와이어 길이에 최적화된 100개의 테스트 레이아웃이 포함되어 있습니다. 우리는 현대 SoC 평면도의 전체 폭과 복잡성을 포착하도록 레이아웃을 설계했습니다. 블록의 범위는 20~120개이며 실제 설계 제약 조건이 포함됩니다.
두 데이터 세트는 복잡성 수준이 다릅니다. FloorSet-Lite는 블록이 단순한 모양으로 구성되는 경우가 많을 때 초기 설계 단계를 반영하여 직사각형 블록을 사용합니다. 반면에 FloorSet-Prime은 불규칙한 블록을 사용하는데, 이는 나중에 설계 과정에서 더 일반적입니다. 그 시점에서 블록 내 매크로, 표준 셀 및 기타 구성 요소의 배치가 미세 조정되어 직사각형이 아닌 블록 모양이 되었습니다.
이러한 데이터 세트는 인공적이지만 상용 칩의 기능을 통합하는 데 주의를 기울였습니다. 이를 위해 우리는 블록 치수 및 제약 유형과 같은 평면도 속성의 상세한 통계 분포를 만들었습니다. 그런 다음 이러한 분포에서 샘플링하여 실제 칩 레이아웃을 모방하는 합성 평면도를 만들었습니다.
이러한 강력하고 개방적인 저장소는 칩 설계에서 기계 학습의 사용을 크게 발전시킬 수 있습니다. 그러나 평면도 계획과 같은 까다로운 최적화 문제에 대한 완전한 AI 기반 솔루션을 볼 가능성은 거의 없습니다. 딥 러닝 모델은 훈련 데이터에서 통계적 규칙성을 포착하고 이러한 패턴을 원하는 출력과 연관시키는 데 매우 뛰어나기 때문에 객체 식별 및 언어 생성과 같은 작업을 지배합니다. 그러나 이 방법은 해결하기 위해 패턴 인식 이상의 기술이 필요한 어려운 조합 최적화 문제에는 적합하지 않습니다.
대신, 우리는 하이브리드 알고리즘이 최종 승자가 될 것으로 기대합니다. 탐색할 가장 유망한 유형의 솔루션을 식별하는 방법을 학습함으로써 AI 모델은 Parsac과 같은 검색 에이전트를 지능적으로 안내하여 더욱 효율적으로 만들 수 있습니다. 칩 설계자는 문제를 더 빠르게 해결하여 더 복잡하고 전력 효율적인 칩을 만들 수 있습니다. 여러 설계 단계를 단일 최적화 문제로 결합하거나 여러 설계를 동시에 추구할 수도 있습니다. AI는 완전히 자체적으로 칩을 만들거나 단일 설계 단계를 해결하지 못할 수도 있습니다. 그러나 다른 혁신적인 접근 방식과 결합하면 현장의 판도를 바꿀 수 있습니다.