[VLSI CAD] 최적해가 어려운 이유: NP-hard, heuristic, AI EDA

TL;DR 1) Physical Design: 왜 NP-hard인가 Physical Design의 첫 단계인 Logic Synthesis에서 가장 고전적인 “hard”는 two-level Boolean minimization 이다. 예를 들면 Truth table을 만족하는 ...

[VLSI CAD] 최적해가 어려운 이유: NP-hard, heuristic, AI EDA
Photo by ThisisEngineering / Unsplash

TL;DR

  • 반도체 설계의 핵심 최적화 문제들은 대부분 NP-hard / NP-Complete / PSPACE-complete라서, “최적해”를 보장하는 알고리즘은 스케일이 커지면 사실상 못 돈다. (예를들어 2가지 경우의 수가 40개만 되어도, 1조개의 경우의 수이다.)
  • 그래서 EDA 툴은 처음부터 끝까지 heuristic + 근사 + 반복 개선로 설계된다. 이건 “툴이 구려서”가 아니라 문제 성질 때문이다.
  • AI/ML은 NP-hard를 “최적해”를 효율적으로 찾진 못한다. 대신 현실적으로는 모델로 방향을 잡아주고, 자동화하고, 문제를 좁혀서 이득을 낸다.

1) Physical Design: 왜 NP-hard인가

Physical Design의 첫 단계인 Logic Synthesis에서 가장 고전적인 “hard”는 two-level Boolean minimization이다. 예를 들면 Truth table을 만족하는 최소 SOP(DNF) 를 찾는 문제.

https://en.wikipedia.org/wiki/Disjunctive_normal_form
Vitaly Feldman, Hardness of approximate two-level logic minimization and PAC learning with membership queries, Journal of Computer and System Sciences, Volume 75, Issue 1, 2009, Pages 13-26, ISSN 0022-0000, https://doi.org/10.1016/j.jcss.2008.07.007.
  • two-level Boolean minimizatio 문제는 NP-complete로 알려져 있다.

Quine-McCluskey(QM) Case:

QM은 디지털 공학에서 배우는 Boolean function 간략화 방법이다.

  • 목표: Boolean function을 최소한의 prime implicant로 덮는 것인데,
  • 절차:
    1. 모든 prime implicant 생성
    2. 모든 minterm 나열
    3. Covering table 만듦 (행=minterm, 열=prime)
    4. 최소 열 선택 → minimum covering problem

👉 문제는 4번이다.

  • 실제 회로에서는 “가능한 후보 term 조합”이 엄청나게 큰데, QM은 지수 복잡도를 갖는다.
  • QM의 covering table에서 prime implicant 조합을 찾는 과정은 set cover / exact cover 구조로 떨어지고, 이게 대표적인 NP-complete다.

중요 포인트는 이거다.

VLSI CAD (EDA Tool)가 느리고 어려운 건 구현이 못해서가 아니라, 문제 자체가 가능한 경우의 수가 엄청나게 많다는 것이다.

그래서 “SATisfaction/Integer Linear Programming로 풀면 되지 않나?”라는 말이 나오는데, 그건 이렇게 정리하면 된다.

  • SAT는 NP-complete, ILP도 NP-hard 범주다.
  • 즉, 형식을 바꿔도 여전히 NP-complete, NP-hard이다.

2) EDA 단계들에 그렇게 NP-Hard, NP-Complete가 많은가?

EDA flow는 단계가 바뀌어도 본질이 비슷하다.

“Component를 배치/선택/연결해서 Cost optimization”
이 구조가 대부분 NP-hard로 귀결된다.

아래는 “최적화 목표 → 왜 hard인지”만 남긴 압축판이다.

2.1 Multi-level logic (AIG, DAG rewriting)

  • 목표: gate 수, depth, power proxy 등을 줄이기
  • Why hard?: 회로 구조 자체를 바꾸는 “global restructuring”은 조합 탐색이 된다. multi-output/minimization 류도 NP-hard로 알려져 있다.
Rahul Ilango, Bruno Loff, and Igor C. Oliveira. 2020. NP-hardness of circuit minimization for multi-output functions. In Proceedings of the 35th Computational Complexity Conference (CCC '20). Schloss Dagstuhl--Leibniz-Zentrum fuer Informatik, Dagstuhl, DEU, Article 22, 1–36. https://doi.org/10.4230/LIPIcs.CCC.2020.22
  • Alternative solution: Local transform (algebraic rewriting, AIG rewriting)

2.2 Technology Mapping

  • 목표: DAG를 standard cell 또는 LUT로 매핑하면서 area/delay 최소화
  • 왜 hard: 일반 DAG에서 optimal mapping은 NP-hard로 알려져 있다.
  • 예외: tree 구조면 DP로 풀리는 경우가 있지만, 실제는 DAG라서 깨진다.

https://hjemmesider.diku.dk/~jegeblad/thesis.pdf

2.3 Placement

  • 목표: cell을 좌표에 배치해 wirelength/congestion 최소화
  • 단순화해도 partitioning/bin packing류로 환원되며 NP-hard로 알려져 있다.
  • 그래서 현실: analytic placement + partitioning + heuristic refinement.
이외에도, Routing, CTS, ... 많은 것들이 NP Problem이다.

3) decision vs optimization vs multi-objective

EDA가 어려운 이유는, 회로설계자들이 원하는 것은 decision이 아니라 optimization이고, 게다가 multi-objective이기 때문이다.

  • Decision problem: “가능해/불가능해?” (예: timing 1ns 만족 가능한가?)
  • Optimization problem: “최소/최대가 뭐야?” (예: wirelength 최소 배치)
  • Multi-objective: Performance Power Area 같이, 여러가지 목표가 있다.

현실에서 하는 건 이런 형태다.

  • “timing은 무조건 맞춰라” (hard constraint)
  • “area/power는 penalty로 줄여라” (soft constraint)
  • 그리고 여러 번 돌리면서 trade-off를 조정한다.

즉, EDA는 처음부터 “정답 1개”를 찾는 게임이 아니라
제약과 타협을 설계하는 게임에 가깝다.


4) 그래서 heuristic이 ‘선택’이 아니라 ‘필수’다

EDA에서 heuristic이 필수인 이유는 네 가지로 정리하면 끝난다.

  1. Global optimal이 안 나온다 → local improvement를 쌓는다.
    1. Global Optimal는 모든 경우의 수를 나열하고, 이것보다 더 좋은 경우의 수가 없음이 증명된 최적해를 의미한다.
  2. 추상화 레벨이 다르다 → Logic synthesis에서 좋던 게 Placement에서 망할 수 있다.
  3. cost function이 지저분하다 → 비선형/비볼록/계단형이라 “정석 최적화”가 잘 안 먹힌다.
  4. incremental loop가 기본 → 한 번에 끝내는 게 아니라 “수정→분석→수정”이 본체다.

요약:

EDA 툴은 원래부터 “heuristic을 잘 엮는 시스템”이다.

5) AI/ML driven EDA의 어디서 현실적으로 먹히나?

AI가 NP-hard를 “Solving”한다는 말은 위험하다. 그런데 IT 커뮤니케이터들은 조회수를 목적으로 과도한 홍보를 하곤한다.

아래처럼 분류하면, 좀 더 맞는 말이다. 이것도 약간 부족한 느낌이지만.

A) AI가 잘하는 영역: “풀기”가 아니라 “예측/점수화”

  • surrogate model: expensive simulation/analysis를 대신하는 predictor
  • placement/routing에서 congestion, timing hotspot을 빨리 예측해서 탐색 방향을 잡는다.
AI는 solver가 아니라 scoring function으로 들어갈 때 안정적이다.

B) AI가 실제로 돈 되는 영역: “EDA Tool을 여러 번 돌리는 일을 AI가 자동으로 돌려, 설계자의 effort를 최소화함.”

많은 EDA 회사들의 AI-EDA 같은 접근 중 하나이다.

  • EDA 엔진 자체를 바꾸기보다, “옵션/flow/parameter”를 AI가 탐색해서 사람 튜닝 노동을 줄인다.
  • 이건 현실적으로 ROI가 크다.
  • 여기서 본질은 “AI가 placement를 새로 발명”이 아니라search automation이다.

C) AI가 현재 약한 영역: “정확성 0% error가 필요한 곳”

  • Signoff나 formal verification은 최종적으로 도장을 찍어줄 책임 수준의 proof가 필요하다. ML은 보조는 가능해도 대체는 어렵다.
  • end-to-end로 SAT를 풀거나, end-to-end로 전체 chip을 설계하는 건 일반화/검증에서 막힌다.

6) AI driven EDA 유명 사례 한 줄 평가

아래 기술은 유망하다. 그러나 언론에서 과대 평가하는 경향도 있다.

  • Google RL macro placement (Nature): 임팩트는 컸다. 대신 재현/비교가 약하다.
  • DSO.ai / Cerebrus: AI를 “solver”로 포장하기보다, flow tuning 자동화로 가치를 만든 케이스다.
  • agentic EDA / LLM: 아직은 “가능성”이 크고, 검증/책임/데이터 문제는 그대로다.

7) 정리

  • “AI면 NP-hard 해결?”
    • 아님. AI도 최적해를 찾는 방법이 아니다.
  • “SAT+AI면 optimal synthesis?”
    • 아님. 탐색공간이 그대로 남는다.
  • “cloud compute면 해결? 컴퓨터 리소스 더 늘리면 해결?”
    • 아님. 복잡도가 지수라서, 지수가 매우 크면, 지구의 컴퓨터 다 가져와도 못 하는데, 현대 반도체 설계들은 지수가 매우 크다.
  • “AI driven EDA가 설계자를 대체?”
    • 아직은 아님. 요구 조건 설계+최종 검증+책임질 사람이 필요.

글 참여 도구

공유하기 토론 참여
이 글이 어떤 도움을 줬나요? 공개 숫자 없이 품질 개선 신호로만 사용합니다.

비공개 제보

오류나 추가 설명이 필요한가요?

공개 토론 대신 편집자에게 직접 보낼 수정·질문·다음 글 요청을 남겨주세요.

VLSI Korea

비공개 제보 보내기

작성한 내용은 [email protected]로 전달됩니다.

어떻게 받을까요?

익명 모드는 이름과 이메일을 보내지 않습니다. 다만 전송 서비스가 IP 등 기술 정보를 처리할 수 있어 절대적인 익명성을 보장하지는 않습니다.

ENGINEER DISCUSSION

현장에서는 어떻게 보고 계신가요?

동의, 반론, 보완 자료와 현업 경험을 남겨주세요. 답글 알림이 다시 토론으로 연결됩니다.

VLSI KOREA BRIEFING

매일, 중요한 신호만.

반도체 설계와 산업의 변화를 현직 엔지니어 관점에서 정리합니다. 무료이며 페이월이 없습니다.

FOR BUSINESS

이런 기술 콘텐츠가 필요하신가요?

기업용 기술 콘텐츠, 스폰서드 딥다이브, 사내 브리핑을 명확한 범위와 가격으로 진행합니다.

협업 방식·가격 보기 →
VLSI Korea Free forever · No paywall · Weekly semiconductor insights from practicing engineers
MY VLSI

내 읽기 보관함

저장한 글과 읽던 글을 한곳에서 이어보세요.