GPU 가속 3D 방사선 특징 추출
초록
PyRadiomics‑cuda는 기존 PyRadiomics API와 완전 호환되는 GPU 기반 확장 모듈로, 3차원 형태 특징(볼륨, 표면적, 최대 직경 등)의 계산을 CUDA 커널로 옮겨 대용량 의료 영상에서 처리 시간을 수십 배에서 수천 배까지 단축한다. 자동 GPU 탐지와 CPU fallback 기능을 제공하며, Marching Cubes와 직경 계산을 병렬화하고 원자 연산, 공유 메모리 최적화 등을 적용해 다양한 하드웨어(최신 H100, RTX 4070, 저가 T4)에서 실험적으로 검증하였다.
상세 분석
본 논문은 방사선학(Radiomics)에서 가장 계산 비용이 높은 3D 형태 특징 추출을 목표로, 기존 PyRadiomics의 순수 CPU 구현을 GPU 가속으로 대체하는 설계와 구현 과정을 상세히 제시한다. 핵심은 두 단계로 나뉜다. 첫 번째는 Marching Cubes 알고리즘을 이용해 ROI(Region‑of‑Interest) 경계면을 삼각형 메쉬로 변환하고, 동시에 부피와 표면적을 누적한다. 저자들은 각 voxel을 독립 스레드에서 처리하도록 변형하고, 전역 리스트와 누적 변수에 대한 동기화를 위해 원자 연산과 블록 기반 축소(reduction) 방식을 실험하였다. 두 번째 단계는 메쉬 정점들 간의 최장 거리(3D 직경 및 평면 직경)를 찾는 작업이다. 이는 O(m²) 복잡도를 가지며, 저자는 정점 쌍을 서브셋으로 나누어 다중 스레드가 부분 최대값을 계산하도록 하고, 마지막에 전역 최대값을 얻기 위해 계층적 축소를 적용했다.
최적화 전략은 다섯 가지로 구분된다. ① 부하 균형을 위한 스레드 할당, ② 블록 기반 원자 축소, ③ 공유 메모리를 활용한 메모리 접근 최소화, ④ 로컬 스레드 누산기 사용으로 원자 연산 빈도 감소, ⑤ 2D 배열 대신 1D 배열을 이용한 인덱싱 단순화. 각 전략은 GPU 아키텍처별 성능 차이를 고려해 선택되었으며, 최신 H100에서는 원자 연산이 빠르게 동작해 로컬 누산기가 가장 효율적이었고, 구형 T4에서는 블록 기반 축소가 최적이었다.
벤치마크는 KITS19 데이터셋의 20개 샘플(50 KB9 MB, 정점 수 2.7 k236 k)을 사용해 세 종류의 하드웨어(AI 클러스터 H100, 데스크톱 RTX 4070, 저가 T4)와 두 CPU 환경(AMD EPYC, Intel Xeon)에서 수행되었다. 결과는 직경 계산이 전체 처리 시간의 95 %~99.9 %를 차지한다는 점을 재확인하고, GPU 가속 시 전체 파이프라인(파일 입출력 포함)에서 최대 2000배(대형 236 k 정점)까지 속도 향상을 달성했다. 특히 대형 데이터에서는 파일 입출력 비용이 전체 시간의 주요 병목으로 남아, 향후 I/O 최적화가 필요함을 강조한다.
호환성 측면에서, PyRadiomics‑cuda는 설치 시 자동으로 nvcc를 탐지하고 CUDA 코드를 컴파일한다. 런타임에는 GPU 존재 여부를 확인해, 실패 시 기존 CPU 구현으로 투명하게 전환한다. 따라서 기존 PyRadiomics 기반 파이프라인을 수정 없이 그대로 사용할 수 있다.
한계점으로는 현재 3D 형태 특징에만 초점을 맞추어 텍스처(예: GLCM, GLRLM)와 1차 통계량은 GPU 가속이 적용되지 않는다. 또한 데이터 전송 오버헤드가 작은 이미지에서는 속도 향상이 미미하며, 메모리 사용량이 큰 경우 GPU 메모리 제한에 부딪힐 수 있다. 향후 연구에서는 텍스처 연산을 CUDA로 확장하고, 파이프라인 전체를 비동기 스트리밍 방식으로 재구성해 I/O와 계산을 겹치게 하는 방안을 제시한다.
댓글 및 학술 토론
Loading comments...
의견 남기기