본문으로 건너뛰기

[sglang] GB300 Nightly 벤치마크 테스트 스위트 추가

PR 링크: sgl-project/sglang#21487 상태: Merged | 변경: +874 / -4

들어가며

NVIDIA의 Blackwell 아키텍처(GB300)에서 SGLang의 성능을 지속적으로 추적하기 위해, 이번 PR은 nightly 벤치마크 테스트 스위트를 추가합니다. 특히 NVIDIA NeMo Skills 프레임워크를 활용한 VLM(Vision-Language Model) 평가 파이프라인을 새로 구축하고, MMMU-Pro 같은 멀티모달 벤치마크를 실행할 수 있는 인프라를 도입합니다.

핵심 코드 분석

NeMo Skills 가상환경 관리

_nemo_venv_dir: Optional[str] = None
_nemo_data_prepared: set = set()

def _get_nemo_venv() -> Tuple[str, dict]:
    global _nemo_venv_dir
    if _nemo_venv_dir is not None:
        venv_python = f"{_nemo_venv_dir}/venv/bin/python"
        return venv_python, env

    _nemo_venv_dir = tempfile.mkdtemp(prefix="nemo_skills_")
    # uv venv 생성 및 nemo_skills 설치
    subprocess.run(["uv", "venv", f"{_nemo_venv_dir}/venv", "--python", "3.12"])
    subprocess.run(["uv", "pip", "install", "--python", venv_python,
        "git+https://github.com/NVIDIA/NeMo-Skills.git"])

NeMo Skills의 의존성이 SGLang 서버와 충돌하지 않도록 격리된 가상환경을 생성합니다. _nemo_venv_dir 전역 변수로 프로세스 내에서 재사용하여, 여러 테스트 변형(variant)을 실행해도 venv를 한 번만 생성합니다.

NeMo Skills 평가 실행

def _run_nemo_skills_eval(model, base_url, dataset, ...):
    venv_python, env = _get_nemo_venv()
    _ensure_nemo_data_prepared(venv_python, env, dataset)

    cmd = [venv_python, "-m", "nemo_skills.pipeline.eval", "eval",
        f"--benchmarks={dataset}:{repeat_val}",
        "--server_type=sglang",
        f"--model={model.model_path}",
        f"--server_address={server_address}"]

    if dataset in ("mmmu-pro",):
        cmd.append("++prompt_config=vlm/mmmu-pro")
        cmd.append("++max_concurrent_requests=512")

SGLang 서버를 실행한 후, 별도 프로세스에서 NeMo Skills 파이프라인을 통해 평가를 수행합니다. 결과 파싱은 summarize_results 서브커맨드, JSON 파일, JSONL 파일 순으로 시도하여 다양한 출력 형식에 대응합니다.

왜 이게 좋은가

  1. 하드웨어별 성능 추적: GB300에서의 성능 회귀를 nightly 단위로 감지할 수 있습니다.
  2. VLM 평가 인프라: NeMo Skills 통합으로 MMMU-Pro 등 표준 멀티모달 벤치마크를 CI에서 자동 실행합니다.
  3. 환경 격리: 별도 venv로 NeMo Skills 의존성 충돌을 방지합니다.

정리

874줄 추가의 대규모 PR로, GB300 nightly 벤치마크 인프라와 NeMo Skills 기반 VLM 평가 파이프라인을 동시에 구축했습니다. 하드웨어 세대가 빠르게 바뀌는 환경에서 CI 벤치마크를 갖추는 것은 성능 회귀를 조기에 발견하는 핵심 수단입니다.

참고 자료

⚠️ 알림: 이 분석은 AI가 실제 코드 diff를 기반으로 작성했습니다.

댓글

관련 포스트

PR Analysis 의 다른글