GPU 하나로 수백만 개 세포를 몇 초 만에 분석할 수 있다면?
원문: GPU-accelerated single-cell analysis at scale with rapids-singlecell
게재지: Nature Biotechnology (2025)
DOI: https://doi.org/10.1038/s41587-025-02618-4
한 줄 요약
rapids-singlecell은 GPU 가속을 통해 기존 CPU 기반 단일세포 분석 파이프라인을 수십~수백 배 빠르게 수행하면서도, scanpy와 동일한 생물학적 결과를 재현하는 오픈소스 프레임워크다.
왜 단일세포 분석에 GPU가 필요해졌나
단일세포 시퀀싱(single-cell sequencing) 기술은 세포 하나하나의 유전자 발현을 들여다볼 수 있게 해주면서 생물학의 해상도를 한 단계 끌어올렸다. 문제는 데이터 규모다. 최근 데이터셋은 수백만에서 수천만 개의 세포를 포함하며, 이를 처리하는 표준 CPU 파이프라인은 필터링, 정규화, 차원 축소, 클러스터링 같은 일상적인 단계에도 수 시간에서 며칠이 걸린다.
행렬 변환, 최근접 이웃 탐색, 클러스터링 등 단일세포 분석의 핵심 연산은 본질적으로 병렬화가 가능하다. GPU는 이러한 대규모 병렬 연산에 특화된 하드웨어이지만, 기존 생물정보학 도구들은 GPU를 기존 데이터 구조와 워크플로우에 자연스럽게 통합하지 못했다. rapids-singlecell은 이 간극을 메우기 위해 탄생했다.
rapids-singlecell은 어떤 도구인가
rapids-singlecell은 scverse 생태계에 통합되며, 단일세포 분석의 사실상 표준 데이터 구조인 AnnData 위에서 직접 작동하는 GPU 가속 프레임워크다. 핵심 설계 철학은 “기존 코드를 거의 바꾸지 않고 GPU 가속을 얻는 것”이다.
| 구성 요소 | 역할 |
|---|---|
| CuPy | NumPy/SciPy 호환 GPU 배열 라이브러리, 희소 행렬 지원 |
| RAPIDS (cuML, cuGraph, cuVS) | PCA, UMAP, t-SNE, Leiden 클러스터링, 벡터 검색 등 머신러닝·그래프 연산 |
| Dask | 단일 GPU 한계를 넘는 out-of-core 및 다중 GPU 병렬 처리 |
| RAPIDS Memory Manager (RMM) | GPU 메모리 풀링, 오버서브스크립션 시 호스트 메모리 자동 스필 |
scanpy의 API를 그대로 미러링하기 때문에, 사용자는 import scanpy as sc 대신 import rapids_singlecell as rsc로 바꾸고 데이터를 GPU로 전송하는 한 줄만 추가하면 된다.
코드 한 줄 바꾸면 100배 이상 빨라진다
연구진은 10x Genomics 마우스 뇌 데이터셋(약 130만 개 세포)을 대상으로 전처리부터 Leiden 클러스터링까지의 표준 워크플로우를 벤치마크했다.
| 하드웨어 | 총 소요 시간 | CPU 대비 속도 향상 |
|---|---|---|
| CPU (AMD Threadripper Pro 7975WX, 32코어) | 약 52분 | 기준선 |
| NVIDIA DGX B200 GPU | 약 26초 | >120배 |
| NVIDIA RTX PRO 6000 (Blackwell WS) | 약 25초 | 약 120배 |
| NVIDIA H200 GPU | - | 약 110배 |
개별 단계별로는 더 극적인 차이를 보인다. 전처리는 약 70배, UMAP은 약 350배, Leiden 클러스터링은 약 100배 빠르다. 이 수치는 N=3 독립 실행의 평균값이다.
1억 개 세포도 20분 안에 처리한다
단일 GPU의 메모리 한계(CuPy의 int32 희소 인덱스 기준 약 100만 세포)를 넘는 대규모 데이터셋을 위해, rapids-singlecell은 Dask를 통한 out-of-core 연산과 다중 GPU 실행을 지원한다. Dask는 데이터를 청크 단위로 분할하여 여러 GPU 또는 노드에 분배한다.
이를 활용해 1억 개 세포 규모의 Tahoe-100M 데이터셋을 NVIDIA DGX B300 GPU 8개가 장착된 노드에서 분석한 결과, 로그 정규화부터 UMAP, Leiden 클러스터링까지 전체 파이프라인이 20분 이내에 완료되었다.
배치 효과 보정도 GPU로 가속한다
rapids-singlecell은 Harmony 알고리즘의 GPU 가속 구현을 포함한다. 연구진은 Harmony의 솔버를 재설계하여, 원래 밀집 원-핫 인코딩 행렬(phi) 대신 라벨 벡터에서 직접 연산하도록 만들어 계산량과 메모리 사용을 줄였다.
| 데이터 규모 | GPU 속도 향상 | 비고 |
|---|---|---|
| 약 20만 세포 | 약 100배 | B200, H200, RTX PRO 6000 모두 유사 |
| 약 240만 세포 (PCA 임베딩) | >250배 | 모든 GPU 아키텍처에서 일관 |
| 약 1,140만 세포 (PCA 임베딩) | - | GPU: 25초 이내 완료, CPU: 2시간 제한 초과로 중단 |
보정된 주성분은 CPU 기준선 대비 피어슨 상관계수 0.95 이상을 유지한다.
scanpy와 결과가 같을까
GPU 병렬화, 부동소수점 정밀도, 비결정적 원자 연산으로 인해 CPU와 GPU 결과 사이에 미세한 수치 차이가 존재한다. 그러나 연구진은 다음과 같이 검증했다.
- 결정적 연산(정규화, HVG 선택, PCA): numpy.allclose 기준 부동소수점 허용 범위 내 일치
- 확률적 알고리즘(UMAP, t-SNE, Leiden 클러스터링): adjusted Rand index를 통해 클러스터 할당 일관성 확인, 임베딩의 국소 이웃 구조 보존 검증
즉, 생물학적 해석(클러스터 할당, 마커 유전자 순위, 세포 유형 주석)은 구현 간에 일관성을 유지한다.
기술 아키텍처의 핵심 설계
rapids-singlecell의 기술적 특징을 몇 가지로 정리하면 다음과 같다.
- 희소 행렬 직접 연산: 유전자 발현 행렬은 대부분 0으로 채워져 있다. rapids-singlecell은 CSR(Compressed Sparse Row)과 CSC(Compressed Sparse Column) 형식을 사용해 행 단위 연산(정규화, QC)과 열 단위 연산(HVG 선택)에 각각 최적화된 형식을 적용한다
- 커스텀 CUDA 커널: CuPy의 RawKernel을 통해 JIT 컴파일되는 맞춤형 GPU 커널을 작성하여 유전자 선택, 희소 그램 행렬 계산 등에서 불필요한 CPU-GPU 전송과 중간 배열 할당을 제거한다
- 메모리 오버서브스크립션: GPU 메모리가 부족하면 RMM이 자동으로 호스트 메모리로 스필하여, 소비자급 GPU에서도 수십만 개 세포 분석이 가능하다
- PCA의 희소 행렬 알고리즘: 밀집화 없이 희소 행렬에서 직접 PCA를 수행하며, 이 알고리즘은 이후 scanpy에도 역이식되어 대규모 희소 분석의 기본 솔버가 되었다
이 연구가 말해주는 것
대화형 분석의 시대가 열린다
기존에 수 시간이 걸리던 분석이 수십 초로 줄어들면, 연구자는 파라미터를 실시간으로 조정하고 결과를 즉시 확인하는 탐색적 분석이 가능해진다. 이는 단순한 속도 개선이 아니라, 분석 방식 자체의 변화다.
임상 현장에서의 의미
임상 및 중개 연구에서는 데이터 생성과 해석 가능한 결과 사이의 시간을 단축하는 것이 중요하다. GPU 가속은 이 간극을 실질적으로 줄여준다.
생태계와의 공존
scanpy, decoupleR, pertpy, squidpy 등 기존 scverse 생태계의 API를 그대로 따르기 때문에, 사용자는 기존 워크플로우를 거의 수정하지 않고도 GPU 가속의 혜택을 받을 수 있다.
아직 넘어야 할 산들
- 소규모 데이터에서는 효과 제한적: 약 5만 개 세포 미만에서는 커널 실행 오버헤드와 호스트-디바이스 전송 비용이 GPU 병렬화 이점을 상쇄하여, CPU와 속도가 비슷하거나 오히려 느릴 수 있다
- 미구현 연산의 CPU 폴백: rapids-singlecell에 아직 구현되지 않은 연산은 CPU로 폴백되며, 이때 데이터 전송 오버헤드가 발생한다
- 메모리 제약이 있는 소비자급 GPU: VRAM 8GB 미만의 GPU에서는 오버서브스크립션으로 기능은 유지되지만 성능 향상이 크게 줄어든다
- 수치적 비트 단위 재현성 미보장: 확률적 알고리즘의 부동소수점 누적 순서 차이와 비결정적 원자 연산으로 인해, 규제 또는 감사 목적의 비트 단위 재현성이 필요한 경우 하드웨어 및 소프트웨어 버전을 명시적으로 문서화해야 한다
- 순차적 연산 중심 워크플로우: 작은 순차 연산이 많은 워크플로우는 GPU 병렬화의 이점이 제한적이다
GPU가 바꾸는 생물학의 속도
단일세포 아틀라스가 수천만 개 세포 규모로 성장하고 공간 전사체학(spatial transcriptomics) 데이터셋이 해상도를 높여가는 시대에, GPU 가속은 선택이 아닌 필수가 되어가고 있다. rapids-singlecell은 기존의 익숙한 도구 위에 GPU의 힘을 얹는 방식으로, 새로운 기술을 배우는 부담 없이 분석의 규모와 속도를 동시에 끌어올린다. 데이터가 커질수록, 그리고 분석이 반복적일수록, 이 도구가 여는 가능성은 더 커질 것이다.