RBLN 프로파일러¶
RBLN 프로파일러는 RBLN NPU를 이용해 실행하는 응용 프로그램들의 성능을 정밀하게 분석하는 소프트웨어 도구입니다. 사용자들은 RBLN 프로파일러를 통해 잠재적으로 최적화가 가능한 부분을 확인할 수 있고, 시스템 자원을 최대한 활용하기 위한 정보를 얻을 수 있습니다. RBLN 프로파일러는 메모리 사용량, 명령어 실행 시간 등의 핵심 성능 지표를 측정 및 기록하며, 이를 통해 사용자는 애플리케이션 실행 과정에서 발생하는 성능 병목 현상의 원인을 파악할 수 있습니다. 이러한 프로파일링 결과를 바탕으로 사용자는 RBLN NPU의 전력 효율성과 연산 능력을 극대화하도록 응용 프로그램을 최적화할 수 있고, 이를 통해 실제 운영 환경에서 응용 프로그램의 성능을 개선할 수 있습니다.
이 순서도는 RBLN SDK와 리벨리온의 NPU인 ATOM™을 사용해 모델을 프로파일링하고 그 데이터를 시각화하는 과정을 나타냅니다.
- RBLN Runtime (RBLN 런타임)은 RBLN Profiler (RBLN 프로파일러)에 분석을 위한 모델 정보를 전달합니다.
- RBLN Profiler는 RBLN NPU로부터 프로파일링 데이터를 세분화해서 처리한 후 이를 분석 및 시각화할 수 있게 직렬화(serialize)하여 Protocol Buffer (.pb) 형태로 만듭니다.
- Perfetto는 각 명령어의 실행 시간과 명령어 간의 의존성 정보를 보여주는 도구로, 이를 통해 위에서 생성한 Protocol Buffer (.pb)를 시각화할 수 있습니다.
- 리벨리온의 NPU인 ATOM™이 제공하는 명령어들은 아래와 같습니다.
- Neural Engine Clusters / Neural DMA / Task DMA / External HDMA / Device HDMA / Device Sync
또한, RBLN 프로파일러에 대한 이해를 돕기 위해 아래 문서들을 제공합니다:
-
RBLN NPU 아키텍처에서는 RBLN NPU인 ATOM™의 아키텍처에 대해 설명합니다.
-
프로파일링에서는 RBLN 프로파일러를 사용해 프로파일링하는 방법을 소개합니다.
-
Perfetto
- 소개에서는 Perfetto에 대한 설명과 사용법을 제공합니다.
- 분석 방법에서는 Perfetto를 통해 시각화된 결과를 분석하는 방법을 소개합니다.
- 대규모 모델 시각화에서는 로컬 환경에서 프로파일링 결과를 트레이싱하는 방법을 설명합니다.
-
예제