Giter Site home page Giter Site logo

zju-spail / pipa Goto Github PK

View Code? Open in Web Editor NEW
7.0 1.0 4.0 2.48 MB

PIPA (Platform Integrated Performance Analytics) is a platform that aggregates a complete toolchain of performance data collection, processing, and analysis.

License: MIT License

Python 98.52% Shell 1.16% Makefile 0.32%

pipa's Introduction

PIPA

PIPA (Platform Integrated Performance Analytics) is a platform that aggregates a complete toolchain of performance data collection, processing, and analysis.

PIPA (ๆž‡ๆท, loquat) is a local fruit of Zhejiang, China. PIPA consists of three parts: loquat tree, flower and fruit, which represent the collecting & processing, analysis and conclusion of performance data respectively.

PIPA is still in the active development process, and the current development focus is on the loquat tree.

GitHub License GitHub Actions Workflow Status GitHub top language Code style: black Coverage

Features

  • Data Collecting: PIPA can collect data from a variety of sources, using tools like perf, sar, and more. It supports multiple platforms including x86_64, ARM, and RISC-V, making it versatile and adaptable. Currently PIPA is capable of collecting and parsing perf and sar data, providing detailed performance metrics.
  • Script Generation: To reduce the noise generated by the Python runtime, PIPA can generate scripts that collect performance data.
  • Data Processing: PIPA can process the collected performance data, including alignment and segmentation, to serve meaningful analysis.
  • Data Visualization: PIPA can visualize based on the performance data collected to provide intuitive insights.
  • Data Analytics: PIPA will integrate SPAIL's performance methodology and models to provide meaningful analysis and reveal software and hardware bottlenecks.

Installation

PIPA can be easily installed using pip:

pip install PyPIPA

Quickstart

After installation, you can start using PIPA to collect, integrate, and analyze your data.

To generate a script that collect performance data, you only need to use:

pipa generate

Then you can complete the interaction through the CLI to provide the necessary parameters. You can choose to start the workload with perf, or you can choose to observe the system directly.

For the detailed usage, please check user guide.

Build

To build PIPA, you can use the python command with the build module: python -m build, we use hatchling as the build backend.

LICENSE

PIPA is distributed under the terms of the MIT License.

Contributing

Contributions to PIPA are always welcome. Whether it's feature enhancements, bug fixes, or documentation, your contributions are greatly appreciated.

pipa's People

Contributors

bernard035 avatar dichloride avatar royenheart avatar

Stargazers

 avatar jiahongyu avatar  avatar Hailiang Zhao avatar  avatar Zhihao Chang avatar  avatar

Watchers

 avatar

pipa's Issues

Taxonomy of attribute names

Let's have consistency in attribute names, e.g.,
TPS = trans per second (use the same acronym throughout), perhaps we should create such list of acronyms within SPAIL
Each attribute name should have two components, the name itself and the measurement units, attr_units
e.g., attr = freq, units=MHz, then the attribute is freq_MHz
e.g., retiredInst [retired insts, just a number]
e.g., retiredInst_.s [a number per second]
e.g., uInst [micro insts, just a number]
e.g., netRead_P.s [network reads, in packets per second]
I haven't figured out all the details yet. Could you have somebody help figure out how to name the attributes in a consistent way so that we can also do analytics automatically

Please use fixed fonts for numbers

Use fixed fonts for numbers so the same number of digits will show up with the same width. That would enable fast glance at all the numbers and spot what numbers are big and small

Please check the compute method for CPI.

In the file perf_stat.py, the CPI is calculated by averaging the CPIs of the participating cores.
I am not sure that is right.
My compute method is totalCycles / totalInstructions.
The results are quite different between the two approaches.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.