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%)抑えるために、インストゥルメンテーションではなくサンプリングを使用します。専用のメモリ割り当て機能を通じて、CPU使用率、NVIDIA GPU時間、メモリ割り当てを追跡します。また、await 非同期コルーチンの時間を帰属させ、Pythonとネイティブ (C/C++) の呼び出しスタックを結合してキャプチャします。最適化の提案を行うために、OpenAI、Azure、Amazon Bedrock、OllamaなどのAIプロバイダーと統合されています。

対象ユーザー

アプリケーションのパフォーマンスを最適化する必要があるPython開発者、特に重いネイティブライブラリ、非同期コード、またはGPUアクセラレーションを使用する開発者向けに設計されています。

ハイライト

  • AIによる最適化: プロファイリングデータに基づき、LLMを使用してコードの改善案を生成します。
  • 詳細なリソース追跡: Python、ネイティブ、システム時間を分離し、メモリリークやコピー量を特定します。
  • 包括的な可視化: 呼び出しスタックのフレームグラフ、メモリ加重スタック、ウォールクロックタイムラインを備えたWebベースのGUIが含まれています。
  • 非同期プロファイリング: 中断されたコルーチンの行ごとのウォールクロック時間を測定し、並行処理レベルを追跡します。
  • 低オーバーヘッド: 他の多くのプロファイラよりも大幅に高速に動作しつつ、高い精度を維持します。

関連

  • プロジェクト
  • プロジェクト
  • Dispatch
  • プロジェクト
  • プロジェクト