프로파일링 가이드¶
vLLM RBLN의 성능을 최적화하기 위해서는 기본 메트릭인 TTFT(Time To First Token)와 TPOT(Time Per Output Token) 외에도, RBLN NPU의 동작을 심층적으로 분석할 수 있는 저수준(Low-level) 프로파일링이 필요합니다.
본 문서에서는 PyTorch-Level Profiler와 RBLN Profiler라는 두 가지 방식의 프로파일링 가이드를 제공합니다.
1. Pytorch-Level Profiler¶
PyTorch 프로파일러를 활용하여 연산 단위의 성능을 측정하는 방법입니다. 이를 통해 커널(Kernel) 실행 시간과 연산 병목 구간을 분석할 수 있습니다. vLLM RBLN은 공식 vLLM Profiling 가이드와 동일한 인터페이스를 지원합니다.
1.1 환경 설정¶
프로파일링 결과(Trace)를 저장할 경로를 지정하기 위해 환경 변수 VLLM_TORCH_PROFILER_DIR을 설정해야 합니다.
1.2. Offline Inference 프로파일링¶
Python 스크립트를 통한 오프라인 추론 시, start_profile()과 stop_profile() 메서드를 사용하여 측정하고자 하는 구간을 설정합니다.
1.3. Online Inference 프로파일링¶
API 서버를 통한 온라인 추론 시, 별도의 엔드포인트를 호출하여 프로파일링을 제어합니다.
/start_profile엔드포인트를 호출하여 프로파일링을 시작합니다./v1/chat/completions등 실제 추론 요청을 보냅니다./stop_profile엔드포인트를 호출하여 프로파일링을 종료하고 결과를 저장합니다.
1.4 추가 옵션¶
상세한 분석을 위해 다음 환경 변수들을 추가로 설정할 수 있습니다.
VLLM_TORCH_PROFILER_RECORD_SHAPES: 텐서의 Shape 정보를 기록합니다.VLLM_TORCH_PROFILER_WITH_PROFILE_MEMORY: 메모리 사용량을 함께 프로파일링합니다.VLLM_TORCH_PROFILER_WITH_STACK: 소스 코드의 스택 트레이스를 기록합니다.VLLM_TORCH_PROFILER_WITH_FLOPS: 연산량(FLOPS)을 추정하여 기록합니다.
1.5 프로파일 결과 시각화¶
생성된 프로파일링 트레이스 파일은 Perfetto UI를 통해 시각화할 수 있습니다.
2. RBLN Profiler¶
RBLN 프로파일러는 RBLN NPU에서 실행되는 워크로드의 성능을 상세히 분석하기 위해 제공되는 소프트웨어 도구입니다. 자세한 내용은 RBLN 프로파일러를 참고 바랍니다.
2.1 제약 사항 및 설정¶
vLLM RBLN 환경에서 RBLN 프로파일러를 사용한 프로파일링은 멀티프로세스 구성이 비활성화된 상태에서만 지원됩니다.
멀티프로세싱 환경 지원은 추후 업데이트될 예정입니다.
아래와 같이 환경 변수를 설정한 후 vLLM을 실행하면 프로파일링 결과가 생성됩니다.
RBLN_PROFILER=1: RBLN 프로파일러 활성화VLLM_ENABLE_V1_MULTIPROCESSING=0: 멀티프로세싱 비활성화
2.2 프로파일 결과 시각화¶
이 프로파일링 트레이스 파일도 Perfetto UI를 통해 시각화할 수 있습니다. 트레이스 분석에 대한 더 자세한 내용은 Perfetto 분석 방법 문서를 참고하십시오.

