GPU 한 대로 AI 작업 여러 개 처리하기: 실제 렌더링 머신의 VRAM 할당 교훈

지난주 저는 실수로 고객에게 매일 YouTube Shorts를 제공하겠다고 약속했고, 나중에 우리 렌더링 머신(Mac Mini M4 Pro, 16GB GPU)이 약속한 시간 내에 작업을 처리하지 못한다는 사실을 발견했습니다. 여러 번의 시행착오 끝에 이 문제를 실제로 해결할 수 있었습니다. 오늘은 VRAM 관리와 단일 머신에서의 작업 큐잉에 대해 이야기해 보겠습니다.

GPU 리소스 공유

처음에는 16GB VRAM이 모든 작업에 충분할 것이라고 생각했습니다. 모든 AI 작업이 동일한 머신에서 실행되기 때문입니다. 그러나 분석을 시작했을 때 상황이 생각만큼 간단하지 않다는 것을 깨달았습니다. 백그라운드 작업(예: 금 시장 모니터링과 MetaTrader 5에서의 외환 트레이딩)이 리소스의 7.5GB를 차지하고 있어, 다른 작업을 위한 VRAM은 단 4.45GB만 남았습니다.

VRAM 분할
백그라운드 작업과 렌더링 작업 간 VRAM 분할로 실제 사용 가능한 공간이 4.45GB로 줄어듦

이로 인해 제한된 GPU 리소스에서도 팀의 작업 흐름을 원활하게 유지하기 위해 효율적인 큐 관리 시스템을 개발해야 했습니다.

모델 로딩 문제

제가 직면한 문제 중 하나는 이미지 렌더링을 위한 모델 로딩에 걸리는 시간이었습니다. 적절한 큐 관리가 도입되기 전에는 작업이 변경될 때마다 모델을 새로 로드해야 했으며, 이는 콜드 스타트 모델 로딩에 398초, 즉 거의 7분이 걸렸습니다.

모델 로딩 시간 차트
매번 모델을 새로 로드하는 데 398초가 소요되어 작업 속도가 크게 저하됨

매일 업데이트해야 하는 YouTube Shorts에는 이 시간이 용인할 수 없었습니다. 머신의 VRAM을 늘리지 않고도 이 시간을 줄이는 방법을 찾아야 했습니다.

작동하는 FIFO 큐

여러 가지 방법을 시도한 끝에, FIFO(선입선출) 큐를 사용하는 것이 가장 효과적임을 발견했습니다. 작업을 도착 순서대로 정렬하고 그 순서대로 처리합니다. FLUX 렌더링이 이미지당 33~36초가 걸리더라도, 이 큐잉 방식은 모델을 한 번만 로드하고 연속적으로 처리함으로써 모델 로딩 시간을 크게 줄였습니다.

프로세스 튜닝

프로세스 튜닝이 가장 중요했습니다. 작업을 카테고리로 나누어 긴급하고 중요한 작업에 우선순위를 주었습니다. 백그라운드 작업은 사용량이 적은 시간대에 실행되도록 설정하여 다른 작업에 영향을 미치지 않도록 했습니다.

또한 모델이 사용되지 않을 때는 배터리 절약 모드로, 이미지 렌더링이 필요할 때는 풀 파워로 전환하도록 조정했습니다. 이는 머신의 전력 소비와 열을 줄이는 데 도움이 되었습니다.

결과

시스템을 개선한 후, 약속한 시간 내에 YouTube Shorts를 제공할 수 있게 되었습니다. 이미지당 평균 33~36초의 렌더링 시간과 하루 시작 시 단 한 번의 모델 로딩 시간으로, 이전에는 작업이 변경될 때마다 모델을 새로 로드해야 했던 것과 비교하여 효율성이 크게 향상되었습니다.

가장 중요한 것은 머신의 제한 사항과 사용 가능한 리소스를 이해하고, 그 환경에 맞게 프로세스를 조정하는 것입니다. 머신을 과부하 상태로 작동시키려 하지 않는 것이죠.

교훈과 다음 단계

이 경험에서 얻은 교훈은 리소스 관리가 하드웨어 문제만이 아니라 효율적인 프로세스와 작업 큐 관리 문제라는 것입니다. 미래에는 추가 GPU를 고려하거나 VRAM이 많이 필요한 일부 작업을 위해 클라우드 서비스를 사용할 수 있습니다. 하지만 현재로서는 FIFO 큐 관리와 프로세스 튜닝이 효율적인 작업을 가능하게 해주고 있습니다.

실제 금 트레이딩을 시도해 보고 싶으신 분은 XM 계정을 여실 수 있습니다: 당신의 파트너를 통해 XM 계정 개설