GPU에 추론과 학습을 함께 올릴 때 먼저 막히는 자원은 연산보다 메모리입니다. 온라인 모델은 요청 사이에 연산을 거의 하지 않아도 가중치와 작업 메모리를 유지합니다. 남는 연산 구간에 학습을 넣을 수 있지만, 옵티마이저 상태와 활성값, 임시 버퍼가 HBM을 채우면 다음 추론 요청이 쓸 공간이 없습니다. 프로세스를 바꾸거나 페이지를 호스트로 옮겨 메모리를 되찾는 데 수백 ms에서 수 초가 걸리면 첫 요청의 지연시간 목표를 놓칩니다.

USENIX ATC 2025의 SIRIUS는 더 좁고 실용적인 방법을 제시합니다[1]. 추론은 GPU 전체에 대한 우선권을 가집니다. 학습은 현재 추론이 쓰지 않는 메모리와 연산 자원을 사용하되, 그래디언트 계산 중 수 ms 안에 할당량을 줄일 수 있는 지점을 런타임에 드러냅니다. 이후 배치는 줄어든 용량에 맞게 조정합니다. 프로세스를 교체하지 않고 메모리만 넘기는 방식입니다.

조용한 시간까지 비워 두는 고정 파티션

MIG와 고정 공간 분할은 자원을 잘 격리합니다[2]. 그러나 추론에 HBM의 75%를 예약하면 활성 모델이 적을 때도 그 공간을 학습이 쓸 수 없습니다. 50%만 예약하면 학습은 빨라지지만 새 모델을 호스트에서 가져오거나 LLM의 KV 캐시가 부족해질 수 있습니다. 적절한 비율은 요청률, 모델 인기와 시퀀스 길이에 따라 계속 바뀝니다.

통합 메모리의 초과 사용은 동적으로 보이지만 압박이 생길 때 PCIe로 페이지를 이동합니다. 논문은 이 경로에서 추론 꼬리 지연시간과 SLO 충족률이 크게 나빠지는 사례를 측정했습니다. 작업 전체를 바꾸는 방식도 학습 배치가 끝날 때까지 수백 ms를 기다리거나 이미 계산한 작업을 버려야 합니다. 두 방식 모두 온라인 서비스가 감당하기 어려운 시간 단위로 반응합니다.

SIRIUS는 역전파의 수명을 이용합니다. 그래디언트 계산은 레이어를 따라 진행되고, 전체 배치가 끝나기 전에 수명이 끝나는 활성값과 작업 공간이 있습니다. 선택한 구간이 끝나면 파라미터를 손상하지 않고 이 메모리를 반환할 수 있습니다. 제어부가 추론에 필요한 용량을 전달하면 학습 런타임은 배치 끝이 아니라 수 ms 안에 도달할 수 있는 안전한 경계에서 크기를 줄입니다.

프로세스 교체가 아닌 네 단계의 메모리 인계

첫째, SIRIUS는 어떤 할당이 사용 중이고 현재 용량으로 어느 그래디언트 구간까지 끝낼 수 있는지 추적합니다. 임의의 CUDA 페이지를 밀어내지 않습니다. 둘째, 명시적인 경계에서 학습 메모리를 풀고 보존할 수 없는 소량의 미완료 작업만 버립니다. 셋째, 느린 일반 경로를 우회해 추론 페이지를 확보하고 0으로 초기화하며 모델 적재를 겹칩니다. 마지막으로 다음 학습 배치의 크기를 줄어든 용량에 맞춥니다.

추론 수요가 줄면 반대로 학습 배치를 키워 반환된 메모리를 다시 사용합니다. 여러 GPU에 걸친 추론 부하는 서로 다를 수 있으므로, SIRIUS는 데이터 병렬 워커가 같은 로컬 배치 크기를 강제로 쓰지 않도록 합니다. 전체 그래디언트의 의미는 유지하면서, 추론이 적은 GPU의 메모리를 놀리지 않습니다.

정책은 앞으로 도착할 추론을 위한 여유 용량과 최근에 유휴 상태가 된 모델을 유지할 시간을 설정합니다. 여유 용량을 크게 잡으면 콜드 스타트는 줄지만 학습 처리량이 낮아집니다. 모델을 오래 살려 두어도 같은 비용이 생깁니다. SIRIUS는 최대 수요를 영구 파티션으로 잡는 대신 관측한 도착률과 SLO 모델로 값을 정합니다.

SIRIUS의 GPU 메모리 인계를 다시 구성한 도판. 평상시에는 탄력적인 학습이 메모리 대부분을 사용합니다. 추론 요청이 몰리면 조정 가능한 그래디언트 구간을 끝내고, 사용 중인 할당을 안전하게 반환하고, 추론 페이지를 확보·초기화한 뒤 다음 학습 배치를 줄입니다. 논문에서 충분히 평가한 범위는 데이터 병렬 탄력성이며 파이프라인·텐서 병렬 재배치는 후속 과제입니다. 이 글을 위해 새로 만든 도판.

공개 평가의 작업부하

주 평가는 NVIDIA A100에서 수행했습니다. TVM으로 컴파일한 6개 DNN 추론 모델을 최대 56개 인스턴스로 복제했고, Microsoft Azure Functions 트레이스에서 만든 낮은 부하, 높은 부하, 급증과 편향 패턴을 사용했습니다. 함께 실행한 학습은 Swin Transformer입니다. 각 실험은 300초 동안 진행했고, 추론 SLO는 모델을 단독 실행한 시간의 4배로 정했습니다. P99 지연시간, SLO 안에 끝난 요청 비율과 초당 학습 샘플을 측정했습니다.

비교 대상에는 작업 교체, 50%·75% 고정 메모리 분할, 통합 메모리와 MPS, 추론 단독 실행이 포함됩니다. 각 방식은 다른 자원을 보호합니다. 고정 분할은 직접 간섭을 막지만 예약 용량을 놀리고, 작업 교체는 용량을 늦게 넘기며, 통합 메모리는 할당을 유지하는 대신 PCIe 이동 비용을 냅니다. 추론 단독 실행은 배경 작업이 없을 때의 상한입니다.

단일 GPU의 공개 트레이스에서 SIRIUS는 비교한 동시 배치 방식보다 SLO 충족률을 평균 57.0%, 최대 97.0% 높였습니다. 학습 처리량은 평균 2.2배, 최대 13.7배입니다. 추론만 실행한 경우와 비교하면 SLO 충족률을 평균 95.3%, 최대 98% 유지했습니다. 학습이 공짜라는 뜻이 아니라, 시험한 도착 패턴에서 온라인 서비스 수준의 일부만 지불하고 조용한 구간을 학습에 사용했다는 결과입니다.

GPU 4장에서는 비교 방식보다 SLO 충족률이 평균 43% 높고 학습 처리량은 6.1배 높았습니다. 추론 부하가 GPU마다 다른 경우에는 배치 분배가 중요합니다. 두 GPU에 같은 로컬 배치 크기를 강제한 경우보다 서로 다른 크기를 허용했을 때 학습 처리량이 8.7배 높았습니다.

동적 제어를 가능하게 한 밀리초 단위

다른 환경으로 옮길 때 가장 중요한 측정값은 조정 지연시간입니다. 학습 배치 경계를 기다리면 GPU 한 장에서도 250 ms를 넘고, 여러 GPU의 동기화가 필요하면 1초를 넘을 수 있습니다. SIRIUS는 학습 메모리를 평균 5 ms 미만에 조정했습니다. 단순한 인계보다 평균 121배 빠르며, P99는 한 GPU에서 11.4 ms, 네 GPU에서 10.5 ms입니다. 페이지를 0으로 만드는 시간을 포함한 할당 경로는 평균 0.8 ms이고, 전체 재할당은 단순 방식보다 148배 빠릅니다.

이 시간 단위가 정책을 바꿉니다. 메모리 회수에 수 초가 걸리면 스케줄러가 수요를 미리 예측하고 최고치에 맞춰 공간을 비워 둬야 합니다. 수 ms라면 실제 요청을 본 뒤 반응하고 급증이 끝나면 용량을 되돌릴 수 있습니다. 예측은 모델을 미리 적재하는 데 여전히 유용하지만, 예측 오류가 항상 완전한 콜드 스타트로 이어지지는 않습니다.

동적 배치가 학습 목표를 훼손하는지도 확인했습니다. CIFAR-100에서 Swin-T가 75% 정확도에 도달하는 데 동적 배치는 평균 210.6 에포크, 고정 배치는 206.2 에포크가 걸렸습니다. 5회 시험한 값입니다. 일반적인 수렴 보장은 아니지만 처리량 개선이 목표 정확도를 포기한 결과는 아니라는 점을 확인합니다.

KV 캐시가 탄력 영역이 되는 LLM

LLM 서빙에서는 모델 가중치를 고정하고 요청에 따라 KV 캐시가 늘고 줄어듭니다[3]. SIRIUS는 A100 80 GB에서 vLLM으로 Llama2-13B를 서빙하면서 남은 공간에 Qwen2-0.5B 학습을 배치했습니다. BurstGPT 트레이스를 초당 최대 10개 요청으로 조정했고, 첫 토큰 시간(TTFT)과 토큰 간 시간(TBT)의 목표를 각각 단독 지연시간의 4배로 정했습니다.

50% 고정 분할보다 TTFT 충족률은 40%포인트, TBT 충족률은 7%포인트 높았습니다. 추론에 75%를 예약한 방식보다는 학습 처리량이 1.5배 높았습니다. 추론 단독 실행 대비 TTFT와 TBT 충족률은 각각 89%와 91%를 유지했습니다. 이미지 모델 시험보다 차이가 작은 이유는 LLM의 고정 가중치와 커지는 KV 캐시가 실제로 빌려줄 수 있는 영역을 줄이기 때문입니다.

이 구분은 도입 범위를 정합니다. SIRIUS는 KV 캐시 공간을 추론에 넘길 수 있지만 모델 가중치를 없애지는 못합니다. 여러 LLM의 가중치를 자주 바꾸는 서비스에는 별도의 모델 상주 스케줄러나 분리형 메모리가 필요할 수 있습니다. 이 방식은 장치 하나 안에서 용량을 빠르게 조정하며, 그 위의 모든 배치 문제를 해결하지는 않습니다.

현재 설계가 멈추는 경계

충분히 평가된 학습 탄력성은 데이터 병렬 방식이며, 워커마다 로컬 배치 크기를 바꾸고 그래디언트를 합칠 수 있습니다. 파이프라인·텐서 병렬 학습은 모델 상태와 실행 구조를 여러 장치에 나누므로 한 단계에서 메모리를 반환하려면 레이어를 옮기거나 텐서 형태를 바꿔야 하고, 이는 배치 크기 조정보다 훨씬 비쌉니다. 논문도 이 범위를 후속 과제로 남깁니다.

메모리 밖의 간섭도 있습니다. 추론은 연산 자원을 제한 없이 사용하므로 높은 부하가 계속되면 학습 처리량은 거의 사라질 수 있습니다. PCIe, CPU 전처리와 프레임워크 제어부도 공유 병목이 됩니다. 운영 정책은 학습의 최소 진행량을 보장하거나, 학습을 중단 가능한 배경 작업으로 명확히 취급해야 합니다.

장애 처리도 추가해야 합니다. 학습 워커가 추론 마감 전에 조정 지점에 도달하지 못하면 요청을 거절하거나 다른 GPU로 보내거나 작업을 종료해야 합니다. 공개 프로토타입은 정상적인 인계 경로를 보였으며 완전한 다중 노드 장애 프로토콜을 제시하지는 않습니다. 커널 정지, GPU 오류와 제어부 지연을 따로 시험해야 합니다.

활용률보다 중요한 결산 방식

평균 GPU 활용률은 성공 지표가 아닙니다. 학습이 GPU를 100% 사용하면서 모든 추론 요청의 SLO를 놓칠 수도 있습니다. 분자는 유효한 배경 작업이고 제약은 전면 서비스의 TTFT, TBT 또는 요청 지연시간 충족률입니다. 같은 추론 도착 트레이스와 같은 SLO에서 가속기 시간당 완료 학습 샘플을 보고해야 합니다.

메모리도 가중치, KV 캐시, 활성값, 옵티마이저 상태와 임시 작업 공간으로 나눠 관측해야 합니다. 수명과 회수 비용이 서로 다르기 때문입니다. 총 사용량만으로는 어느 바이트를 5 ms 안에 돌려받을 수 있는지 알 수 없습니다. SIRIUS는 장치 드라이버가 추론할 수 없는 할당의 의미를 학습 런타임이 드러내기 때문에 작동합니다.

여유 용량은 보험 비용으로 계산해야 합니다. 10 GB를 비워 둔다면 아무 일도 하지 않는 메모리가 아니라 특정 확률의 콜드 스타트를 막는 공간입니다. 그 공간이 피한 SLO 손실이 포기한 학습량보다 큰지 계산해야 하며, 고객 등급과 시간대마다 답이 달라집니다.

시스템 도입의 기준

SIRIUS는 GPU 동시 배치를 고정 파티션에서 우선순위 관계로 바꿉니다. 수요가 오면 추론이 장치를 가져가고, 학습은 배치와 메모리 사용량을 바꿔 변동을 흡수합니다. 평균 5 ms 미만의 조정이 이 관계를 운영 가능한 수준으로 만든 핵심 결과입니다.

추론 수요가 급증하고 데이터 병렬 학습이 로컬 배치 변화를 감당하는 환경에 가장 잘 맞습니다. 긴밀하게 결합된 모델 병렬 학습이나 높은 추론 부하가 계속되는 환경에는 아직 맞지 않습니다. 조정 지연시간의 꼬리, 학습 수렴, 전면 SLO와 배경 진행량을 함께 측정해 네 항목이 모두 유지될 때, 비어 있던 HBM은 영구 예약이 아니라 다시 쓸 수 있는 용량이 됩니다.

출처와 저작권 안내

이 글은 USENIX ATC 2025 논문[1]을 우리 표현으로 다시 분석한 편집 다이제스트입니다. 논문의 문장·도판·표를 옮기지 않았으며, 본문 도판은 Silicon & Systems가 새로 제작했습니다. 수치는 저자들이 사용한 작업부하와 SLO 정의에 따라 설명했습니다. 원 논문의 저작권은 저자와 USENIX 프로시딩(2025)에 있습니다.