Core Concepts
병렬 AIG 리팩토링 기법을 제안하여 기존 순차적 알고리즘 대비 28배 빠른 성능을 달성하면서도 최적화 품질을 유지한다.
Abstract
이 논문은 AIG(And-Inverter Graph) 리팩토링 기법의 병렬화 방법을 제안한다. AIG 리팩토링은 논리 최적화를 위한 핵심 프로세스로, 논리적으로 동등한 그래프를 찾아 대체함으로써 회로 그래프의 면적과 깊이를 줄이는 작업이다. 하지만 이 작업은 시간이 많이 소요되는 문제가 있다.
이를 해결하기 위해 저자들은 먼저 병렬화 과정에서 발생할 수 있는 두 가지 유형의 충돌을 분석한다. 첫 번째는 데이터 경쟁(data race)으로, 스레드 간 AIG와 구조 해싱 테이블의 공유 데이터 수정으로 인한 충돌이다. 두 번째는 데이터 의존성(data dependency)으로, 노드 리팩토링 작업 간 MFFC(Maximum Fanout-Free Cone) 의존성으로 인한 충돌이다.
이를 해결하기 위해 저자들은 다음과 같은 병렬 AIG 리팩토링 기법을 제안한다:
작업 스케줄러: 동일 레벨의 노드들은 MFFC가 겹치지 않으므로 병렬 처리할 수 있다. 따라서 노드를 레벨 단위로 그룹화하여 병렬 처리한다.
평가: 데이터 경쟁을 해결하기 위해 AIG와 구조 해싱 테이블의 공유 변수를 스레드별 지역 변수로 할당한다. 데이터 의존성 충돌을 해결하기 위해 재사용 노드에 플래그를 설정한다.
교체: 데이터 경쟁 해결을 위해 노드 삭제 작업을 순차적으로 수행한다. 또한 MFFC 노드 재사용 전략을 통해 AIG 수정을 최소화한다.
실험 결과, 제안한 병렬 리팩토링 기법이 64개 CPU 코어에서 기존 순차 알고리즘 대비 평균 28배 빠른 성능을 보이면서도 최적화 품질은 유사한 수준을 유지하는 것으로 나타났다.
Stats
제안한 병렬 리팩토링 기법이 64개 CPU 코어에서 기존 순차 알고리즘 대비 평균 28배 빠른 성능을 보였다.
최적화 품질(면적, 깊이)은 기존 순차 알고리즘과 유사한 수준을 유지했다.
Quotes
"병렬 AIG 리팩토링을 통해 기존 순차 알고리즘 대비 평균 28배 빠른 성능을 달성하면서도 최적화 품질을 유지할 수 있었다."
"병렬 처리 과정에서 발생할 수 있는 데이터 경쟁과 데이터 의존성 문제를 효과적으로 해결하였다."