컴파일 캐시¶
목표: 최초 시작에서 모델을 한 번만 컴파일하고, 이후 시작과 복제본 확장에서 컴파일 결과를 재사용합니다.
최초 시작 시간¶
modelserver Pod의 최초 시작 시간은 대부분 컴파일이 차지합니다. modelserver는 컴파일 결과를 컴파일 캐시 PersistentVolumeClaim(PVC)에 저장합니다. 컴파일 캐시가 채워지면 재시작한 Pod와 복제본 확장으로 추가한 Pod는 재컴파일 없이 시작합니다.
| 단계 | 소요 시간 | 측정 조건 |
|---|---|---|
| 최초 컴파일(cold) | 모든 Pod가 Ready 상태가 될 때까지 약 11분 | MiniMax-M2.7, prefill Pod 2개와 decode Pod 2개, 빈 컴파일 캐시(Target Configuration 검증과 별도로 측정) |
| 컴파일 캐시가 채워진 뒤 재시작(warm) | 컴파일 없이 모델 로드 시간만 소요 | N/A |
modelserver Pod의 시작 예산은 최초 컴파일 시간보다 길어야 합니다. 시작 예산은 시작 및 준비 상태 프로브를 참고하세요.
PVC 구성, 용량 및 accessModes¶
차트는 prefill과 decode에 컴파일 캐시 PVC를 하나씩 생성합니다. 같은 P/D role의 복제본은 PVC 하나를 함께 사용합니다. 복제본 수가 0인 P/D role에는 PVC를 생성하지 않습니다.
PVC의 용량과 accessModes는 설치 전에 정하세요. 레퍼런스 구성은 차트 기본값을 그대로 사용합니다.
| 키 | 차트 기본값 | 설치 후 변경 |
|---|---|---|
storage.compileCache.size | 200Gi | StorageClass가 볼륨 확장을 허용할 때만 늘릴 수 있습니다. 기존 PVC보다 작은 값은 helm install과 helm upgrade가 거부합니다. helm template과 GitOps 렌더링에서는 이 검사가 동작하지 않습니다 |
storage.compileCache.accessModes | ["ReadWriteMany"] | 바꿀 수 없습니다. Kubernetes가 기존 PVC의 명세 변경을 허용하지 않습니다 |
컴파일 결과의 크기는 모델 크기와 병렬도에 따라 달라집니다. PP(pipeline parallelism) 병렬도가 커지면 rank마다 컴파일 결과가 늘어납니다. 용량이 부족하면 modelserver Pod가 컴파일 단계에서 Disk quota exceeded로 실패합니다. 현재 사용량은 실행 중인 modelserver Pod에서 다음 명령으로 확인하세요.
ReadWriteMany(RWX)에서는 서로 다른 노드에 있는 같은 P/D role의 Pod가 컴파일 캐시를 공유합니다. StorageClass가 RWX를 지원하지 않으면 컴파일 캐시 PVC가 ProvisioningFailed 이벤트와 함께 Pending 상태로 남습니다. 이때는 storage.compileCache.accessModes를 ["ReadWriteOnce"]로 설정하고 prefill과 decode를 각각 Pod 하나로 실행하세요. ReadWriteOnce 설정은 Unverified입니다.
캐시 재사용 조건¶
컴파일 캐시는 RBLN Compiler의 major.minor 버전이 같을 때만 재사용할 수 있습니다. 캐시 키를 이루는 서빙 설정(Compile Cache › 캐시 키 참고)과 NPU 종류도 같아야 합니다. RBLN Compiler 버전, 캐시 키의 서빙 설정, NPU 종류 중 하나라도 다르면 modelserver는 컴파일 캐시를 재사용하지 못하고 모델을 처음부터 다시 컴파일합니다.
modelserver 이미지를 SDK 버전이 다른 이미지로 교체하면 RBLN Compiler 버전도 바뀝니다. 컴파일 캐시를 재사용할 수 없으면 컴파일 캐시 PVC를 삭제하고 다음 시작에서 컴파일 캐시를 다시 채우세요.
제거 후 캐시 유지¶
helm uninstall은 컴파일 캐시 PVC를 삭제하지 않습니다. 차트가 컴파일 캐시 PVC에 helm.sh/resource-policy: keep을 설정하기 때문입니다. 같은 Helm 릴리스 이름으로 다시 설치하면 남은 컴파일 캐시를 재사용합니다. 컴파일 캐시 PVC를 삭제하는 방법은 확장 및 업그레이드 › 남는 항목을 참고하세요.