Skip to main content

Profiling and trace analysis SDK

Project description

nCompass Python SDK

PyPI Downloads License Python

The Python SDK powering our Performance Optimization IDE—bringing seamless profiling and performance analysis directly into your development workflow.

Built by nCompass Technologies.

What are we building?

We're building a Performance Optimization IDE that improves developer productivity by 100x when profiling and analyzing performance of GPU and other accelerator systems. Our IDE consists of two integrated components:

🎯 VSCode Extension

Unify your profiling workflow with seamless integration between traces and codebases:

  • No more context switching — profile, analyze, and optimize all in one place
  • Zero-copy workflow — visualize traces directly in your editor without transferring files between machines
  • Code-to-trace navigation — jump seamlessly between your codebase and performance traces
  • AI-powered insights — get intelligent suggestions for performance improvements and bottleneck identification

⚙️ SDK (this repo)

The Python SDK that powers the extension with powerful automation features:

  • Zero-instrumentation profiling — AST-level code injection means you never need to manually add profiling statements
  • Universal trace conversion — convert traces from nsys and other formats to Chrome traces for integrated visualization
  • Extensible architecture — built for customization and extension (contributions welcome!)

Installation

Install via pip:

pip install ncompass

⚠️ Troubleshooting: If you run into issues with ncompasslib or pydantic, ensure that:

  1. You are running Python 3.11
  2. You have Pydantic>=2.0 installed

Examples

Refer to our open source GitHub repo for examples. Our examples are built to work together with the VSCode extension. For instance, with adding tracepoints to the code, you can add/remove tracepoints using the extension and then run profiling using our examples.

Online Resources

Requirements

  • Python 3.11 or higher
  • PyTorch 2.0+ (optional, for torch profiling features)
  • CUDA-capable GPU (optional, for GPU profiling)

Development

Coverage & Quality Tools

All development and coverage tools are in the tools/ directory:

# Install development dependencies
pip install -e ".[dev]"

# Run coverage checks (from tools/ directory)
cd tools
make all-checks         # Run all checks
make coverage           # Unit test coverage
make docstring-coverage # Docstring coverage
make type-stats         # Type hint coverage
make lint               # Run linters
make format             # Auto-format code

See tools/COVERAGE.md for comprehensive documentation.

Project Structure

ncompass/
├── pyproject.toml      # Project config (only root file)
├── ncompass/           # Main package
├── tests/              # Test suite
├── examples/           # Usage examples
└── tools/              # All development tools

License

This project is licensed under the Apache License 2.0 - see the LICENSE file for details.

Support

Made with ⚡ by nCompass Technologies

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ncompass-0.1.10.tar.gz (8.3 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ncompass-0.1.10-py3-none-any.whl (80.6 kB view details)

Uploaded Python 3

File details

Details for the file ncompass-0.1.10.tar.gz.

File metadata

  • Download URL: ncompass-0.1.10.tar.gz
  • Upload date:
  • Size: 8.3 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.19

File hashes

Hashes for ncompass-0.1.10.tar.gz
Algorithm Hash digest
SHA256 32f6e2ceedc6b5b1ce0ddb8661d809ce2abb258dc44854e2fe1c53dc1c933888
MD5 03c55014378f0eb45c107214997f71a0
BLAKE2b-256 b7f17e97613081f106ff7da3c16808a1e37a2a57ec6634683c1e36c370b3f127

See more details on using hashes here.

File details

Details for the file ncompass-0.1.10-py3-none-any.whl.

File metadata

  • Download URL: ncompass-0.1.10-py3-none-any.whl
  • Upload date:
  • Size: 80.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.19

File hashes

Hashes for ncompass-0.1.10-py3-none-any.whl
Algorithm Hash digest
SHA256 da259cc9bdb80472de562509d6b4501d52b5952d711abd0946c2e7cfb73b4abb
MD5 50ef598625cb6046840edd03c27ad9b8
BLAKE2b-256 41d4c7d1576f158b01dc5d94ba8c131c5a4a3a273981ac4d7f60f71b50e48055

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page