Files
TheRock/rocm-systems/projects/rocprofiler-systems/external/papi/ChangeLogs/ChangeLogP720.txt
T
derek.holloway 7502bf64a4
CodeQL / Analyze (actions) (push) Canceled after 0s
CodeQL / Analyze (python) (push) Canceled after 0s
pre-commit / pre-commit (push) Canceled after 0s
Multi-Arch CI / setup (push) Canceled after 0s
Publish build_manylinux_x86_64 images / publish_build_manylinux_x86_64 (push) Canceled after 0s
Setup (Multi-Arch) / setup (push) Canceled after 0s
Multi-Arch CI / Linux::${{ fromJSON(needs.setup.outputs.linux_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubi10 image / publish_no_rocm_image_ubi10 (push) Canceled after 0s
Multi-Arch CI / Windows::${{ fromJSON(needs.setup.outputs.windows_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Multi-Arch CI / Manifest Diff (push) Canceled after 0s
TheRock Manifest Diff Report / Generate Manifest Diff Report (push) Canceled after 0s
Multi-Arch CI / CI Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_ocl_rt images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_rocgdb images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Unit Tests / Unit Tests :: ubuntu-24.04 (push) Canceled after 0s
Unit Tests / Unit Tests :: windows-2022 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_media (push) Canceled after 0s
Unit Tests / Unit Tests Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_openmpi (push) Canceled after 0s
Flatten subprojects into a single base monorepo
2026-09-02 16:34:47 -07:00

882 lines
39 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
2025-06-25 Treece Burgess <tburgess@icl.utk.edu>
* doc/Doxyfile-common, papi.spec, src/Makefile.in, src/configure.in,
src/papi.h: The version numbers for doc/Doxyfile-common, papi.spec,
src/Makefile.in, src/configure.in, and src/papi.h have been
updated.
2025-06-13 Heike Jagode <jagode@icl.utk.edu>
* RELEASENOTES.txt: Prepared Release Notes for PAPI 7.2.0 release.
2025-06-17 Treece Burgess <tburgess@gilgamesh.nic.uoregon.edu>
* src/components/rocm/tests/sample_overflow_monitoring.cpp: rocm:
Skip the test sample_overflow_monitoring.cpp.
2025-06-20 Anthony Danalis <adanalis@odyssey.nic.uoregon.edu>
* src/components/rocp_sdk/sdk_class.cpp: ROCP_SDK: Ensure env
variables are always respected.
* src/components/rocp_sdk/rocp_sdk.c: ROCP_SDK: Improve the file/dir
check to skip "." and "."
* src/components/rocp_sdk/rocp_sdk.c: ROCP_SDK: use path instead of
hsa to test for devices.
2025-06-16 Daniel Barry <dbarry@vols.utk.edu>
* .../rocm/tests/multi_thread_monitoring.cpp: rocm: fix segmentation
fault in component test On Frontier, the invocation of the exit()
call before pthread_merge() causes a segmentation fault. I remedy
this issue by only calling test_warn(), test_fail(), and
hip_test_fail() after the threads have been merged. These changes
were tested using ROCm versions 6.1.3, 6.2.0, 6.2.4, 6.3.1, and
6.4.0 with the AMD MI250X architecture on the Frontier
supercomputer.
2025-06-12 Gerald Ragghianti <ragghianti@icl.utk.edu>
* src/components/rocm/tests/Makefile,
src/components/rocm_smi/tests/Makefile: rocm/rocm_smi: Allow users
to optionally set HIPCC.
2025-06-10 Treece Burgess <tburgess@gilgamesh.nic.uoregon.edu>
* src/components/cuda/linux-cuda.c, src/components/rocm/rocm.c,
src/components/template/template.c: cuda/rocm components:
Restructure update_native_events to not call realloc on a size of
0.
2025-06-11 Treece Burgess <tburgess@icl.utk.edu>
* src/configure, src/configure.in: configure: Add a warning message
if rocm and rocp_sdk are configured together.
2025-06-04 Treece Burgess <tburgess@odyssey.nic.uoregon.edu>
* src/components/rapl/linux-rapl.c: RAPL Component: Add support in
RAPL for Intel Emerald Rapids. Note at this time the PAPI team does
not have access to a machine with an Intel Emerald Rapids CPU to
verify this addition.
2025-06-12 Treece Burgess <tburgess@pinwheel>
* src/components/rocp_sdk/tests/Makefile: rocp_sdk: In the tests
Makefile account for CPU agents on amd64.
2025-06-12 Daniel Barry <dbarry@vols.utk.edu>
* src/components/intel_gpu/README.md: intel_gpu: update environment
variable name On a system containing the Intel Arc A770 device, I
am met with the following warning: ZET_ENABLE_API_TRACING_EXP is
deprecated. Use ZE_ENABLE_TRACING_LAYER instead. The current
README states to set ZET_ENABLE_API_TRACING_EXP; however,
ZE_ENABLE_TRACING_LAYER is the correct variable to set. Setting
ZE_ENABLE_TRACING_LAYER prevents the above warning.
2025-06-10 Daniel Barry <dbarry@vols.utk.edu>
* src/components/cuda/linux-cuda.c, src/papi.c, src/papi_internal.c,
src/papi_preset.c, src/papi_vector.c, src/papi_vector.h: framework:
force init per existing policy PR #284 introduced code that always
forced the initialization of all components. However, this defeats
the purpose of having PAPI_EDELAY_INIT. The changes in this pull
request only force initialization of components when necessary.
These changes have been tested on systems containing: - NVIDIA
Hopper architecture - AMD Zen3 CPU and AMD MI250X GPU architectures
(Frontier).
2025-06-07 Treece Burgess <tburgess@icl.utk.edu>
* src/components/intel_gpu/Rules.intel_gpu: intel_gpu: Remove -DDEBUG
from Rules.intel_gpu.
2025-06-06 Treece Burgess <tburgess@icl.utk.edu>
* src/components/rocm/README.md: rocm: Update the component README.md
to account for new limitations.
2025-06-09 Treece Burgess <tburgess@icl.utk.edu>
* src/components/sysdetect/sysdetect.c: sysdetect: Add newline
characters to the SUBDBG messages.
2025-06-06 Anthony <adanalis@icl.utk.edu>
* src/components/rocm/rocm.c: ROCM: PAPI_strerror() cannot be used at
shutdown.
2025-06-05 Treece Burgess <tburgess@icl.utk.edu>
* src/papi.c: PAPI_list_events: Update functions documentation to
match the function protoype.
2025-06-04 Anthony Danalis <adanalis@icl.utk.edu>
* src/components/rocp_sdk/rocp_sdk.c: ROCP_SDK: Handle case where all
events are removed.
2025-06-03 Treece Burgess <tburgess@odyssey.nic.uoregon.edu>
* src/components/rocp_sdk/rocp_sdk.c: rocp_sdk: Remove assignment of
info->event_code and info->component_index in rocp_sdk as it is
already done in papi_internal.c.
2025-06-02 Treece Burgess <tburgess@icl.utk.edu>
* src/papi_events.csv: PAPI Presets: Update AMD Family 17h to account
for PMCx080 and PMCx081 reporting incorrect IC accesses and misses
respectively. PMCx060 unit mask 0x10 replaces PMCx081, but there is
no suitable replacement for PMCx080 therefore those instances are
removed.
2025-05-29 Treece Burgess <tburgess@icl.utk.edu>
* src/components/coretemp/linux-coretemp.c,
src/components/cuda/cupti_profiler.c,
src/components/cuda/cupti_utils.c, src/components/cuda/htable.h,
src/components/cuda/linux-cuda.c,
src/components/cuda/papi_cupti_common.c,
src/components/infiniband/linux-infiniband.c,
src/components/net/linux-net.c, src/components/rocm/htable.h,
src/components/rocm_smi/htable.h, src/components/rocm_smi/rocs.c:
Various Components: Use only PAPI memory allocation or C memory
allocation to avoid possible segmentation faults.
2025-06-02 Treece Burgess <tburgess@icl.utk.edu>
* src/components/rocm_smi/linux-rocm-smi.c,
src/components/rocp_sdk/rocp_sdk.c,
src/components/template/template.c: rocm_smi/rocp_sdk: Restructure
init_private functions to avoid setting initialized equal to 1 even
when initialization fails.
2025-05-29 Treece Burgess <tburgess@icl.utk.edu>
* src/components/infiniband/linux-infiniband.c,
src/components/nvml/linux-nvml.c,
src/components/sysdetect/sysdetect.c,
src/components/topdown/topdown.c, src/components/topdown/topdown.h:
Sysdetect/Topdown/Infiniband/NVML Components: Properly set .size in
a components vector to avoid possible Error! PAPI_library_init.
2025-05-27 Treece Burgess <tburgess@picard.nic.uoregon.edu>
* src/components/lmsensors/tests/lmsensors_read.c: lmsensors
component: Remove restriction on the events chosen to be added to
an eventset for the test lmsensors_read.c.
Thu Sep 19 23:41:22 2024 -0700 Stephane Eranian <eranian@gmail.com>
* src/libpfm4/docs/man3/libpfm_intel_knl.3,
src/libpfm4/docs/man3/libpfm_intel_knm.3,
src/libpfm4/lib/events/amd64_events_fam1ah_zen5.h,
src/libpfm4/lib/pfmlib_arm.c, src/libpfm4/lib/pfmlib_arm_armv6.c,
src/libpfm4/lib/pfmlib_arm_armv7_pmuv1.c,
src/libpfm4/lib/pfmlib_arm_armv8.c,
src/libpfm4/lib/pfmlib_arm_armv8_kunpeng_unc.c,
src/libpfm4/lib/pfmlib_arm_armv8_thunderx2_unc.c,
src/libpfm4/lib/pfmlib_arm_armv9.c,
src/libpfm4/lib/pfmlib_arm_perf_event.c,
src/libpfm4/lib/pfmlib_arm_priv.h, src/libpfm4/lib/pfmlib_common.c,
src/libpfm4/lib/pfmlib_intel_x86_perf_event.c,
src/libpfm4/lib/pfmlib_perf_event.c,
src/libpfm4/lib/pfmlib_perf_event_pmu.c,
src/libpfm4/lib/pfmlib_perf_event_priv.h,
src/libpfm4/lib/pfmlib_priv.h: Update libpfm4 Current with commit
0727e5f5561101d8c635a36e139dd7512616d49e add another perf_name for
ARM Cortex-A57 PAPI developers with NVIDIA Jetson board and ARM
Cortex-A57 reported that the Linux PMU type is "armv8_pmuv3" Add
that name as a possible name to the list of perf_name for Cortex
A57. commit 75d2e605f763f3220793c3bb52a6b6effffe4d9c fix AMD
Zen5 umasks for L2_PREFETCH_MISS_L3 and L2_FILL_RESPONSE_SRC The
umasks tables were swapped between the two events. Simplify umasks
names for L2_FILL_RESPONSE_SRC commit
c5587f9931123be6fcb6f8133497d93cab36bdcd Hotfix ARM CPU detection
due to arch mismatch This is a hotfix to avoid failure of ARM CPU
detection with the new detection code introduce by commit
15c4cd9f1f4a ("Add ARM hybrid detection"). For some processors,
the architecture revision expected by libpfm4 does not match the
revision exported by the Linux kernel via cpuinfo. For instance,
the Neoverse V2 is a V9 processor, yet cpuinfo reports arch: 8. A
few other ARM processors may exhibit the same error. The hotfix
simply skips checking the arch revision for now. commit
b2888ea7995d781d1c59d9c8714487b863774912 Cope with empty
/proc/cpuinfo file When running inside e.g. lxc containers,
/proc/cpuinfo may be empty, in which case pfmlib_getl() never
allocates a buffer, and the trailing b[i] = '\0' thus becomes
bogus. commit f09c366b45fba75f1143cb14ec8f22ad96c4c1b1 Merge:
e887d24 8ca3087 Merge /u/mousezhang/perfmon2/ branch master into
master https://sourceforge.net/p/perfmon2/libpfm4/merge-
requests/32/ commit e887d24a6c4b97b8087e5a284c79f63adaab4fc0 Add
sysfs PMU caching on initialization In order to accommodate the
growing number of PMUs active and to handle hybrid processors
better, this patch adds sysfs PMU perf_events information caching
to avoid going back to sysfs for each encoded event. The caching
stores the name of PMU, e.g., armv8_pmu3, and the perf_events type
which is then use to build the perf_events encoding. commit
ff3291fe3f6d2c280ed2e33c42842e5dc08f38df Remove references to
/sys/devices to remain compatible with upstream The PMUs will not
appear in /sys/devices for much longer. The proper way to access
PMU directories is via: /sys/bus/event_source/devices/ Where each
PMU has a symlink. It should be noted that this alternate
directory is not new. It has been there all along. Therefore it is
okay to remove all references to /sys/devices. commit
a41f8eeedf2c81232e5fa9129928edf9215bf3fc Add ARM hybrid encoding
support for perf_events This patch adds the new logic to handle
encoding of the PMU type for the Linux perf_events interface.
Hybrids are a challenge in that it is not possible to simply use
PERF_TYPE_RAW because that does not disambiguate which of the core
PMU models to attach the events to. Instead, the PMU type must be
collected from the Linux sysfs interface. But for that to happen
the library needs to know the PMU instance name assigned by
perf_events for each PMU model detected. On ARM, this is not
straightforward. The patch extends the meaning the the
pmu->perf_name string to include a comma separated list of names
instead of just one. The library then tries each name until there
is a match in /sys/bus/event_source/devices/. This accommodates
situations where the same PMU model is used in a homogeneous vs.
hybrid config. commit 15c4cd9f1f4a382ef6753a05a5d4d6c27bd449c5
Add ARM hybrid detection This patch rewrites the ARM core PMU
detection logic to handle the case of hybrid processors. On ARM,
there can be many different cores in the same SoC. Each potentially
shows up with a different implementer, part, variant. That means
just looking at the first entry in cpuinfo on Linux is not enough
to activate all supported event tables. The new code parses the
entire cpuinfo once and detects each unique core identifiers. Then,
for each core PMU table, the detection code checks against that
pre-built list of detected core models. That way up to N (currently
8) different core models can be detected. This new detection code
is provided for Linux. For other operating systems, new code must
be added to get the implementer, part, variant codes for all cores
in the system. Thanks to Vince Weaver for providing the test cases
to exercise this new code. Testing: AMD Zen5 Update (Tested on a
AMD Ryzen 9 9950X 16-Core Processor): - papi_avail - runs
successfully and matches master branch - papi_component_avail -
runs successfully and matches master branch - papi_native_avail -
runs successfully and matches master branch - papi_command_line -
runs successfully I verified that with papi_native_avail we see
the swapped umasks for L2_PREFETCH_MISS_L3 and
L2_FILL_RESPONSE_SRC. Using the swapped umasks with
papi_command_line work as expected. ARM Updates (Tested on ARM
Cortex A57, ARM Cortex A72, and ARM Neoverse V2): - papi_avail -
runs successfully on all three models and matches master branch -
papi_component_avail - runs successfully on all three models and
matches master branch - papi_native_avail - runs successfully on
all three models and matches master branch - papi_command_line -
runs successfully on all three models Note that for the ARM
updates, this includes Vince's patch to resolve Issue #364.
2025-05-23 Treece Burgess <tburgess@gilgamesh.nic.uoregon.edu>
* src/components/lmsensors/linux-lmsensors.c: lmsensors component:
Replace fprintf with SUBDBG.
2025-05-19 Treece Burgess <tburgess@gilgamesh.nic.uoregon.edu>
* src/components/cuda/linux-cuda.c: Cuda component: Initialize count
variable in function cuda_init_private.
2025-05-23 Anthony Danalis <adanalis@icl.utk.edu>
* src/components/rocp_sdk/sdk_class.cpp: ROCP_SDK: More verbose debug
messages.
* src/components/rocp_sdk/sdk_class.cpp: ROCP_SDK: Do not overwrite
library in PAPI_ROCP_SDK_LIB.
* src/components/rocp_sdk/sdk_class.cpp: ROCP_SDK: Cleanup dlopen()
error handling.
2025-05-21 Daniel Barry <dbarry@vols.utk.edu>
* src/papi_preset.c: framework: proper memory management functions
This makes the usage of memory allocation and freeing functions
consistent to prevent segmentation faults when using preset events.
These changes were tested on the ARM Neoverse-V2 and NVIDIA Hopper
architectures.
2025-05-20 Anthony <adanalis@icl.utk.edu>
* src/components/rocm_smi/tests/Makefile: ROCM_SMI: Added -pthread
flag in tests/Makefile.
2025-05-20 Treece Burgess <tburgess@tellico-master0.local>
* src/utils/print_header.c: utils/print_header.c: Move for loop
counter declaration out of for loop header.
2025-05-18 G-Ragghianti <ragghianti@icl.utk.edu>
* src/components/rocp_sdk/rocp_sdk.c: Adding multiple search path
functionality for libhsa
2025-05-16 Treece Burgess <tburgess@icl.utk.edu>
* src/components/README: Remove perfctr and perfctr_ppc documentation
from src/components README.
2025-05-13 Daniel Barry <dbarry@vols.utk.edu>
* src/utils/papi_avail.c: utils: fix compiler warnings for
papi_avail.c Revert the structure of printf() statements to those
prior to commit c214d8ca879ba5195d7cae1d8808e807ea2f812c, which
inappropriately modified certain fields. This resulted in the
following compiler warnings from GCC 13.3.0 (architecture: AMD
Ryzen 9 9950X 16-Core CPU and NVIDIA GeForce RTX 5080 GPU):
papi_avail.c: In function ‘main’: papi_avail.c:573:17: warning: too
many arguments for format [-Wformat-extra-args] 573 |
printf( "%-*s%-11s%-8s%-16s\n |Long Description|\n", maxSymLen, |
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ papi_avail.c:687:21:
warning: too many arguments for format [-Wformat-extra-args] 687 |
printf( "%-*s%-11s%-8s%-16s\n |Long Description|\n", maxCompSymLen,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
These changes have been tested on systems containing the NVIDIA
Hopper and Blackwell architectures.
* src/utils/papi_avail.c: utils: convert tabs in papi_avail.c to
spaces These changes have been tested on systems containing the
NVIDIA Hopper and Blackwell architectures.
2025-05-14 Anthony Danalis <adanalis@icl.utk.edu>
* src/papi_memory.c, src/papi_memory.h: HEADERS: __FILE__ is "const
char *", not "char *"
* src/components/rocp_sdk/sdk_class.hpp: ROCP_SDK: protect the
included papi headers from C++
2025-05-13 Treece Burgess <tburgess@icl.utk.edu>
* src/components/cuda/tests/HelloWorld.cu,
src/components/cuda/tests/HelloWorld_noCuCtx.cu,
src/components/cuda/tests/concurrent_profiling.cu,
.../cuda/tests/concurrent_profiling_noCuCtx.cu,
src/components/cuda/tests/cudaOpenMP.cu,
src/components/cuda/tests/cudaOpenMP_noCuCtx.cu,
src/components/cuda/tests/pthreads.cu,
src/components/cuda/tests/pthreads_noCuCtx.cu,
src/components/cuda/tests/runtest.sh,
src/components/cuda/tests/simpleMultiGPU.cu,
.../cuda/tests/simpleMultiGPU_noCuCtx.cu,
.../cuda/tests/test_2thr_1gpu_not_allowed.cu,
.../cuda/tests/test_multi_read_and_reset.cu: Cuda component: Update
tests to more gracefully handle multiple pass events.
2025-05-13 Anthony Danalis <adanalis@icl.utk.edu>
* src/components/rocp_sdk/README.md: ROCP_SDK: Update README with
linking limitations.
2025-05-12 Treece Burgess <tburgess@icl.utk.edu>
* src/components/appio/appio.c: Appio Component: Add a component
description, as it is missing from papi_component_avail
* src/components/rocm/roc_profiler.c: ROCm component: Bug fix for
typo in rocm_verify_no_repeated_qualifiers.
2025-05-10 Treece Burgess <tburgess@icl.utk.edu>
* src/configure, src/configure.in: Update configure.in to have a
default value for --with-debug if not provided by a user.
2025-05-06 Treece Burgess <tburgess@icl.utk.edu>
* src/configure, src/configure.in: Configure: Correctly output the
tests chosen by a user with --with-tests.
2025-05-08 Treece Burgess <tburgess@hopper1.nic.uoregon.edu>
* src/components/cuda/cupti_dispatch.c: Cuda component: Properly set
return value in cuptid_init.
2024-11-07 Daniel Barry <dbarry@vols.utk.edu>
* src/utils/papi_avail.c: utils: papi_avail extension for component
presets Enumerate presets for components as well as the CPU.
These changes have been tested on the NVIDIA Grace-Hopper
architecture.
* src/utils/papi_avail.c: utils: new modifiers for strictly CPU
presets Replace modifiers with only those that enumerate the CPU
preset events. These changes have been tested on the NVIDIA Grace-
Hopper architecture.
2024-10-31 Daniel Barry <dbarry@vols.utk.edu>
* src/utils/papi_avail.c: utils: convert tabs to spaces in
papi_avail.c This is an aesthetic change to improve the
development process. These changes have been tested on the NVIDIA
Grace-Hopper architecture.
* src/papi.c, src/papi.h, src/papi_common_strings.h,
src/papi_internal.c, src/papi_internal.h, src/papi_preset.c,
src/papi_preset.h: framework: support for component presets
Updates to framework to facilitate preset events defined by native
events of non-perf_event components. These changes have been
tested on the NVIDIA Hopper architecture.
* src/Makefile.inc, src/configure, src/configure.in,
src/papiStdEventDefs.h: config: updates for component presets
Update configure to track both the number of presets per component
and the arrays of presets belonging to each component. These
changes have been tested on the NVIDIA Hopper architecture.
2024-10-28 Daniel Barry <dbarry@vols.utk.edu>
* src/papi_events.csv: presets: support for NVIDIA Hopper and Ampere
* src/components/cuda/cupti_dispatch.c,
src/components/cuda/cupti_dispatch.h,
src/components/cuda/cupti_profiler.c, src/components/cuda/linux-
cuda.c, src/components/cuda/papi_cuda_presets.h,
src/components/cuda/papi_cuda_std_event_defs.h,
src/components/cuda/papi_cupti_common.c,
src/components/cuda/papi_cupti_common.h: cuda: updates for presets
Add functions to facilitate CUDA presets. These changes have been
tested on the NVIDIA Hopper architecture.
2024-10-31 Daniel Barry <dbarry@vols.utk.edu>
* src/papi_vector.c, src/papi_vector.h: framework: fields for
component presets Create fields in the vector struct for
components to define presets. These changes have been tested on
the NVIDIA Hopper architecture.
2024-12-20 Dandan Zhang <zhangdandan@loongson.cn>
* src/linux-context.h, src/linux-timer.c, src/mb.h: Add loongarch64
support
2025-05-06 Treece Burgess <tburgess@icl.utk.edu>
* src/components/cuda/cupti_profiler.c,
src/components/rocm/roc_profiler.c: ROCm component: Add stricter
qualifiers checks.
* src/components/cuda/cupti_profiler.c: Cuda component: Add stricter
qualifiers checks.
2025-05-05 Treece Burgess <tburgess@icl.utk.edu>
* src/components/coretemp/linux-coretemp.c: Coretemp: Enable support
for multiplexing.
2025-05-06 Anthony Danalis <adanalis@icl.utk.edu>
* src/components/rocp_sdk/sdk_class.cpp: ROCP_SDK: Improved handling
of pathological paths.
2025-05-03 Treece Burgess <tburgess@icl.utk.edu>
* src/components/cuda/cupti_profiler.c: Cuda component: Replace int
typing with long long to avoid overflow with measured values.
2025-05-06 Anthony Danalis <adanalis@icl.utk.edu>
* src/components/rocp_sdk/sdk_class.cpp,
src/components/rocp_sdk/sdk_class.hpp: ROCP_SDK: Force fail if
PAPI_ROCP_SDK_LIB is bogus.
2025-05-05 Anthony Danalis <adanalis@icl.utk.edu>
* src/components/rocp_sdk/rocp_sdk.c: ROCP_SDK: Suppress ROCprofiler-
SDK warnings.
* src/components/rocp_sdk/sdk_class.cpp: ROCP_SDK: Enable default
dlopen() paths, and cleaner error handling.
* src/components/rocp_sdk/rocp_sdk.c: ROCP_SDK: Move dlclose() to
component finalization. This avoid a conflict between the two
components rocp_sdk and rocm, if both components are configured in.
2025-04-29 Anthony Danalis <adanalis@icl.utk.edu>
* src/components/rocp_sdk/rocp_sdk.c,
src/components/rocp_sdk/sdk_class.cpp: ROCP_SDK: call
configure_device_counting_service as early as possible. When
applications are linked against libpapi.a rocprofiler_configure()
is not called on-load, so we have to explicitly initialize
everything. This PR moves some of the necessary steps earlier, so
that everything is initialized after PAPI_library_init().
2025-04-24 Treece Burgess <tburgess@icl.utk.edu>
* .../cuda/tests/test_multipass_event_fail.cu: Cuda component: Update
the error checks in the test test_multipass_event_fail to PASS even
when events that do not require multiple passes are provided.
2025-04-30 Treece Burgess <tburgess@voltar.nic.uoregon.edu>
* src/components/cuda/cupti_config.h,
src/components/cuda/cupti_dispatch.c,
src/components/cuda/cupti_dispatch.h,
src/components/cuda/cupti_events.c,
src/components/cuda/cupti_profiler.c, src/components/cuda/linux-
cuda.c, src/components/cuda/papi_cupti_common.c,
src/components/cuda/papi_cupti_common.h, src/papi.h,
src/papi_internal.c, src/utils/papi_component_avail.c: Cuda
component: Add functionality for a partially disabled Cuda
component for CCs >= 7.0 (Perfworks API).
2025-04-28 Dong Jun Woun <dwoun@histamine0.cluster>
* src/components/rocm_smi/rocs.c: rocm_smi: Add proper fan_speed
access, control, and return
2025-04-29 Treece Burgess <tburgess@athena.nic.uoregon.edu>
* src/components/cuda/cupti_profiler.c,
src/components/cuda/papi_cupti_common.c,
src/components/cuda/papi_cupti_common.h,
src/components/nvml/Rules.nvml, src/components/nvml/linux-nvml.c:
Cuda/NVML Components: Check for variation of shared objects e.g.
libcudart.so, libcudart.so.1 or libcudart (catch all).
2025-04-28 Dong Jun Woun <dwoun@histamine0.cluster>
* .../rocm_smi/tests/rocm_smi_writeTests.cpp: rocm_smi: Update
read/write test
2025-04-29 Treece-Burgess <burgesstreece@gmail.com>
* src/components/perf_event/perf_event.c: perf_event: Disable
component if perf_event_paranoid is set to 4 in
/proc/sys/kernel/perf_event_paranoid.
* src/components/cuda/Rules.cuda,
src/components/cuda/cupti_profiler.c,
src/components/cuda/cupti_utils.h,
src/components/cuda/lcuda_debug.h, src/components/cuda/linux-
cuda.c, src/components/cuda/papi_cupti_common.c,
src/components/cuda/papi_cupti_common.h,
src/components/cuda/tests/concurrent_profiling.cu,
.../cuda/tests/concurrent_profiling_noCuCtx.cu: Cuda component:
Refactor to support the MetricsEvaluator API (Cuda Versions 11.3
and greater).
2025-04-23 Anthony Danalis <adanalis@icl.utk.edu>
* src/components/rocp_sdk/Rules.rocp_sdk,
src/components/rocp_sdk/rocp_sdk.c,
src/components/rocp_sdk/tests/Makefile,
src/components/rocp_sdk/tests/advanced.c,
src/components/rocp_sdk/tests/kernel.cpp,
src/components/rocp_sdk/tests/simple.c,
src/components/rocp_sdk/tests/simple_sampling.c,
src/components/rocp_sdk/tests/two_eventsets.c: ROCP_SDK: Accomodate
machines with fewer AMD GPUs.
2025-02-26 Yoshihiro Furudera <fj5100bi@fujitsu.com>
* src/papi_events.csv: Remove some preset events for FUJITSU-MONAKA
The following preset events of FUJITSU-MONAKA are not counted
properly: PAPI_L3_DCM PAPI_L3_TCM PAPI_PRF_DM PAPI_L3_DCH
PAPI_L3_TCH Specifically, the native event that is the source of
the above preset event is counted inaccurately. So I remove these
events in papi_events.csv.
2024-09-19 Akio Kakuno <fj3333bs@aa.jp.fujitsu.com>
* src/components/sysdetect/arm_cpu_utils.c, src/papi_events.csv:
papi_events.csv: Add preset events support for FUJITSU-MONAKA This
commit adds preset events support for FUJITSU-MONAKA. Also update
arm_cpu_util.c to show the processor name in papi_hardware_avail
command.
2025-04-20 Willow Cunningham <willow.e.cunningham@gmail.com>
* src/components/topdown/README.md,
src/components/topdown/Rules.topdown,
src/components/topdown/topdown.c, src/components/topdown/topdown.h:
topdown: Use librseq to protect rdpmc on het cpus On Intel's
heterogeneous multicore processors such as Raptor Lake, the
PERF_METRICS MSR is only available on the performance cores
(p-cores). If the rdpmc instruction is executed attempting to
access the MSR while the process is on an efficient core (e-core),
a segmentation fault occurs. Previously, the topdown component has
used a simple check before every execution of the rdpmc instruction
to ensure the core the program is bound to is a p-core. However,
this can fail if the program is moved to another core between the
check and the execution of rdpmc. While rare, a worst-case scenario
test that repeatedly moves a program which is using the topdown
component from p-core to e-core at a random time saw 338
segmentation faults out of 1 million affinity switches (a 0.0338%
error rate). This is a non-zero number of segmentation faults, and
we can do better. Use librseq to protect the rdpmc instruction
with a restartable sequence (rseq). When the process is preempted
by an affinity change, the sequence immediately aborts and can be
restarted. By keeping the check that the process is on a p-core and
the rdpmc instruction itself within the critical section of the
rseq, it is guaranteed that the rdpmc instruction will never be
executed on an invalid core. The same test described in the
previous paragraph sees 0 segmentation faults.
2025-04-22 Dong Jun Woun <dwoun@picard.nic.uoregon.edu>
* src/components/cuda/cupti_profiler.c: cuda: Adding stat|device case
to code_to_info
2025-04-22 Anthony <adanalis@icl.utk.edu>
* papi.spec: .SPEC: Logic for setting rocm_smi env. variables.
2025-04-18 Daniel Barry <dbarry@vols.utk.edu>
* src/components/cuda/cupti_profiler.c,
src/components/rocm/roc_profiler.c, src/components/rocm_smi/rocs.c,
src/components/template/vendor_profiler_v1.c: components: improper
usage of PAPI_END macro PAPI_END is a macro defined in
papiStdEventDefs.h to denote the end of the list of preset macros.
However, it was being used as an error code in various components
in cases unrelated to the number of presets. This commit changes
this to a more appropriate error code: PAPI_ENOEVNT. These changes
have been tested with ROCm 6.3.1 on Frontier.
2024-08-21 Daniel Barry <dbarry@vols.utk.edu>
* src/components/rocm/roc_common.c, src/components/rocm/rocm.c: rocm:
add reason for disabled component Previously, in the absence of a
ROCm device, the rocm component did not set the string containing
the reason that the component was disabled. These changes have
been tested with ROCm 6.3.1 on Frontier and with ROCm 6.3.2 on a
system with no ROCm devices.
2025-04-18 Daniel Barry <dbarry@vols.utk.edu>
* src/components/rocm_smi/tests/Makefile: rocm_smi: updates to
Makefile The rocm_smi component tests were not getting compiled
during the build process. These updates point to the proper
location of 'hipcc' and automatically builds the component tests.
The 'square' test was removed due to the source file missing.
These changes have been tested with ROCm 6.3.1 on Frontier.
2025-04-17 Treece Burgess <tburgess@icl.utk.edu>
* src/components/cuda/cupti_profiler.c: For the stats qualifier check
for excess characters
2025-01-08 Treece Burgess <tburgess@icl.utk.edu>
* src/components/cuda/cupti_profiler.c,
src/components/rocm/roc_profiler.c: Add a check to parse event
qualifiers to make sure no excess characters are appended.
2024-12-13 Treece Burgess <tburgess@icl.utk.edu>
* src/components/rapl/linux-rapl.c: Add support for Intel Comet Lake
S/H in RAPL component.
2025-04-16 voidbert <humbertogilgomes@protonmail.com>
* src/components/perf_event_uncore/perf_event_uncore.c:
perf_event_uncore: fix compilation when CAP_PERFMON is missing
2024-11-04 Daniel Barry <dbarry@vols.utk.edu>
* src/counter_analysis_toolkit/Makefile,
src/counter_analysis_toolkit/cat_arch.h,
src/counter_analysis_toolkit/vec.c,
src/counter_analysis_toolkit/vec_fma_dp.c,
src/counter_analysis_toolkit/vec_fma_hp.c,
src/counter_analysis_toolkit/vec_fma_sp.c,
src/counter_analysis_toolkit/vec_nonfma_dp.c,
src/counter_analysis_toolkit/vec_nonfma_hp.c,
src/counter_analysis_toolkit/vec_nonfma_sp.c,
src/counter_analysis_toolkit/vec_scalar_verify.c,
src/counter_analysis_toolkit/vec_scalar_verify.h: cat: updates in
vector-FLOPs benchmarks Include kernels that perform scalar
floating-point operations. These changes have been tested on the
Intel Sapphire Rapids and IBM POWER10 architectures.
2025-01-22 William Cohen <wcohen@redhat.com>
* src/high-level/papi_hl.c, src/papi_vector.c: Eliminate conflicting
type errors generated by GCC15 Recent PAPI compiles on Fedora
rawhide (F42) fail because of "conflicting types" errors produced
by GCC15. Proper arguments types have been added to
_internal_hl_read_user_events function declaration in papi_hl.c and
the typecasting in papi_vector.c.
2024-11-09 Dong Jun Woun <dwoun@hopper1.nic.uoregon.edu>
* src/components/cuda/README_internal.md,
src/components/cuda/cupti_dispatch.c,
src/components/cuda/cupti_dispatch.h,
src/components/cuda/cupti_events.c,
src/components/cuda/cupti_events.h,
src/components/cuda/cupti_profiler.c,
src/components/cuda/cupti_profiler.h,
src/components/cuda/cupti_utils.c,
src/components/cuda/cupti_utils.h, src/components/cuda/linux-
cuda.c, src/components/cuda/tests/runtest.sh: Cuda: Statistic
Qualifier
2024-01-18 Evans, Richard Todd <richard1.evans@intel.com>
* src/components/rapl/linux-rapl.c: added Sapphire Rapids (Model 143)
support to RAPL component
2024-09-25 Willow Cunningham <willow.e.cunningham@maine.edu>
* src/papi_events.csv: papi_events.csv: Added preset events for the
Arm Cortex A72 processor. Because the A72 has the same events as
the A57, this addition is a one-liner. This work is based on a
patch by Stack Exchange user Bambo Wu, published in May 2021:
https://raspberrypi.stackexchange.com/a/112396
2025-02-21 Willow Cunningham <willow.e.cunningham@maine.edu>
* src/papi_events.csv: papi_events.csv: Second pass at arm cortex-a76
events The previous commit adding preset events for the arm cortex
a76 lacked important preset events such as L3 cache misses. Add
missing events based on arm documentation and validation tests.
All tests passing or warning on Raspberry Pi 5.
2024-10-11 Willow Cunningham <willow.e.cunningham@maine.edu>
* src/validation_tests/Makefile.recipies,
src/validation_tests/load_store_testcode.c,
src/validation_tests/papi_ld_ins.c,
src/validation_tests/papi_sr_ins.c,
src/validation_tests/testcode.h: validation_tests: Add load/store
ARM assembly testcode The previous load/store validation tests
were being optimized by the compiler in a way that caused the tests
to mispredict the amount of memory instructions that are generated.
This made it appear like the counters were incorrect, when it was
really the test being inaccurate. To fix this, add assembly
testcode for ARM to eliminate the problem of compiler
optimizations. When load/store testcode is unavailable for the
current platform, default back to the original matrix
multiplication test.
* src/papi_events.csv: papi_events: Add preset events for the Arm
Cortex-A76
2025-01-17 Willow Cunningham <willow.e.cunningham@gmail.com>
* src/components/topdown/topdown.c: topdown: simplified metrics
calculation Previously, the topdown component calculated metrics
by taking the difference of the metrics before and the metrics
after the calculated code block using Equation 1: M% = (Mb*Sb/255
- Ma*Sa/255) / (Sb - Sa) * 100 (1) where Mx are
the raw bytes of the metric before and after the calipered code
block and Sx are the slots. However, if Sa = 0 this simplifies to
M% = Mb/255 * 100
(2) Therefore it is sufficient to simply reset the PERF_METRICS
MSR and SLOTS during PAPI_start() and then use Equation 2 in
PAPI_stop, reducing the number of dangerous rdpmc calls, reducing
overhead, and simplifying the code.
2025-01-07 Willow Cunningham <willow.e.cunningham@gmail.com>
* src/components/topdown/topdown.c: topdown: relocated core type
checks To prevent programs using the topdown component on
heterogeneous processors that only supply the PERF_METRICS MSR on
some of their cores from segfaulting due to trying to read the MSR
after being moved to an unsupported core type, the topdown
component periodically checks it is on a supported core and exits
if not. Previously, this check occured at the start of PAPI_start
and PAPI_stop. After writing a script that starts a program being
calipered with the topdown component and moves it to an unsupported
core after a random amount of time, for N=100,000 tests the
heterogeneous checks failed to prevent a segmentation fault 0.08%
of the time. This patch moves the heterogeneous checks to occur
only directly before the rdpmc calls, resulting in cleaner code and
a reduced segfault prevention failure rate of 0.064%. While it is
frustrating that the failure rate is non-zero, since there appears
to be no way to tell a process to ignore changes to its affinity, I
believe there to be no perfect solution at this time.
2024-12-17 Willow Cunningham <willow.e.cunningham@gmail.com>
* src/components/topdown/topdown.c: topdown: stop including
x86intrin.h Previously, the x86intrin.h header file had been
included in order to provide definitions for _rdpmc(). However,
this has caused the github actions testing compilation of the
component on ARM systems to fail. Therefore, remove the include and
add a manual definition for _rdpmc() taken from the perf_event
component.
2024-12-11 Willow Cunningham <willow.e.cunningham@gmail.com>
* src/components/topdown/README.md, src/components/topdown/topdown.c:
topdown: Prevent segfault on heterogeneous CPUs All of Intel's
heterogeneous CPUs that support the PERF_METRICS MSR only support
it for their performance (p-core) cores. This means that if a
program that is being measured using the topdown component in PAPI
happens to be rescheduled to a e-core during its runtime, PAPI will
segfault. To fix this, add a check in _topdown_start() and
_topdown_stop() to exit gracefully if the core affinity of the
process has changed to an unsupported core type.
2024-12-04 Willow Cunningham <willow.e.cunningham@gmail.com>
* src/components/topdown/topdown.c: topdown: add arch support based
on perfmon-intel While the offical Software Developer Manual only
lists the availability of the PERF_METRICS MSR for three
architectures, we can use the 'perfmon' repository maintained by
Intel to discover what architectures support the MSR (repo here:
https://github.com/intel/perfmon). Architectures that the
repository demonstrates support the events
'PERF_METRICS.BACKEND_BOUND', 'PERF_METRICS.FRONTEND_BOUND', etc.
must support the topdown level 1 metrics of the PERF_METRICS MSR.
Similarly, the presence of the events 'PERF_METRICS.FETCH_LATENCY',
'PERF_METRICS.MEMORY_BOUND', etc. demonstrates support for topdown
L2 metrics in the PERF_METRICS MSR. By cross-referencing the
architecture names in the perfmon repository with their
DisplayFamily/DisplayModel values in Table 2-1 of volume 4 of the
IA32 SDM, we can add support for the following architectures: -
Rocket Lake - Ice Lake (icl & icx) - Tiger Lake - Sapphire Rapids -
Meteor Lake (redwood cove p-core only) - Alder Lake (golden cove
p-core only) - Granite Rapids - Everald Rapids None of these
additional architectures have been tested with the topdown
component yet. While Arrow Lake is shown to support L1 & L2 metrics
in the prefmon repository, its FamilyModel is not yet available in
the IA32 SDM so it has not been added.
2024-11-11 Willow Cunningham <willow.e.cunningham@gmail.com>
* src/components/topdown/README.md,
src/components/topdown/Rules.topdown,
src/components/topdown/tests/Makefile,
src/components/topdown/tests/topdown_L1.c,
src/components/topdown/tests/topdown_L2.c,
src/components/topdown/tests/topdown_basic.c,
src/components/topdown/topdown.c, src/components/topdown/topdown.h:
topdown: Created a component for interfacing with Intel's
PERF_METRICS MSR Add a component that collects Intel's topdown
metrics from the PERF_METRICS MSR and automatically converts the
raw metric values to user-consumable percentages. The intent of
this component is to provide an intuitive interface for accessing
topdown metrics on the supported processors. Tested on a
RaptorLake-S/HX machine (family/model/stepping 0x6/0xb7/0x1). To
add other supported architectures the switch statment in
_topdown_init_component() should be populated for the
architecture's model number, whether it supports level 2 topdown
metrics, and in the case of a heterogeneous processor what core
type it must be run on.
2024-06-28 voidbert <50591320+voidbert@users.noreply.github.com>
* .../perf_event_uncore/perf_event_uncore.c: perf_event_uncore:
consider capabilities for permissions
2025-02-27 Dong Jun Woun <dwoun@odyssey.nic.uoregon.edu>
* src/components/rocm_smi/README.md: rocm_smi: Update readme to note
two cases of root path
2025-03-27 G-Ragghianti <ragghianti@icl.utk.edu>
* src/configure, src/configure.in: Include the comp_tests in the list
of tests that are enabled by the '--with-tests' configure option
2025-03-20 Treece Burgess <tburgess@icl.utk.edu>
* .github/workflows/papi_framework_workflow.yml: Using paths-ignore
instead of paths for framework workflow
2025-03-18 Treece Burgess <tburgess@icl.utk.edu>
* .github/workflows/ci_papi_framework.sh,
.github/workflows/papi_framework_workflow.yml: Remove infiniband
from the papi_components_comprehensive CI test
2025-03-20 Anthony Danalis <adanalis@icl.utk.edu>
* src/components/rocp_sdk/tests/Makefile: ROCP_SDK: Change
tests/Makefile for spack builds.
2025-03-05 G-Ragghianti <ragghianti@icl.utk.edu>
* src/components/rocm_smi/Rules.rocm_smi: Adding location of rocm_smi
header files for newer versions of rocm