대규모 언어 모델(LLM)에 의해 포팅된 해양 모델: FESOM2를 통한 경험과 교훈 (Fortran에서 C를 거쳐 C++/Kokkos로)
요약
LLM을 활용하여 대규모 Fortran 해양 모델(FESOM2)을 C 및 C++/Kokkos로 포팅한 연구 사례를 소개합니다. 2단계 번역 방식과 엄격한 검증 절차를 통해 물리적 특성을 보존하면서 GPU 가속 성능을 확보할 수 있음을 입증했습니다.
핵심 포인트
- LLM 기반 2단계 번역(C 전환 후 Kokkos 전환) 방식 제안
- 수치 계산 재현과 병렬성 도입을 분리하여 물리적 특성 보존
- A100 GPU 사용 시 CPU 대비 최대 3.7배 성능 향상 달성
- 엄격한 직역 방식과 단계별 수락 기준 검증의 중요성 강조
대규모 언어 모델(LLMs)은 소스 코드를 번역하고 수정할 수 있으며, 다양한 복잡도를 가진 코드에 대해 그 능력이 입증되었습니다. 하지만 물리적 특성을 저하시키지 않으면서 완전한 프로덕션급 지구물리학 모델을 다른 언어로 포팅할 수 있는지 여부는 아직 확립되지 않았습니다. 본 연구에서는 LLM 지원 코드 번역이 완전한 프로덕션 해양 모델의 물리적 특성을 보존하면서, 이를 현대적인 성능 이식성(performance-portable) 형태의 코드로 전환할 수 있음을 입증합니다. 우리는 도메인 전문가의 지시를 받는 에이전트 기반 LLM 코딩 어시스턴트를 사용하여, FESOM2 비정형 격자 해양-해빙 모델(약 74,000 라인의 핵심 Fortran 코드)을 먼저 C로, 그 다음 CPU 및 GPU 전반의 성능 이식성을 위해 C++/Kokkos로 포팅한 경험을 보고합니다. 우리는 필수적이라고 증명된 관행, 효과적이었던 점과 그렇지 않았던 점, 그리고 우리가 직면했던 실패 모드(failure modes)를 설명합니다. 세 가지 관행이 가장 중요했습니다: 수치 계산 재현(Fortran에서 깨끗한 C 참조 코드로의 전환)과 병렬성 도입(C에서 Kokkos로의 전환)을 분리하는 2단계 번역 방식, 어시스턴트가 소스 코드를 "개선"하는 것을 허용하지 않는 엄격한 직역 방식, 그리고 각 단계에 적합한 수락 기준(acceptance criterion)에 따른 검증입니다. C 포팅 버전은 5년에 걸친 장기 시뮬레이션 통계 수준에서 기존 Fortran 코드를 재현합니다. Kokkos 포팅 버전은 CPU에서는 C 참조 코드와 비트 단위로 일치(bit-for-bit identical)하며, GPU에서는 다년간의 실행 시 통계적으로 유사합니다. 최대 740만 개의 표면 정점을 가진 와류(eddy)가 풍부한 격자에서 단일 A100 GPU 노드는 CPU 노드보다 1.63.7배 빠르게 작동하며, 프로덕션 통합에 필요한 일일 12 시뮬레이션 연도(simulated-years-per-day) 속도에 도달합니다. 이 결과는 단순한 단일 GPU 포팅 그 이상입니다. 명확한 검증 절차를 따름으로써, LLM은 완전한 Fortran 해양 모델을 물리적 특성을 보존하면서 단 몇 주 만에 다른 언어와 가속기(accelerators) 환경으로 옮길 수 있었습니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 arXiv Codex (cs.SE)의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기