plasma-umass/scalene

Scalene: a high-performance, high-precision CPU, GPU, and memory profiler for Python with AI-powered optimization proposals

해결하는 문제

Scalene은 Python의 CPU, GPU 및 메모리 사용량의 병목 현상을 식별하는 고성능 프로파일러입니다. 라인 단위의 세부 정보를 제공하고 Python 코드 실행 시간과 네이티브 라이브러리 또는 시스템 I/O 시간을 분리함으로써, 부정확하거나 느린 프로파일링 문제를 해결하여 개발자가 실제로 최적화할 수 있는 코드에 집중할 수 있도록 합니다.

작동 원리

Scalene은 오버헤드를 낮게(일반적으로 10-20%) 유지하기 위해 계측(instrumentation) 대신 샘플링을 사용합니다. 특수 메모리 할당자를 통해 CPU 사용량, NVIDIA GPU 시간 및 메모리 할당을 추적합니다. 또한 await 비동기 코루틴의 시간을 귀속시키고, Python과 네이티브 (C/C++) 호출 스택을 결합하여 캡처합니다. 최적화 제안을 제공하기 위해 OpenAI, Azure, Amazon Bedrock, Ollama와 같은 AI 제공업체와 통합되어 있습니다.

대상 사용자

애플리케이션 성능을 최적화해야 하는 Python 개발자, 특히 무거운 네이티브 라이브러리, 비동기 코드 또는 GPU 가속을 사용하는 개발자를 위해 설계되었습니다.

주요 특징

  • AI 기반 최적화: 프로파일링 데이터를 기반으로 LLM을 사용하여 코드 개선 제안을 생성합니다.
  • 상세한 리소스 추적: Python, 네이티브 및 시스템 시간을 분리하고 메모리 누수와 복사량을 식별합니다.
  • 포괄적인 시각화: 호출 스택을 위한 플레임 그래프, 메모리 가중 스택, 월 클록 타임라인이 포함된 웹 기반 GUI를 제공합니다.
  • 비동기 프로파일링: 일시 중단된 코루틴의 라인별 월 클록 시간을 측정하고 동시성 수준을 추적합니다.
  • 낮은 오버헤드: 다른 많은 프로파일러보다 훨씬 빠르게 실행되면서도 높은 정확도를 유지합니다.

관련

  • 프로젝트
  • 프로젝트
  • Dispatch
  • 프로젝트
  • 프로젝트