GPU 가속 LTL 모델 검증 도구 DiVinE CUDA
초록
본 논문은 NVIDIA CUDA 아키텍처에 최적화된 MAP 알고리즘을 이용해 LTL 모델 검증의 핵심인 수용 사이클 탐지를 가속화한 DiVinE‑CUDA 도구를 소개한다. CSR 기반 희소 행렬을 GPU에서 행렬‑벡터 곱으로 처리함으로써 기존 CPU 기반 구현보다 평균 5배 이상의 속도 향상을 보였으며, 현재 메모리 제한과 카운터예제 생성 부재 등의 한계를 논의한다.
상세 분석
DiVinE‑CUDA는 기존 DiVinE 프레임워크 위에 CUDA 전용 모듈을 추가함으로써 LTL 모델 검증 과정에서 가장 비용이 많이 드는 수용 사이클 탐지 단계에 병렬성을 부여한다. 핵심 알고리즘인 MAP은 각 수용 정점에 대해 최대 순서를 정의하고, 해당 정점이 자신의 최대 선행자를 가질 경우 사이클이 존재한다는 사실을 이용한다. 이 과정은 “최대 수용 선행자” 값을 그래프 전체에 전파하는 반복적인 행렬‑벡터 곱 연산으로 표현될 수 있다. 논문에서는 그래프를 전치(transpose)한 뒤 CSR(Compressed Sparse Row) 형식으로 저장하고, GPU 메모리 상에 행렬을 적재한다. CUDA 커널은 각 스레드가 행의 비제로 원소를 읽어 들여 현재 벡터값과 비교·갱신하는 방식으로 최대값 전파를 수행한다. 이때 여러 값이 하나의 정점에 도착하면 최대값만을 유지하도록 설계되어, 수렴 시점에 도달하면 사이클 존재 여부를 즉시 판단한다.
성능 평가에서는 GTX 280 GPU(1 GB)와 2 × AMD Phenom II X4 940 CPU를 사용해 6가지 표준 모델(리더 선출, 엘리베이터, Peterson, Anderson, 다이닝 철학자 등)을 실험하였다. 전체 실행 시간은 CSR 구축 시간(≈30 s)과 CUDA 연산 시간(≈70 s)으로 구분되었으며, 비가속 MAP(≈415 s) 및 OWCTY 알고리즘(≈2173 s) 대비 각각 5.2배, 6.5배의 속도 향상을 기록했다. 특히 수용 사이클이 존재하는 경우와 없는 경우 모두에서 비슷한 가속 효과가 나타났지만, 데이터 준비 단계가 전체 실행 시간의 절반 이상을 차지한다는 점이 드러났다.
제한점으로는 (1) GPU 메모리 용량을 초과하는 대규모 그래프는 현재 처리할 수 없으며, (2) 현재 구현은 단일 GPU와 단일 스레드 CSR 구축만 지원해 멀티코어 활용도가 낮다, (3) 발견된 사이클에 대한 구체적인 카운터예제가 제공되지 않는다. 향후 작업에서는 메모리 스와핑 기법을 도입해 다중 GPU 환경을 지원하고, CSR 구축을 병렬화하여 데이터 준비 비용을 크게 감소시킬 계획이다. 또한, 카운터예제 생성 모듈을 추가해 검증 결과의 해석성을 높이고, MAP과 OWCTY를 동시에 실행하는 하이브리드 스케줄링 전략을 연구할 예정이다. 이러한 개선을 통해 GPU 가속 모델 검증 도구의 적용 범위를 현행 모델 검증 실무에 보다 적합하게 확장할 수 있을 것으로 기대한다.
댓글 및 학술 토론
Loading comments...
의견 남기기