Metadata-Version: 2.4
Name: ovperf-collector
Version: 0.4.7
Summary: Low-overhead system metric collection: CPU, memory and GPU as time series, with Nsight helpers
Author: Omniverse Runtime Performance
License: Apache-2.0
Classifier: Programming Language :: Python :: 3
Classifier: Operating System :: POSIX :: Linux
Classifier: Operating System :: Microsoft :: Windows
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
License-File: LICENSE-NVTX.txt
License-File: LICENSE-NVML.txt
License-File: LICENSE-MINGW-W64.txt
License-File: LICENSE-LLVM.txt
License-File: third_party/nvtx3/LICENSE.txt
License-File: THIRD-PARTY-NOTICES.txt
Provides-Extra: dev
Requires-Dist: pytest>=8; extra == "dev"
Provides-Extra: parquet
Requires-Dist: pyarrow>=14; extra == "parquet"
Dynamic: license-file

# ovperf-collector

Collect CPU, memory, and GPU metrics as time series, together with application
timings, scopes, and counters. The package provides Python bindings over a
native C library and can correlate collected data with Nsight Systems captures.
It supports standalone use in Python and native applications.

## Install

```bash
python -m pip install ovperf-collector
```

Python 3.10 or later is required. Native collection supports Linux x86-64 and
ARM64 with glibc 2.35 or newer, and Windows 10 or later on x64. GPU metrics
require a supported NVIDIA GPU and an installed NVIDIA driver; unavailable
metrics are omitted. The base package has no mandatory Python dependencies.

For optional Parquet export:

```bash
python -m pip install 'ovperf-collector[parquet]'
```

## Native SDK

Starting with 0.4.7, official Linux x86-64, Linux ARM64, and Windows x64 wheels
include a C/C++ SDK in `ovperf_collector/sdk`. It contains headers in `include/`,
CMake files in `lib/cmake/ovperf_collector/`, and, on Windows, the import library
`lib/ovperf_collector.lib`. Native applications link the packaged collector
runtime without rebuilding it or starting Python.

Set `CMAKE_PREFIX_PATH` to the absolute installed `ovperf_collector/sdk` directory.
For an existing C++ target:

```cmake
find_package(ovperf_collector CONFIG REQUIRED)
target_link_libraries(my_app PRIVATE ovperf_collector::ovperf_collector)
```

This target requires C++17. C targets can link `ovperf_collector::core` instead.
Keep the SDK and shared runtime in their installed relative locations. For
deployment, make the runtime available through the application's library search
path; on Windows, placing `ovperf_collector.dll` beside the executable suffices.

## License

The ovperf-collector implementation is licensed under Apache-2.0. Wheels include
license and attribution files for incorporated third-party code and use of the
official NVML build header. The header, NVIDIA driver and
NVML runtime are provided separately and are not bundled with this package.

The wheel's `.dist-info/licenses/THIRD-PARTY-NOTICES.txt` lists the component
attributions. Its `.dist-info/licenses/` directory contains the following notices.
The NVTX source is in `third_party/nvtx3/` in the build source; Windows runtime
components are linked into `ovperf_collector/ovperf_collector.dll`.

| Component | Attribution and license | Distributed notice |
| --- | --- | --- |
| NVTX3 | Copyright (c) 2009-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. Apache-2.0 WITH LLVM-exception. | `LICENSE-NVTX.txt`, `third_party/nvtx3/LICENSE.txt` |
| NVML header usage | NVIDIA Corporation; official header used only to build, under the terms reproduced in its notice. | `LICENSE-NVML.txt` |
| MinGW-w64 runtime (Windows only) | MinGW-w64 project, Kai Tietz, Egor Duda, Keith Marshall, David M. Gay and Lucent Technologies; ZPL-2.1, public-domain and the file-specific permissive terms reproduced in the notice. | `LICENSE-MINGW-W64.txt` |
| LLVM compiler-rt builtins (Windows only) | LLVM Project; Apache-2.0 WITH LLVM-exception. | `LICENSE-LLVM.txt` |

Optional Python packages and the NVIDIA driver are installed separately; they
are not included in the wheel. The license files contain the complete terms
and original attributions, including the Windows file-level notices.

## Contributions

This project is currently not accepting contributions.
