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 5.7 is now available. This release includes a new component, called "pcp", which interfaces to the Performance Co-Pilot (PCP). It enables PAPI users to monitor IBM POWER9 hardware performance events, particularly shared “NEST” events without root access.
This release also upgrades the (to date read-only) PAPI “nvml” component with write access to the information and controls exposed via the NVIDIA Management Library. The PAPI “nvml” component now supports both---measuring and capping power usage---on recent NVIDIA GPU architectures (e.g. V100).
We have added power monitoring as well as PMU support for recent Intel architectures such as Cascade Lake, Kaby Lake, Skylake, and Knights Mill (KNM). Furthermore, measuring power usage for AMD Fam17h chips is now available via the “rapl” component.
For specific and detailed information on changes made for this release, see ChangeLogP570.txt for filenames or keywords of interest and change summaries, or go directly to the PAPI git repository.
Some Major Changes for PAPI 5.7 include:
Added the component PCP (Performance Co-Pilot, IBM) which allows access toPCP events via the PAPI interface.
Added support for IBM POWER9 processors.
Added power monitoring support for AMD Fam17h architectures via RAPL.
Added power capping support for NVIDIA GPUs.
Added benchmarks and testing for the “nvml” component, which allowspower-management (reporting and setting) for NVIDIA GPUs.
Re-implementation of the “cuda” component to better handle GPU events,metrics (values computed from multiple events), and NVLink events, each ofwhich have differently handling requirements and may require separate readgroupings.
Enhanced NVLink support, and added additional tests and example code forNVLink (high-speed GPU interconnect).
Extension of test suite with more advanced testing: attach_cpu_sys_validate,attach_cpu_validate, event_destroy test, openmp.F test, attach_validate test(rdpmc issue).
Other Changes include:
ARM64 configuration now works with newer Linux kernels (>=3.19).
As part of the “cuda” component, expanded CUPTI-only tests to distinguishbetween PAPI or non-PAPI issues with NVIDIA events and metrics.
Many memory leaks have been corrected. Not all, some 3rd party librarycodes still exhibit memory leaks.
Better reporting and error handling of bugs. Changes to “infiniband_umad”name reporting to distinguish it from the “infiniband” component.
Cleaning up of the source code, added documentation and test/utility files.
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, and Konstantin Stefanov.
To verify the integrity of the download, check the MD5 hash 'md5sum papi-5.7.0.tar.gz':
PAPI 5.6.0 contains a major cleanup of the source code and the build system to have consistent code structure, eliminate errors, and reduce redundancies. A number of validation tests have been added to PAPI to verify the PAPI preset events. Improvements and changes to multiple PAPI components have been made, varying from supporting new events to fixes in the component testing.
For specific and detailed information on changes made in this release, see ChangeLogP560.txt for keywords of interest or go directly to the PAPI git repository.
Validation tests: A substantial effort to add validation tests to PAPI to check and detect problems in the definition of PAPI preset events.
Event testing: Thorough cleanup of code in the C and Fortran testing to add processor support, cleanup output and make the testing behavior consistent.
CUDA component: Updated and rewritten to support CUPTI Metric API (combinations of basic events). This component now supports NVLink information through the Metric API. Updated testing for the component.
NVML component: Updated to support power management limits and improved event names. Minor other bug fixes.
RAPL component: Added support for: Intel Atom models Goldmont / Gemini_Lake / Denverton, Skylake-X / Kabylake
PAPI preset events: Many updates to the PAPI preset event mappings; Skylake X support, initial AMD fam17h, fix AMD fam16h, added more Power8 events, initial Power9 events.
Updating man and help pages for papi_avail and papi_native_avail.
Powercap component: Added test for setting power caps via PAPI powercap component.
Infiniband component: Bugfix for infiniband_umad component.
Uncore component: Updated to support recent processors.
Lmsensors component updated to support correct runtime linking, better events name, and a number of bug fixes.
Updated and fixed timer support for multiple architectures.
All components: Cleanup and standardize testing behavior in the components.
Build system: Much needed cleanup of configure and make scripts.
Support for C++ was enhanced.
Enabling optional support for reading events using perfevent-rdpmc on recent Linux kernels can speed up PAPI_read() by a factor of 5.
Pthread testing limited to avoid excessive CPU consumption on highly parallel machines.
Acknowledgements: This release is the result of efforts from many people, with special Thanks to Vince Weaver, Phil Mucci, Steve Kauffman, William Cohen, Will Schmidt, and Stephane Eranian (for libpfm4) from the internal PAPI team.
To verify the integrity of the download, the MD5 sum of papi-5.6.0.tar.gz = fdd075860b2bc4b8de8b8b5c3abf594a
PAPI 5.5.1 is now available. This is a point release intended primarily to add support for uncore performance monitoring events on Intel Xeon Phi Knights Landing (KNL). Other minor bugfixes have also been made.
For specific and detailed information on changes made in this release, see ChangeLogP551.txt for keywords of interest or go directly to the PAPI git repository.
Added Knights Landing (KNL) uncore event support via libpfm4.
PAPI 5.5 is now available. This release includes a new component that provides read and write access to the information and controls exposed via the Linux powercap interface.The PAPI powercap component supports measuring and capping power usage on recent Intel architectures.
We have added core support for Knights Landing (uncore support will be released later) as well as power monitoring via the RAPL and powercap components.
Added Knights Landing (KNL) core events and preset events.
Added Intel Broadwell/Skylake/Knights Landing RAPL support
Updated PAPI preset event support for Intel Broadwell/Skylake
Powercap component: PAPI now supports the Linux Power Capping Framework which exposes power capping devices and power measurement to user space via a sysfs virtual file system interface.
Add support for multiple flavors of POWER8 processors.
Force all processors to check event schedulability by checking that PAPI can successfully read the counters.
Support for Intel Broadwell-EP, Skylake, Goldmont, Haswell-EP inherited from libpfm4.
Shared memory object (.so) naming is made more limited so that minor updates do not break ABI compatibility.
Improve testlib error messages if a component fails to initialize.
Fix _papi_hwi_postfix_calc parsing and robustness.
Clean build rules for CUDA sampling subcomponent.
Correct IBM Power7 and Power8 computation of PAPI_L1_DCA.
Eliminate the sole use of ftests_skip subroutine.
Correct the event string names for tenth.c.
Have Fortran test support code report errors more clearly.
Cleanup output from libmsr component.
PAPI internal functions were marked as static to avoid exposing them externally.
Multiple component were fixed to make internal functions static where possible, to avoid exposing the functions as externally accessible entry points.
This release includes some new implementations of components and tools, some general enhancements, and a number of bug fixes.
libmsr component: Using LLNL's libmsr library to access Intel RAPL (Running Average Power Limit) library adds power capping abilities to PAPI.
CUDA PC sampling: A new standalone CUDA sampling tool (papi_cuda_sampling) has been added to the CUDA component (components/cuda/sampling/) and can be used as a preloader to perform PC sampling on Nvidia GPUs which support the CUPTI sampling interface (e.g. Maxwell).
ARM Cortex A53 support: Event definitions added.
Added Haswell-EP uncore support
Initial Broadwell, Skylake support
Added a general CUDA example (components/cuda/test) that uses LD_PRELOAD to attach to a running CUcontext.
Added "-check" flag to papi_avail and papi_native_avail to test counter availability/validity, unifying previous flags.
Information about the bug fixes can be found in the release notes and the ChangeLogP543.txt documents.
Last but not least, a special Thank You goes out to all our collaborators and contributors! This project would not be successful without your help!
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.