Profiling and trace analysis SDK
Project description
nCompass Python SDK
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
ncompassliborpydantic, ensure that:
- You are running Python 3.11
- You have
Pydantic>=2.0installed
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
- 🌐 Website: ncompass.tech
- 📚 Documentation: docs.ncompass.tech
- 💬 Community: community.ncompass.tech
- 🐛 Issues: GitHub Issues
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
- Documentation: docs.ncompass.tech
- Community Forum: community.ncompass.tech
- Email: aditya.rajagopal@ncompass.tech
Made with ⚡ by nCompass Technologies
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ncompass-0.1.9.tar.gz.
File metadata
- Download URL: ncompass-0.1.9.tar.gz
- Upload date:
- Size: 87.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
18fe9eaece17e15415be93785c647e9fe55f8a7dd9ba62de2ffec05d44285bf2
|
|
| MD5 |
ec08c564d160f62e59d6ce0667edd6cf
|
|
| BLAKE2b-256 |
b9dcedcb2e93cc2933a3cf1a7bd7dc32776811fac60f7a5879d6102151a68076
|
File details
Details for the file ncompass-0.1.9-py3-none-any.whl.
File metadata
- Download URL: ncompass-0.1.9-py3-none-any.whl
- Upload date:
- Size: 79.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f1c7c0097c769f56437e45303f03ad528004ff67da3cc989424953463e2997ff
|
|
| MD5 |
8f896fe943acb9a91199253e2fa2d813
|
|
| BLAKE2b-256 |
f957ea3c55c3c3c152a81fca6d4bcd77fe8821e19fe92033ec2e65ee7a512154
|