Software
Downloading and Installing PAPI

Clone the PAPI repository the first time with the following command:
> git clone https://bitbucket.org/icl/papi.git

This creates a complete copy of the papi git repository on your computer in a folder called 'papi'.

To make sure your copy is up to date with the repository:
> cd papi
> git pull https://bitbucket.org/icl/papi.git

To install PAPI on your system:

  • Find the section in INSTALL.txt that pertains to your hardware and operating system.
  • Follow the directions to install required components and build the PAPI libraries.
  • Run the test suite when you are finished to verify that everything went ok. NOTE: Although we make every attempt to get all tests to PASS or SKIP on all platforms, there are occasional instances of FAILures due to excessively tight compliance thresholds or platform idiosyncrasies. Don't panic if one or two tests FAIL. Contact us with complete output and we'll see what we can do.

 

 

PAPI 7.0.1 Release
2023-03-13

PAPI 7.0.1 has been shipped. This is a minor release of PAPI introducing the following changes:

  • Support for AMD Zen4 CPUs in libpfm4
  • Support for ARM Neoverse V1 and V2 in libpfm4
  • Fix a build error encountered when building the library with gcc 10 and later
  • Resolve build warnings across different components
  • Fix bug in the ROCm component when monitoring multiple GPUs in sampling mode
  • Refactor ROCm component to simplify code and prepare it for rocmtools support
  • Refactor ROCm SMI component and support XGMI events

 

To verify the integrity of the download, check the MD5 hash 'md5sum papi-7.0.1.tar.gz':

    14bb2b09dab28232911f929ef4e4b98b

papi-7.0.1.tar.gz   Download View License

PAPI 7.0.0 Release
2022-11-15

Just in time for Supercomputing 2022, PAPI 7.0.0 is now available.

This is a major release of PAPI, which offers several new components, including "intel_gpu" with monitoring capabilities on Intel GPUs; "sysdetect" (along with a new user API) for detecting details of the available hardware on a given compute system; a significant revision of the "rocm" component for AMD GPUs; the extension of the "cuda" component to enable performance monitoring on NVIDIA's compute capabilities 7.0 and beyond. Furthermore, PAPI 7.0.0 ships with a standalone "libsde" library and a new C++ API for software developers to define software-defined events from within their applications.

For specific and detailed information on changes made for this release, see ChangeLogP700.txt for filenames or keywords of interest and change summaries, or go directly to the PAPI git repository.

 

Some Major Changes for PAPI 7.0.0 include:

  • A new "intel_gpu" component with monitoring capabilities support for Intel GPUs (including GPU hardware events and memory performance metrics (e.g., bytes read/written/transferred from/to L3). The PAPI "intel_gpu" component offers two collection modes: (1) "Time-based Collection Mode," where metrics can be read at any given time during the execution of kernels. (2) "Kernel-based Collection Mode," where performance counter data is available once the kernel execution is finished.

  • A new "sysdetect" component for detecting a machine's architectural details, including the hardware's topology, specific aspects about the memory hierarchy, number and type of GPUs and CPUs on a node, thread affinity to NUMA nodes and GPU devices, etc. Additionally, PAPI offers a new API that enables users to get "sysdetect" details from within their application.

  • A major redesign of the "rocm" component for advanced monitoring features for the latest AMD GPUs. The PAPI "rocm" component is now thread-safe and offers two collection modes: "sampling" and "kernel intercept" mode.

  • Support for NVIDIA compute capability 7.0 and greater. This implies support for CUPTI's new Profiling and Perfworks APIs. The PAPI CUDA component has been refactored to work equally for NVIDIA compute capabilities = 7.0.

  • A significant redesign of the "sde" component into two separate entities: (1) a standalone library "libsde" with a new API for software developers to define software-based metrics from within their applications, and (2) the PAPI "sde" component that enables monitoring of these new software-based events.

  • A new C++ interface for "libsde," which enables software developers to define software-defined events from within their C++ applications.

  • New Counter Analysis Toolkit (CAT) benchmarks and refinements of PAPI's CAT data analysis, specifically, the extension of PAPI's CAT with MPI and "distributed memory"-aware benchmarks and analysis to stress all cores per node.

  • Support for FUGAKU's A64FX Arm architecture, including monitoring capabilities for memory bandwidth and other node-wide metrics.

 

Acknowledgments:

This release is the result of efforts from many people. The PAPI team would like to express special Thanks to Vince Weaver, Stephane Eranian (for libpfm4), William Cohen, Steve Kaufmann, Peinan Zhang, John Rodgers, Yamada Masahiko, Thomas Richter, and Phil Mucci.

 

To verify the integrity of the download, check the MD5 hash 'md5sum papi-7.0.0.tar.gz':

    71602266f8523e97a30b1a556adde1ba

papi-7.0.0.tar.gz   Download View License

PAPI 6.0.0 Release
2020-03-04

PAPI 6.0.0 was released March 4, 2020. This release includes a new API for SDEs (Software Defined Events), a major revision of the 'high-level API', and several new components, including ROCM and ROCM_SMI (for AMD GPUs), powercap_ppc and sensors_ppc (for IBM Power9 and later), SDE, and the IO component (exposes I/O statistics exported by the Linux kernel). Furthermore, PAPI 6.0 ships CAT, a new Counter Analysis Toolkit that assists with native performance counter disambiguation through micro-benchmarks.

For specific and detailed information on changes made for this release, see ChangeLogP600.txt for filenames or keywords of interest and change summaries, or go directly to the PAPI git repository.


Some Major Changes for PAPI 6.0 include:

  • Added the rocm component to support performance counters on AMD GPUs.
  • Added the rocm_smi component; SMI is System Management Interface to monitor power usage on AMD GPUs, which is also writeable by the user, e.g. to reduce power consumption on non-critical operations.
  • Added 'io' component to expose I/O statistics exported by the Linux kernel (/proc/self/io).
  • Added 'SDE' component, Software Defined Events, which allows HPC software layers to expose internal performance-critical behavior via Software Defined Events (SDEs) through the PAPI interface.
  • Added 'SDE API' to register performance-critical events that originate from HPC software layers, and which are recognized as 'PAPI counters' and, thus, can be monitored with the standard PAPI interface.
  • Added powercap_ppc component to support monitoring and capping of power usage on IBM PowerPC architectures (Power9 and later) using the powercap interface exposed through the Linux kernel.
  • Added 'sensors_ppc' component to support monitoring of system metrics on IBM PowerPC architectures (Power9 and later) using the opal/exports sysfs interface.
  • Retired infiniband_umad component, it is superseded by infiniband.
  • Revived PAPI's 'high-level API' to make it more intuitive and effective for novice users and quick event reporting.
  • Added 'counter_analysis_toolkit' sub-directory (CAT): A tool to assist with native performance counter disambiguation through micro-benchmarks, which are used to probe different important aspects of modern CPUs, to aid the classification of native performance events.


Other Changes include:

  • Standardized our environment variables and implemented a simplified, unified approach for specifying libraries necessary for components, with overrides possible for special circumstances. Eliminated component level 'configure' requirements.
  • Corrected TLS issues (Thread Local Storage) and race conditions.
  • Several bug fixes, documentation fixes and enhancements, improvements to README files for user instruction and code comments.


Acknowledgements:
This release is the result of efforts from many people. The PAPI team would like to express special Thanks to Vince Weaver, Stephane Eranian (for libpfm4), William Cohen, Steve Kaufmann, Phil Mucci, Kevin Huck, Yunqiang Su, Carl Love, Andreas Beckmann, Al Grant and Evgeny Shcherbakov.


To verify the integrity of the download, check the MD5 hash 'md5sum papi-6.0.0.tar.gz':

    67d06f70fca62f4fcc95672f197638a2

papi-6.0.0.tar.gz   Download View License

License

Copyright © 2023 The University of Tennessee. All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
· Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
· Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer listed in this license in the documentation and/or other materials provided with the distribution.
· Neither the name of the copyright holders nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

This software is provided by the copyright holders and contributors "as is" and any express or implied warranties, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose are disclaimed. in no event shall the copyright owner or contributors be liable for any direct, indirect, incidental, special, exemplary, or consequential damages (including, but not limited to, procurement of substitute goods or services; loss of use, data, or profits; or business interruption) however caused and on any theory of liability, whether in contract, strict liability, or tort (including negligence or otherwise) arising in any way out of the use of this software, even if advised of the possibility of such damage.

Mar 26 2023 Admin Login