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
1473 lines
68 KiB
Plaintext
1473 lines
68 KiB
Plaintext
2023-12-19 Daniel Barry <dbarry@vols.utk.edu>
|
|
|
|
* src/counter_analysis_toolkit/flops.c: cat: fix compile-time error
|
|
On some older versions of GCC (10.3.0), not having a statement
|
|
after 'default' in a switch-case statement can yield the compiler
|
|
warning: "label at end of compound statement" These changes fix
|
|
this error and have been tested on the AMD Zen3 architecture.
|
|
|
|
2023-12-19 Giuseppe Congiu <gcongiu@icl.utk.edu>
|
|
|
|
* .../rocm/tests/hl_intercept_multi_thread_monitoring.cpp,
|
|
.../rocm/tests/hl_intercept_single_kernel_monitoring.cpp,
|
|
.../rocm/tests/hl_intercept_single_thread_monitoring.cpp,
|
|
.../rocm/tests/hl_sample_single_kernel_monitoring.cpp,
|
|
.../rocm/tests/hl_sample_single_thread_monitoring.cpp,
|
|
src/components/rocm/tests/matmul.cpp: rocm: fix warnings in the
|
|
rocm tests
|
|
* src/components/rocm/tests/Makefile: rocm: search for hipcc in
|
|
PAPI_ROCM_ROOT instead of using fixed path The path of hipcc in
|
|
the ROCm installation directory has changed. In order to be
|
|
location independent the rocm/tests Makefile should locate the
|
|
hipcc compiler in the installation directory rather than relying on
|
|
a fixed pathname.
|
|
* src/configure, src/configure.in: configure: search for rocm_smi
|
|
headers in PAPI_ROCMSMI_ROOT The configure script used to search
|
|
for rocm_smi headers in PAPI_ROCM_ROOT instead of
|
|
PAPI_ROCMSMI_ROOT. This was because the rocm headers are typically
|
|
installed under the same root. However, with rocm-6.0.0 the
|
|
rocm_smi.h causes a failure while building the sysdetect component
|
|
in PAPI (component that is enabled by default). Thus, we now look
|
|
explicitly for the rocm_smi header in PAPI_ROCMSMI_ROOT instead in
|
|
order to isolate the sysdetect & rocm components from rocm_smi.
|
|
* src/components/cuda/cupti_common.c: cuda: add cudaGetErrorString to
|
|
generate error messages cudaGetErrorString is used to the proper
|
|
disabled_message to the users whenever there is a cuda related
|
|
problem during initialization.
|
|
* src/components/cuda/cupti_common.c: cuda: refactor
|
|
get_gpu_compute_capability With exception made for trivial
|
|
functions (i.e. functions that cannot fail) every function should
|
|
return an error code for proper error handling. The
|
|
get_gpu_compute_capability does not account for error handling in
|
|
the case a cuda call failure happens.
|
|
* src/components/cuda/cupti_common.c: cuda: refactor
|
|
util_gpu_collection_kind With exception made for trivial functions
|
|
(i.e. functions that cannot fail) every function should return an
|
|
error code for proper error handling. The util_gpu_collection_kind
|
|
does not account for error handling in the case a cuda call failure
|
|
happens.
|
|
* src/components/cuda/cupti_common.c,
|
|
src/components/cuda/cupti_common.h,
|
|
src/components/cuda/cupti_profiler.c: cuda: refactor
|
|
cuptic_device_get_count With exception made for trivial functions
|
|
(i.e. functions that cannot fail) every function should return an
|
|
error code for proper error handling. The cuptic_device_get_count
|
|
does not account for error handling in the case a cuda call failure
|
|
happens.
|
|
|
|
2023-12-14 Giuseppe Congiu <gcongiu@icl.utk.edu>
|
|
|
|
* src/components/rocm/roc_profiler.c: rocm: print all masks
|
|
descriptors for events that contain them
|
|
* src/components/rocm/roc_profiler.c: rocm: add coma separator
|
|
between event descriptor and masks
|
|
|
|
2023-12-18 Florian Weimer <fweimer@redhat.com>
|
|
|
|
* src/configure, src/configure.in: configure: Fix return values in
|
|
start thread routines Thread start routines must return a void *
|
|
value, and future compilers refuse to convert integers to pointers
|
|
with just a warning (the virtualtimer probe). Without this change,
|
|
the probe always fails to compile with future compilers (such as
|
|
GCC 14). For the tls probe, return a null pointer for future-
|
|
proofing, although current and upcoming C compilers do not treat
|
|
this omission as an error. Updates commit dd11311aadbd06ab6c76d
|
|
("configure: fix tls detection").
|
|
|
|
2023-12-14 Daniel Barry <dbarry@vols.utk.edu>
|
|
|
|
* src/papi_events.csv: presets: various cache presets for SPR CPUs
|
|
Defines the presets for data cache and total cache activity in the
|
|
Intel Sapphire Rapids architecture. These changes have been tested
|
|
on the Intel Sapphire Rapids architecture using the Counter
|
|
Analysis Toolkit.
|
|
|
|
2023-12-08 Daniel Barry <dbarry@vols.utk.edu>
|
|
|
|
* src/papi_events.csv: presets: add total cache presets for Zen4 CPUs
|
|
Add preset definitions for total L2 total cache hits and misses.
|
|
These changes have been tested on the AMD Zen4 architecture using
|
|
the Counter Analysis Toolkit.
|
|
* src/papi_events.csv: presets: correction to instr cache preset Fix
|
|
mistake introduced in commit
|
|
ef1cc48846b58156995db58f53314bd4c9ec9bc0, in which the definition
|
|
for PAPI_L2_ICM can realize negative values. These changes have
|
|
been tested on the AMD Zen4 architecture using the Counter Analysis
|
|
Toolkit.
|
|
|
|
2023-12-14 Daniel Barry <dbarry@vols.utk.edu>
|
|
|
|
* src/counter_analysis_toolkit/gen_seq_dlopen.sh: cat: reduce exec
|
|
time of instr cache benchmark Skip the most time-consuming kernels
|
|
in the CAT instruction cache benchmark. These changes have been
|
|
tested on the Intel Sapphire Rapids architecture.
|
|
* src/counter_analysis_toolkit/timing_kernels.c: cat: remove unused
|
|
variable Remove declaration for an unused variable. These changes
|
|
have been tested on the Intel Sapphire Rapids architecture.
|
|
* src/counter_analysis_toolkit/dcache.c: cat: account for proper
|
|
number of buffers Adjust the logic to properly account for how
|
|
many buffer sizes shall exceed the size of the last-level cache.
|
|
These changes have been tested on the Intel Sapphire Rapids
|
|
architecture.
|
|
|
|
2023-12-13 Daniel Barry <dbarry@vols.utk.edu>
|
|
|
|
* src/counter_analysis_toolkit/dcache.c,
|
|
src/counter_analysis_toolkit/driver.h,
|
|
src/counter_analysis_toolkit/hw_desc.h,
|
|
src/counter_analysis_toolkit/main.c: cat: read values from config
|
|
file as 'long long' Since some of the buffer sizes are very large,
|
|
then the values for the cache sizes provided in the config file
|
|
should be interpreted as type 'long long.' These changes have been
|
|
tested on the Intel Sapphire Rapids architecture.
|
|
* src/counter_analysis_toolkit/dcache.c: cat: remove unnecessary
|
|
typecast Remove a typecast to 'long long,' which is unnecessary
|
|
because the variable is already the type 'long long.' These
|
|
changes have been tested on the Intel Sapphire Rapids architecture.
|
|
* src/counter_analysis_toolkit/dcache.c,
|
|
src/counter_analysis_toolkit/dcache.h: cat: use macro for LLC
|
|
factor Create a macro to more easily define the factor by which
|
|
the LLC is multiplied to attain the largest buffer size used in the
|
|
pointer chase. These changes have been tested on the Intel
|
|
Sapphire Rapids architecture.
|
|
* src/counter_analysis_toolkit/dcache.c: cat: ensure proper integer
|
|
arithmetic Append 'LL' to constant values that are added or
|
|
multiplied with 'long long' variables. These changes have been
|
|
tested on the Intel Sapphire Rapids architecture.
|
|
|
|
2023-12-12 Daniel Barry <dbarry@vols.utk.edu>
|
|
|
|
* src/counter_analysis_toolkit/dcache.c: cat: allocate the proper max
|
|
buffer size Allocate enough space for the largest buffer size used
|
|
in the pointer chase. When values in the config file are provided,
|
|
this needs to account for them. These changes have been tested on
|
|
the Intel Sapphire Rapids architecture.
|
|
* src/counter_analysis_toolkit/dcache.c: cat: fix erroneous malloc
|
|
Fix an erroneous malloc() call by changing the size of each element
|
|
to that of 'long long.' These changes have been tested on the
|
|
Intel Sapphire Rapids architecture.
|
|
* src/counter_analysis_toolkit/main.c: cat: fix memory leak Fix
|
|
memory leak by freeing dynamically allocated in the case it was not
|
|
previously freed. These changes have been tested on the Intel
|
|
Sapphire Rapids architecture.
|
|
* src/counter_analysis_toolkit/prepareArray.c: cat: clean-up comments
|
|
Remove in-line comments and fix typos in comments for readability.
|
|
|
|
2023-12-06 Daniel Barry <dbarry@vols.utk.edu>
|
|
|
|
* src/counter_analysis_toolkit/main.c: cat: place MPI_Barrier before
|
|
MPI_Finalize When MPI is used, no rank should reach MPI_Finalize
|
|
until all ranks' work has completed. These changes have been
|
|
tested on the Intel Sapphire Rapids architecture.
|
|
* src/counter_analysis_toolkit/main.c: cat: only measure latencies
|
|
once When MPI is used, only one rank needs to run the latency
|
|
tests. These changes have been tested on the Intel Sapphire Rapids
|
|
architecture.
|
|
|
|
2023-12-08 Daniel Barry <dbarry@vols.utk.edu>
|
|
|
|
* src/papi_events.csv: presets: add instr cache presets for Intel SPR
|
|
Defines the instruction cache presets for the Intel Sapphire Rapids
|
|
architecture. These changes have been tested on the Intel Sapphire
|
|
Rapids architecture using the Counter Analysis Toolkit.
|
|
* src/components/intel_gpu/README.md: intel_gpu: fix small typo Fix
|
|
small typo in the README for the Intel GPU component.
|
|
|
|
2023-12-06 Daniel Barry <dbarry@vols.utk.edu>
|
|
|
|
* src/counter_analysis_toolkit/prepareArray.c: cat: fix memory leak
|
|
Free the dynamically allocated memory at the end of the function
|
|
that sets up the pointer chain. These changes have been tested on
|
|
the AMD Zen4 architecture.
|
|
* src/counter_analysis_toolkit/dcache.c,
|
|
src/counter_analysis_toolkit/dcache.h,
|
|
src/counter_analysis_toolkit/prepareArray.c,
|
|
src/counter_analysis_toolkit/prepareArray.h,
|
|
src/counter_analysis_toolkit/timing_kernels.c,
|
|
src/counter_analysis_toolkit/timing_kernels.h: cat: store buffer
|
|
sizes as 'long long' Use 'long long' instead of 'int' for buffer
|
|
sizes to prevent overflow from occurring for large buffer sizes.
|
|
These changes have been tested on the AMD Zen4 architecture.
|
|
|
|
2023-12-04 Daniel Barry <dbarry@vols.utk.edu>
|
|
|
|
* src/counter_analysis_toolkit/timing_kernels.c: cat: properly
|
|
normalize counter values Ensure that the number of pointer chain
|
|
accesses is evenly divisible by the work macros to prevent
|
|
incorrectly normalizing event counts. These changes have been
|
|
tested on the AMD Zen4 architecture.
|
|
* src/counter_analysis_toolkit/.cat_cfg,
|
|
src/counter_analysis_toolkit/dcache.c,
|
|
src/counter_analysis_toolkit/hw_desc.h,
|
|
src/counter_analysis_toolkit/main.c: cat: fix logic for memory
|
|
hierarchy parameters Make distinction between the "L4" and "MM"
|
|
levels of the memory hierarchy. These changes have been tested on
|
|
the AMD Zen4 architecture.
|
|
* src/counter_analysis_toolkit/main.c: cat: larger default PPB value
|
|
Make the default pages-per-block (PPB) value larger to accommodate
|
|
more recent architectures. These changes have been tested on the
|
|
AMD Zen4 architecture.
|
|
* src/counter_analysis_toolkit/.cat_cfg,
|
|
src/counter_analysis_toolkit/dcache.c,
|
|
src/counter_analysis_toolkit/hw_desc.h,
|
|
src/counter_analysis_toolkit/main.c: cat: create parameter for max
|
|
PPB in config file Allow the user to change the pages-per-block
|
|
(PPB) value via the congfiguration file. These changes have been
|
|
tested on the AMD Zen4 architecture.
|
|
* src/counter_analysis_toolkit/main.c: cat: probe fewer buffers per
|
|
cache level Make the default number of buffer sizes three (per
|
|
cache level) to decrease the benchmark execution time while still
|
|
sufficiently sampling each level in the memory hierarchy. These
|
|
changes have been tested on the AMD Zen4 architecture.
|
|
|
|
2023-12-01 Daniel Barry <dbarry@vols.utk.edu>
|
|
|
|
* src/counter_analysis_toolkit/dcache.c: cat: exclude cache sizes
|
|
from tests Do not use the exact cache sizes in the sweep of buffer
|
|
sizes in the data-cache kernels because there tends to be transient
|
|
behavior at these boundaries. These changes have been tested on
|
|
the AMD Zen4 architecture.
|
|
|
|
2023-12-01 Giuseppe Congiu <gcongiu@icl.utk.edu>
|
|
|
|
* .github/workflows/ci.sh, .github/workflows/main.yml: ci: run tests
|
|
with and without PAPI debug enabled Tests should make sure real
|
|
use cases work as expected. Some tests might not working correctly
|
|
if -O0 is used as optimization level in the compiler. For example,
|
|
the ROCm runtime submits a kernel of 4 waves if the tests are built
|
|
using -O0, which makes the tests fail. Update the github test
|
|
configuration matrix to include testing without PAPI debug.
|
|
|
|
2023-11-15 Aurelian MELINTE <ame01@gmx.net>
|
|
|
|
* src/components/sysdetect/arm_cpu_utils.c: PAPI: ARM Cortexx A76
|
|
support (Raspberry Pi 5)
|
|
|
|
2023-11-29 Giuseppe Congiu <gcongiu@icl.utk.edu>
|
|
|
|
* src/components/rocm/tests/Makefile: rocm: change opt level to user
|
|
choice for tests
|
|
|
|
2023-11-16 Giuseppe Congiu <gcongiu@icl.utk.edu>
|
|
|
|
* src/components/rocm/roc_dispatch.c,
|
|
src/components/rocm/roc_dispatch.h,
|
|
src/components/rocm/roc_profiler.c,
|
|
src/components/rocm/roc_profiler.h, src/components/rocm/rocm.c:
|
|
rocm: add rocp_evt_code_to_info support This function is needed to
|
|
allow papi_native_avail to extract qualifier descriptions for the
|
|
event identifier.
|
|
|
|
2023-11-14 Giuseppe Congiu <gcongiu@icl.utk.edu>
|
|
|
|
* src/components/rocm/roc_profiler.c, src/components/rocm/rocm.c:
|
|
rocm: add qualifier support This commit contains the core changes
|
|
of this feature set. It introduces the logic necessary to handle
|
|
event identifiers in such a way that device and instance attributes
|
|
are presented to the PAPI users as qualifiers. This means that
|
|
papi_native_avail will return: Native Events in Component: rocm ==
|
|
===================================================================
|
|
========== | rocm:::SQ_WAIT_INST_LDS
|
|
| | Number of wave-cycles spent waiting for LDS
|
|
instruction issue. In | | units of 4 cycles. (per-simd,
|
|
nondeterministic) | | :device=0
|
|
| | mandatory device qualifier [devices: 0,1]
|
|
| -----------------------------------------------------------------
|
|
--------------- | rocm:::TCP_TCP_TA_DATA_STALL_CYCLES
|
|
| | TCP stalls TA data interface. Now Windowed.
|
|
| | :device=0
|
|
| | mandatory device qualifier [devices: 0,1]
|
|
| | :instance=0
|
|
| | mandatory instance qualifier in range [0 - 15]
|
|
| -----------------------------------------------------------------
|
|
--------------- The PAPI user will be able to use event names in
|
|
the same form as before (all previous tests will still work) with
|
|
the relaxation on the order of device and instance numbers.
|
|
* src/components/rocm/roc_profiler.c: rocm: add finalize_features
|
|
function This function is needed as features will be generated on
|
|
the fly for rocprofiler rather than saved in the event table.
|
|
Therefore, the feature names have to be freed when the rocprofiler
|
|
context is closed.
|
|
* src/components/rocm/roc_profiler.c: rocm: add unique metric utility
|
|
functions for intercept mode In intercept mode we are only
|
|
interested in unique events, i.e., events that have the same name
|
|
and instance (can be from different devices). This is because in
|
|
intercept mode all unique events are monitored on all devices.
|
|
Though, only the counters for the actual requested events will be
|
|
presented to the user. This is a design choice that accounts for
|
|
the fact that once set, callbacks for dispatch queues cannot be
|
|
updated (this includes the monitored events).
|
|
* src/components/rocm/roc_profiler.c: rocm: add event name to info
|
|
utility functions Add functions to extract event info from the
|
|
name (e.g., device number and instance number).
|
|
* src/components/rocm/roc_profiler.c: rocm: remove useless comments
|
|
|
|
2023-11-03 Giuseppe Congiu <gcongiu@icl.utk.edu>
|
|
|
|
* src/components/rocm/roc_profiler.c: rocm: remove useless check for
|
|
intercept code path
|
|
* src/components/rocm/roc_profiler.c: rocm: move init_callbacks call
|
|
init_callbacks should be called only once, i.e., when the
|
|
intercept_global_state is initialized. After that happens the
|
|
callbacks for the dispatch queues in all devices are already set
|
|
and cannot longer be changed.
|
|
* src/components/rocm/roc_profiler.c: rocm: remove intercept global
|
|
state macros Intercept mode macros were simple aliases to entries
|
|
in the global intercept mode state. Using explicit references to
|
|
the said data structure entries improves readability.
|
|
|
|
2023-11-21 Giuseppe Congiu <gcongiu@icl.utk.edu>
|
|
|
|
* src/components/rocm/roc_common.c, src/components/rocm/roc_common.h,
|
|
src/components/rocm/roc_profiler.c: rocm: change type of device id
|
|
from unsigned int to int
|
|
|
|
2023-11-01 Giuseppe Congiu <gcongiu@icl.utk.edu>
|
|
|
|
* src/components/rocm/roc_profiler.c: rocm: add event identifier
|
|
utility functions Add functions to create and query event id
|
|
attributes like device and instance.
|
|
|
|
2023-11-13 Giuseppe Congiu <gcongiu@icl.utk.edu>
|
|
|
|
* src/components/rocm/roc_common.c, src/components/rocm/roc_common.h:
|
|
rocm: add bitmap utility functions Add rocc_dev_set and
|
|
rocc_dev_check. The first register the presence of a device in the
|
|
passed in bitmap while the second checks the bit corresponding to
|
|
the passed in device number is set in the bitmap.
|
|
|
|
2023-11-01 Giuseppe Congiu <gcongiu@icl.utk.edu>
|
|
|
|
* src/components/rocm/roc_common.c, src/components/rocm/roc_common.h,
|
|
src/components/rocm/roc_dispatch.c,
|
|
src/components/rocm/roc_dispatch.h,
|
|
src/components/rocm/roc_profiler.c,
|
|
src/components/rocm/roc_profiler.h,
|
|
src/components/rocm/roc_profiler_config.h,
|
|
src/components/rocm/rocm.c: rocm: change the event id type to
|
|
uint64_t in backend Preparatory commit to increase the size of the
|
|
event id datatype in the component backend layer so to make it
|
|
ready for hosting event id encoded information, such as device and
|
|
instance numbers.
|
|
|
|
2023-07-21 Giuseppe Congiu <gcongiu@icl.utk.edu>
|
|
|
|
* src/components/template/README.md,
|
|
src/components/template/Rules.template,
|
|
src/components/template/template.c,
|
|
src/components/template/tests/Makefile,
|
|
src/components/template/tests/simple.c,
|
|
src/components/template/vendor_common.c,
|
|
src/components/template/vendor_common.h,
|
|
src/components/template/vendor_config.h,
|
|
src/components/template/vendor_dispatch.c,
|
|
src/components/template/vendor_dispatch.h,
|
|
src/components/template/vendor_profiler_v1.c,
|
|
src/components/template/vendor_profiler_v1.h: template: add
|
|
template for new components
|
|
|
|
2023-12-01 Anthony <adanalis@icl.utk.edu>
|
|
|
|
* src/counter_analysis_toolkit/timing_kernels.c: CAT: Initialize
|
|
variables to suppress warnings, and move them to correct scope.
|
|
|
|
2023-11-29 Daniel Barry <dbarry@vols.utk.edu>
|
|
|
|
* src/papi_events.csv: presets: add inst cache presets for Zen4 CPUs
|
|
Defines various instruction-cache related presets for Zen4. These
|
|
changes have been tested on the Zen4 architecture using the Counter
|
|
Analysis Toolkit.
|
|
|
|
2023-08-30 Giuseppe Congiu <gcongiu@icl.utk.edu>
|
|
|
|
* src/components/rocm/README.md: rocm: extend README with device
|
|
partitioning information
|
|
|
|
2023-11-01 Giuseppe Congiu <gcongiu@icl.utk.edu>
|
|
|
|
* src/components/sysdetect/tests/Makefile: sysdetect: add -ffree-form
|
|
to silence error in ARM comp
|
|
|
|
2023-11-09 Giuseppe Congiu <gcongiu@icl.utk.edu>
|
|
|
|
* src/components/rocm/README.md: rocm: add known problems with some
|
|
events to README
|
|
|
|
2023-11-17 Giuseppe Congiu <gcongiu@icl.utk.edu>
|
|
|
|
* src/components/rocm/roc_profiler.c: rocm: fix bug in intercept mode
|
|
reset function
|
|
* src/components/rocm/roc_profiler.c: rocm: fix bug introduced by
|
|
commit 4991e1614
|
|
|
|
2023-11-14 Giuseppe Congiu <gcongiu@icl.utk.edu>
|
|
|
|
* src/libpfm4/.gitignore: libpfm4: remove leftover .gitignore file
|
|
|
|
Thu Sep 28 08:01:09 2023 +0000 Clément Foyer <clement.foyer@univ-reims.fr>
|
|
|
|
* src/libpfm4/lib/pfmlib_intel_x86_arch.c: libpfm4: update to commit
|
|
535c204 Original commit: Add Intel IceLake and Intel
|
|
SapphireRapid performance counters to the event table
|
|
|
|
2023-11-10 Anthony <adanalis@icl.utk.edu>
|
|
|
|
* src/counter_analysis_toolkit/dcache.c,
|
|
src/counter_analysis_toolkit/dcache.h: CAT: Add information about
|
|
the cache sizes in the header of the output file.
|
|
|
|
2023-11-22 Daniel Barry <dbarry@vols.utk.edu>
|
|
|
|
* src/papi_events.csv: presets: add data cache presets for Zen4 CPUs
|
|
Includes various data-cache related presets for Zen4. These
|
|
changes have been tested on the Zen4 architecture using the Counter
|
|
Analysis Toolkit.
|
|
|
|
2023-11-12 Anthony <adanalis@icl.utk.edu>
|
|
|
|
* src/counter_analysis_toolkit/main.c: CAT: Add missing option in the
|
|
usage output.
|
|
|
|
2023-11-09 Anthony <adanalis@icl.utk.edu>
|
|
|
|
* src/utils/Makefile: utils: Fix bogus "Disabled" message in
|
|
papi_component_avail for the sde component. When the sde component
|
|
is initialized, in the context of an application that uses PAPI, it
|
|
looks for the availability of libsde symbols. The rationale is that
|
|
if the application is not linked against libsde, there are no SDEs
|
|
to read, so the component disables itself. Therefore,
|
|
papi_component_avail, which does not export any SDEs itself, always
|
|
reported the sde component as "Disabled". Adding the symbols to the
|
|
utility resolves this problem.
|
|
|
|
2023-10-27 Giuseppe Congiu <gcongiu@icl.utk.edu>
|
|
|
|
* src/components/rocm/roc_profiler.c: rocm: fix bug in intercept mode
|
|
path The intercept mode path keeps track of incercepted events
|
|
using the same hash table used to map event names to entries in the
|
|
native event table. The event names don't collide because intercept
|
|
mode keeps track of the base name of the event (discarding device
|
|
id and instance number), while native event table entries are
|
|
referenced as "name:device=N:instance=M". The reason is that events
|
|
are intercepted on all devices' dispatch queues regarless the
|
|
device id specified by the user (this approach follows rocprof
|
|
strategy). However, using only the event name without the instance
|
|
number will cause problems. Instances represent separate events and
|
|
should not be treated as a single event. The proposed patch uses a
|
|
separate has table for intercept mode and inserts the feature name
|
|
rather than the event base name. This means that events with more
|
|
than one instance will have an hash table key of the form
|
|
"name[M]", where M represents the instance. If the event only has
|
|
one instance the key will be "name".
|
|
|
|
2023-11-06 Giuseppe Congiu <gcongiu@icl.utk.edu>
|
|
|
|
* .github/workflows/ci.sh: ci: add --enable-warnings to github
|
|
actions
|
|
* src/configure, src/configure.in: configure: add -Wall to the
|
|
--enable-warnings configure flag
|
|
|
|
2023-10-24 Giuseppe Congiu <gcongiu@icl.utk.edu>
|
|
|
|
* src/configure, src/configure.in: configure: add --enable-warnings
|
|
flag The --enable-warnings configure flag allows for a maintainer
|
|
build mode where the compiler (gcc) enables extra warnings
|
|
(-Wextra).
|
|
|
|
2023-11-07 Giuseppe Congiu <gcongiu@icl.utk.edu>
|
|
|
|
* src/components/rocm/roc_profiler.c: rocm: refactor
|
|
get_context_counters The function already takes rocp_ctx as input
|
|
argument thus there is no need to pass events_id as input argument
|
|
as well.
|
|
* src/components/rocm/roc_profiler.c: rocm: get rid of asserts
|
|
* src/components/rocm/roc_profiler.c: rocm: set return code outside
|
|
fn_fail in init_event_table
|
|
|
|
2023-11-08 Giuseppe Congiu <gcongiu@icl.utk.edu>
|
|
|
|
* src/configure, src/configure.in: configure: fix for issue #112
|
|
|
|
2023-09-13 Josh Minor <josh.minor@arm.com>
|
|
|
|
* src/components/perf_event/pe_libpfm4_events.c: Set size of
|
|
perf_attr_struct prior to getting pfm encoding
|
|
|
|
2023-11-07 William Cohen <wcohen@redhat.com>
|
|
|
|
* src/ctests/thrspecific.c: ctests/thrspecific: Have the threads
|
|
clean up after themselves Each thread is doing doing memory
|
|
allocations via malloc. They should also free the memory once they
|
|
are done to eliminate the following coverity issues: Error:
|
|
CPPCHECK_WARNING (CWE-401): [#def10]
|
|
papi-7.0.1/src/ctests/thrspecific.c:77: error[memleak]: Memory
|
|
leak: data.data # 75| } # 76|
|
|
processing = 0; # 77|-> } # 78| } # 79|
|
|
Error: CPPCHECK_WARNING (CWE-401): [#def11]
|
|
papi-7.0.1/src/ctests/thrspecific.c:77: error[memleak]: Memory
|
|
leak: data.id # 75| } # 76|
|
|
processing = 0; # 77|-> } # 78| } # 79|
|
|
* src/components/sysdetect/linux_cpu_utils.c: sysdetect: Eliminate
|
|
file resource leak in get_vendor_id() function This fix eliminates
|
|
the following issue reported by coverity: Error: RESOURCE_LEAK
|
|
(CWE-772): [#def9]
|
|
papi-7.0.1/src/components/sysdetect/linux_cpu_utils.c:900:
|
|
alloc_fn: Storage is returned from allocation function "fopen".
|
|
papi-7.0.1/src/components/sysdetect/linux_cpu_utils.c:900:
|
|
var_assign: Assigning: "fp" = storage returned from
|
|
"fopen("/proc/cpuinfo", "r")".
|
|
papi-7.0.1/src/components/sysdetect/linux_cpu_utils.c:906:
|
|
noescape: Resource "fp" is not freed or pointed-to in
|
|
"search_cpu_info".
|
|
papi-7.0.1/src/components/sysdetect/linux_cpu_utils.c:968:
|
|
leaked_storage: Variable "fp" going out of scope leaks the storage
|
|
it points to.
|
|
* src/components/net/linux-net.c: net: Ensure that strings copied are
|
|
NULL terminated The strncpy function may not put a NULL at the end
|
|
of the destination buffer if the source string is longer than the
|
|
specified copy size. To ensure that the the copied strings are null
|
|
terminated using snprintf instead and checking its return value to
|
|
ensure that the copied string was not truncated. The snprintf
|
|
function will always include a NULL at the end of copy. This
|
|
particular fix addresses the following two coverity issues: Error:
|
|
BUFFER_SIZE (CWE-170): [#def6] papi-7.0.1/src/components/net/linux-
|
|
net.c:346: buffer_size_warning: Calling "strncpy" with a maximum
|
|
size argument of 128 bytes on destination array
|
|
"_net_native_events[i].name" of size 128 bytes might leave the
|
|
destination string unterminated. Error: BUFFER_SIZE (CWE-170):
|
|
[#def7] papi-7.0.1/src/components/net/linux-net.c:347:
|
|
buffer_size_warning: Calling "strncpy" with a maximum size argument
|
|
of 128 bytes on destination array
|
|
"_net_native_events[i].description" of size 128 bytes might leave
|
|
the destination string unterminated.
|
|
* src/components/coretemp/linux-coretemp.c: coretemp: Ensure strings
|
|
copied during initialization are NULL terminated The strncpy
|
|
function will not place a NULL character at the end of the string
|
|
if the string being copied is the same length or longer than the
|
|
destination of the strncpy function. Switching the code in the
|
|
_coretemp_init_component function to use snprintf and checking the
|
|
return value of snprintf to verify the copied string fits in the
|
|
destination.
|
|
* src/components/coretemp/linux-coretemp.c: coretemp: add closedir
|
|
operation to function exit Coverity flagged a resource leak on one
|
|
of the possibe exit path of the generateEventList function. This
|
|
patch adds the missing closedir.
|
|
|
|
2023-10-25 Daniel Barry <dbarry@vols.utk.edu>
|
|
|
|
* src/components/rocm/README.md: rocm: update README For versions of
|
|
ROCM >= 5.2.0, the ROCM library path structure is different. The
|
|
README has been updated to reflect this difference. This was
|
|
verified on the Frontier supercomputer.
|
|
|
|
2023-09-29 Giuseppe Congiu <gcongiu@icl.utk.edu>
|
|
|
|
* src/sde_lib/Makefile: sde_lib: do not build with debug symbols by
|
|
default
|
|
* src/configure, src/configure.in: configure: do not build with debug
|
|
symbols by default Remove -g being added by default in configure.
|
|
|
|
2023-10-19 Anustuv Pal <anustuv@icl.utk.edu>
|
|
|
|
* src/components/cuda/cupti_profiler.c: cuda: Fix papi_command_line
|
|
segfault when passed non-existent event name
|
|
|
|
2023-10-06 Anustuv Pal <anustuv@icl.utk.edu>
|
|
|
|
* src/components/cuda/cupti_profiler.c, src/components/cuda/linux-
|
|
cuda.c: cuda: Improve CUDA component PAPI_read() overhead, issue 85
|
|
|
|
2023-10-06 Giuseppe Congiu <gcongiu@icl.utk.edu>
|
|
|
|
* src/components/rocm/roc_profiler.c,
|
|
.../rocm/tests/sample_multi_thread_monitoring.cpp,
|
|
.../rocm/tests/sample_single_thread_monitoring.cpp: rocm: fix
|
|
sampling mode multithread issue Issue #80 was causing sampling
|
|
mode multithreading not to work. This was caused by a bug in the
|
|
rocm component that tried to monitor multiple GPU devices using the
|
|
using the same rocprofiler queue. Assigning one independent queue
|
|
per device solves the issue.
|
|
|
|
2023-10-09 Giuseppe Congiu <gcongiu@icl.utk.edu>
|
|
|
|
* src/components/rocm/roc_profiler.c: rocm: fix typo in ctx_open
|
|
|
|
2023-09-08 Giuseppe Congiu <gcongiu@icl.utk.edu>
|
|
|
|
* src/components/rocm/roc_profiler.c: rocm: add logging to component
|
|
backend
|
|
* src/components/rocm/rocm.c: rocm: add logging to component frontend
|
|
* src/components/rocm/rocm.c: rocm: funnel exits through same point
|
|
in compomnent frontend
|
|
|
|
2023-07-20 Giuseppe Congiu <gcongiu@icl.utk.edu>
|
|
|
|
* src/components/rocm/roc_common.c: rocm: refactor
|
|
rocc_dev_get_{count,id} functions
|
|
* src/components/rocm/roc_common.c, src/components/rocm/roc_common.h,
|
|
src/components/rocm/roc_profiler.c: rocm: fix warning in callback
|
|
function
|
|
|
|
2023-07-18 Giuseppe Congiu <gcongiu@icl.utk.edu>
|
|
|
|
* src/components/rocm/roc_common.c, src/components/rocm/roc_common.h,
|
|
src/components/rocm/roc_profiler.c: rocm: move thread id get
|
|
function to roc_common
|
|
|
|
2023-07-17 Giuseppe Congiu <gcongiu@icl.utk.edu>
|
|
|
|
* src/components/rocm/roc_common.c: rocm: fix warning in roc_common.c
|
|
* src/components/rocm/roc_profiler.h: rocm: remove roc_common.h from
|
|
roc_profiler.h
|
|
* src/components/rocm/roc_common.c, src/components/rocm/roc_common.h,
|
|
src/components/rocm/roc_profiler.c: rocm: move agent to id function
|
|
to roc_common
|
|
|
|
2023-07-14 Giuseppe Congiu <gcongiu@icl.utk.edu>
|
|
|
|
* src/components/rocm/roc_profiler.h: rocm: remove leftover
|
|
err_get_last function header
|
|
* src/components/rocm/roc_dispatch.c,
|
|
src/components/rocm/roc_dispatch.h,
|
|
src/components/rocm/roc_profiler.c,
|
|
src/components/rocm/roc_profiler.h, src/components/rocm/rocm.c:
|
|
rocm: rename evt_get_descr to evt_code_to_descr
|
|
|
|
2023-07-13 Giuseppe Congiu <gcongiu@icl.utk.edu>
|
|
|
|
* src/components/rocm/roc_common.h,
|
|
src/components/rocm/roc_dispatch.h,
|
|
src/components/rocm/{rocp_config.h => roc_profiler_config.h}: rocm:
|
|
rename rocp_config.h to roc_profiler_config.h
|
|
* src/components/rocm/roc_profiler.c: rocm: reformat roc_profiler.c
|
|
code
|
|
* src/components/rocm/roc_profiler.c: rocm: remove FIXME comment
|
|
* src/components/rocm/roc_profiler.c: rocm: use snprintf instead of
|
|
strncpy
|
|
* src/components/rocm/roc_common.c, src/components/rocm/roc_common.h,
|
|
src/components/rocm/roc_profiler.c: rocm: extract all device
|
|
booking and checking functions
|
|
|
|
2023-07-12 Giuseppe Congiu <gcongiu@icl.utk.edu>
|
|
|
|
* src/components/rocm/rocm.c, src/components/rocm/rocp_config.h:
|
|
rocm: move extern declarations to config header The rocm lock and
|
|
the profiling mode variables need to be shared between the front-
|
|
end and the back-end. The reason for the lock is that this has to
|
|
be initialized by the front-end which is the only one with access
|
|
to the required information. This lock design in PAPI is flawed as
|
|
it is hard to extend.
|
|
* src/components/rocm/roc_profiler.c: rocm: remove unneeded comments
|
|
* src/components/rocm/Rules.rocm, src/components/rocm/{rocc.c =>
|
|
roc_common.c}, src/components/rocm/{rocc.h => roc_common.h},
|
|
src/components/rocm/{rocd.c => roc_dispatch.c},
|
|
src/components/rocm/{rocd.h => roc_dispatch.h},
|
|
src/components/rocm/{rocp.c => roc_profiler.c},
|
|
src/components/rocm/{rocp.h => roc_profiler.h},
|
|
src/components/rocm/rocm.c: rocm: rename source files for better
|
|
readability
|
|
|
|
2023-05-17 Giuseppe Congiu <gcongiu@icl.utk.edu>
|
|
|
|
* src/components/rocm/Rules.rocm, src/components/rocm/common.h,
|
|
src/components/rocm/rocc.c, src/components/rocm/rocc.h,
|
|
src/components/rocm/rocd.c, src/components/rocm/rocd.h,
|
|
src/components/rocm/rocm.c, src/components/rocm/rocp.c,
|
|
src/components/rocm/rocp.h, src/components/rocm/rocp_config.h:
|
|
rocm: extract shared functionality Some functionality can be
|
|
shared with other profiler versions, if and when these become
|
|
available. Thus, it makes sense to extract such functionality from
|
|
the specific profiler implementation and make it available to
|
|
future profiler versions.
|
|
|
|
2023-07-12 Giuseppe Congiu <gcongiu@icl.utk.edu>
|
|
|
|
* src/components/rocm/rocd.c, src/components/rocm/rocp.c,
|
|
src/components/rocm/rocp.h, src/configure, src/configure.in: rocm:
|
|
remove ROCM_PROF_ROCPROFILER guard This guard was introduced when
|
|
rocmtools was planned instead of rocprofiler V2.
|
|
|
|
2023-05-16 Giuseppe Congiu <gcongiu@icl.utk.edu>
|
|
|
|
* src/components/rocm/rocp.c: rocm: update returned error codes
|
|
Errors associated with rocprofiler calls are assigned PAPI_EMISC,
|
|
while errors caused by unexpected user actions (e.g. starting an
|
|
eventset that is already running) are assigned PAPI_EINVAL.
|
|
Everything that is not a memory allocation failure (PAPI_ENOMEM) is
|
|
assigned the PAPI_ECMP error.
|
|
* src/components/rocm/rocp.c: rocm: remove macros handling error
|
|
management
|
|
* src/components/rocm/rocp.c: rocm: rename hsa_agent_arr_t to
|
|
device_table_t
|
|
* src/components/rocm/rocp.c: rocm: replace trailing Ptr in rocm
|
|
functions with _p
|
|
|
|
2023-09-08 G-Ragghianti <ragghianti@icl.utk.edu>
|
|
|
|
* .github/workflows/ci.sh, .github/workflows/spack.sh: changing gcc
|
|
version for rocm compatibility
|
|
|
|
2023-09-29 Giuseppe Congiu <gcongiu@icl.utk.edu>
|
|
|
|
* src/components/sysdetect/tests/Makefile: sysdetect: fix compiler
|
|
flag selection in tests
|
|
* src/configure, src/configure.in: configure: fix tls detection
|
|
Configure TLS detection tests were failing because of wrong usage
|
|
of pthread_create(). Problem was caused by wrong definition of
|
|
thread functions which require void *f(void *) instead of int
|
|
f(void *) or void f(void *).
|
|
|
|
2023-09-26 Giuseppe Congiu <gcongiu@icl.utk.edu>
|
|
|
|
* src/smoke_tests/Makefile: smoke_tests: fix Makefile Makefile file
|
|
was missing a PAPI_ROOT path and also an additional -pthread in the
|
|
linker flags.
|
|
|
|
2023-09-15 Anustuv Pal <anustuv@icl.utk.edu>
|
|
|
|
* src/components/cuda/linux-cuda.c, src/papi.h,
|
|
src/utils/papi_component_avail.c: cuda: Revert "utils:
|
|
papi_component_avail does not support cuda component counters"
|
|
This reverts commit 4f15f3d15463df5acfda26fbc6367756e1f62f03.
|
|
* src/components/lmsensors/linux-lmsensors.c: lmsensors: Replace
|
|
numerical literal 1024 with PATH_MAX macro
|
|
|
|
2023-09-05 Anustuv Pal <anustuv@icl.utk.edu>
|
|
|
|
* src/components/lmsensors/README.md, src/components/lmsensors/linux-
|
|
lmsensors.c: lmsensors: Add lib/ to explicit search path to .so
|
|
loader
|
|
|
|
2023-09-15 Anustuv Pal <anustuv@icl.utk.edu>
|
|
|
|
* src/components/coretemp/linux-coretemp.c: coretemp: Fix snprintf
|
|
warnings for gcc 10
|
|
|
|
2023-07-12 Caleb Han <calebhantech@gmail.com>
|
|
|
|
* src/sde_lib/sde_lib.hpp: sde_lib: fixed make bug
|
|
|
|
2023-09-18 Anustuv Pal <anustuv@icl.utk.edu>
|
|
|
|
* src/components/sde/tests/Minimal/Minimal_Test.c: sde: Fix
|
|
Minimal_Test.c handle pointer
|
|
|
|
2023-07-06 Giuseppe Congiu <gcongiu@icl.utk.edu>
|
|
|
|
* src/components/rocm/rocp.c: rocm: fix snprintf handling The
|
|
expected return value from snprintf is < PAPI_MAX_STR_LEN. If it is
|
|
>= PAPI_MAX_STR_LEN, the input string was longer than the output
|
|
string and this is an unexpected condition that needs to be handled
|
|
properly.
|
|
* src/components/sysdetect/nvidia_gpu.c: sysdetect: fix snprintf n
|
|
argument in CUDA backend The n argument in snprintf specifies the
|
|
length of the output string not the one of the input string.
|
|
* src/components/sysdetect/amd_gpu.c: sysdetect: fix snprintf n
|
|
argument in ROCm backend The n argument in snprintf specifies the
|
|
length of the output string not the one of the input string.
|
|
* src/components/sysdetect/nvidia_gpu.c: sysdetect: do not null
|
|
terminate manually in CUDA backend snprintf will always null
|
|
terminate the output string regarless characters from input string
|
|
being dropped (i.e. if the output string is shorter than the input
|
|
string).
|
|
* src/components/sysdetect/amd_gpu.c: sysdetect: do not null
|
|
terminate manually in ROCm backend snprintf will always null
|
|
terminate the output string regarless characters from input string
|
|
being dropped (i.e. if the output string is shorter than the input
|
|
string).
|
|
|
|
2023-07-21 Lukas Alt <lukas.alt@rwth-aachen.de>
|
|
|
|
* src/components/rapl/linux-rapl.c: rapl: support for icelake-sp
|
|
|
|
2023-07-25 Daniel Barry <dbarry@vols.utk.edu>
|
|
|
|
* src/counter_analysis_toolkit/main.c: cat: add missing entry in
|
|
usage message Add a command-line flag for the instructions
|
|
benchmark to the usage message. These changes have been tested on
|
|
the Intel Sapphire Rapids architecture.
|
|
* src/counter_analysis_toolkit/main.c,
|
|
src/counter_analysis_toolkit/params.h: cat: add option for conf
|
|
file path Add an optional command-line flag for the path to the
|
|
configuration file. This is useful on systems which do not assume
|
|
the work directory is where the .cat_cfg file is located. These
|
|
changes have been tested on the Intel Sapphire Rapids architecture.
|
|
|
|
2023-09-06 Giuseppe Congiu <gcongiu@icl.utk.edu>
|
|
|
|
* src/components/rocm_smi/rocs.c: rocm_smi: fix warning "variable
|
|
might be used uninitialized"
|
|
|
|
2023-09-01 Giuseppe Congiu <gcongiu@icl.utk.edu>
|
|
|
|
* src/components/rocm/tests/Makefile,
|
|
.../tests/hl_intercept_multi_thread_monitoring.cpp,
|
|
.../hl_intercept_single_thread_monitoring.cpp,
|
|
.../tests/hl_sample_single_thread_monitoring.cpp,
|
|
.../rocm/tests/multi_thread_monitoring.cpp,
|
|
.../rocm/tests/single_thread_monitoring.cpp: rocm: remove openmp
|
|
dependency Spack installation of PAPI + rocm component have
|
|
dependency issues with openmp caused by the AMD llvm compiler.
|
|
Because component tests are always built in PAPI this prevents
|
|
spack from installing PAPI in the system. Removing the openmp
|
|
dependency and replacing with pthreads solves the issue.
|
|
|
|
2023-09-06 Anustuv Pal <anustuv@icl.utk.edu>
|
|
|
|
* src/components/cuda/cupti_profiler.c: cuda: fix event enumeration
|
|
|
|
2023-08-30 Anustuv Pal <anustuv@icl.utk.edu>
|
|
|
|
* src/components/cuda/cupti_common.c: cuda: fix dangerous
|
|
dl_iterate_phdr operation
|
|
|
|
2023-08-15 Anustuv Pal <anustuv@icl.utk.edu>
|
|
|
|
* src/components/cuda/linux-cuda.c, src/papi.h,
|
|
src/utils/papi_component_avail.c: utils: papi_component_avail does
|
|
not support cuda component counters
|
|
|
|
2023-08-24 Anustuv Pal <anustuv@icl.utk.edu>
|
|
|
|
* src/components/cuda/tests/runtest.sh: cuda: Remove x flag from
|
|
cuda/tests/runtest.sh
|
|
|
|
2023-08-18 Giuseppe Congiu <gcongiu@icl.utk.edu>
|
|
|
|
* src/components/rocm/rocp.c: rocm: fix instanced events Some events
|
|
have multiple instances. The way the component was handling those
|
|
events was wrong, causing such events to not work. This patch fixes
|
|
the problem.
|
|
|
|
2023-08-23 Bert Wesarg <bert.wesarg@tu-dresden.de>
|
|
|
|
* src/components/rocm/rocp.c: rocm: prefer librocprofiler64.so.1
|
|
`librocprofiler64.so` was a linker script in 5.6 which was not be
|
|
able to `dlopen`ed. In 5.7 this has vanished completely, thus try
|
|
`.so.1` first.
|
|
|
|
Fri Jun 30 15:06:22 2023 -0400 William Cohen <wcohen@redhat.com>
|
|
|
|
* src/libpfm4/lib/pfmlib_amd64_perf_event.c,
|
|
src/libpfm4/lib/pfmlib_common.c,
|
|
src/libpfm4/lib/pfmlib_intel_skx_unc_cha.c,
|
|
src/libpfm4/lib/pfmlib_intel_x86.c,
|
|
src/libpfm4/lib/pfmlib_intel_x86_perf_event.c: libpfm4: update to
|
|
commit efd10fb Original commit: Correct the arguments in a
|
|
number of printf statements Adjusted the printf statements to fix
|
|
the following issues flagged by static analsysis: Error:
|
|
PRINTF_ARGS (CWE-685): [#def66]
|
|
libpfm-4.13.0/lib/pfmlib_intel_x86.c:87: extra_argument: This
|
|
argument was not used by the format string: "e->fstr". # 85|
|
|
__pfm_vbprintf(" any=%d", reg.sel_anythr); # 86| # 87|->
|
|
__pfm_vbprintf("]", e->fstr); # 88| # 89| for (i = 1 ; i
|
|
< e->count; i++) Error: PRINTF_ARGS (CWE-685): [#def11]
|
|
libpfm-4.13.0/lib/pfmlib_amd64_perf_event.c:78: missing_argument:
|
|
No argument for format specifier "%d". # 76| # 77| if
|
|
(e->count > 1) { # 78|-> DPRINT("%s: unsupported
|
|
count=%d\n", e->count); # 79| return
|
|
PFM_ERR_NOTSUPP; # 80| } Error: PRINTF_ARGS (CWE-685):
|
|
[#def14] libpfm-4.13.0/lib/pfmlib_common.c:1151: missing_argument:
|
|
No argument for format specifier "%d". # 1149| # 1150|
|
|
if (pfmlib_is_blacklisted_pmu(p)) { # 1151|->
|
|
DPRINT("%d PMU blacklisted, skipping initialization\n"); # 1152|
|
|
continue; # 1153| } Error: PRINTF_ARGS (CWE-685):
|
|
[#def15] libpfm-4.13.0/lib/pfmlib_common.c:1367: missing_argument:
|
|
No argument for format specifier "%s". # 1365|
|
|
ainfo->equiv= NULL; # 1366| if (*endptr) { #
|
|
1367|-> DPRINT("raw umask (%s) is not
|
|
a number\n"); # 1368| return
|
|
PFM_ERR_ATTR; # 1369| Error: PRINTF_ARGS (CWE-685): [#def34]
|
|
libpfm-4.13.0/lib/pfmlib_intel_skx_unc_cha.c:60: missing_argument:
|
|
No argument for format specifier "%x". # 58| f.val =
|
|
e->codes[1]; # 59| # 60|->
|
|
__pfm_vbprintf("[UNC_CHA_FILTER0=0x%"PRIx64" thread_id=%d
|
|
source=0x%x state=0x%x" # 61| "
|
|
state=0x%x]\n", # 62| f.val, Error:
|
|
PRINTF_ARGS (CWE-685): [#def83]
|
|
libpfm-4.13.0/lib/pfmlib_intel_x86_perf_event.c:100:
|
|
missing_argument: No argument for format specifier "%d". # 98| #
|
|
99| if (e->count > 2) { # 100|-> DPRINT("%s:
|
|
unsupported count=%d\n", e->count); # 101| return
|
|
PFM_ERR_NOTSUPP; # 102| }
|
|
|
|
2023-08-22 Anustuv Pal <anustuv@icl.utk.edu>
|
|
|
|
* src/components/cuda/cupti_common.c,
|
|
src/components/cuda/cupti_common.h: cuda: fix get linked shared
|
|
library link error gcc 10.0
|
|
* src/components/cuda/cupti_common.c,
|
|
src/components/cuda/cupti_common.h,
|
|
src/components/cuda/cupti_profiler.c: cuda: Load cuda shared
|
|
libraries from linked/rpath/LD_LIBRARY_PATH
|
|
|
|
2023-08-13 Anustuv Pal <anustuv@icl.utk.edu>
|
|
|
|
* src/papi.h: papi.h: Fix warnings for -Wstrict-prototypes
|
|
|
|
2023-07-25 Daniel Barry <dbarry@vols.utk.edu>
|
|
|
|
* src/papi_events.csv: add more Ice Lake FLOPs presets Since there
|
|
are enough counters available to monitor both single- and double-
|
|
precision floating-point events, PAPI_FP_OPS, PAPI_FP_INS, and
|
|
PAPI_VEC_INS are all defined. These presets have been validated
|
|
using the Counter Analysis Toolkit. These changes have been tested
|
|
on the Intel Ice Lake architecture.
|
|
|
|
2023-07-31 Giuseppe Congiu <gcongiu@icl.utk.edu>
|
|
|
|
* src/components/rocm/tests/Makefile: rocm: temporarely remove all
|
|
tests from being built Spack has issues building rocm tests
|
|
because of a broken dependency in hip (openmp). To avoid spack
|
|
failing to build PAPI altogether this commits temporarely removes
|
|
the rocm component tests from being built. A better, and permanent,
|
|
solution will follow soon.
|
|
|
|
2023-07-26 Anustuv Pal <anustuv@icl.utk.edu>
|
|
|
|
* src/components/cuda/README.md, src/components/cuda/Rules.cuda,
|
|
src/components/cuda/cupti_common.c,
|
|
src/components/cuda/cupti_common.h,
|
|
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_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/htable.h,
|
|
src/components/cuda/lcuda_debug.h, src/components/cuda/linux-
|
|
cuda.c, src/components/cuda/sampling/Makefile,
|
|
src/components/cuda/sampling/README,
|
|
src/components/cuda/sampling/activity.c,
|
|
src/components/cuda/sampling/gpu_activity.c,
|
|
src/components/cuda/sampling/path.h.in,
|
|
src/components/cuda/sampling/test/matmul.cu,
|
|
.../cuda/sampling/test/sass_source_map.cubin,
|
|
.../cuda/tests/BlackScholes/BlackScholes.cu,
|
|
.../cuda/tests/BlackScholes/BlackScholes_gold.cpp,
|
|
.../tests/BlackScholes/BlackScholes_kernel.cuh,
|
|
src/components/cuda/tests/BlackScholes/Makefile,
|
|
.../cuda/tests/BlackScholes/NsightEclipse.xml,
|
|
.../cuda/tests/BlackScholes/README_SETUP.txt,
|
|
src/components/cuda/tests/BlackScholes/readme.txt,
|
|
.../cuda/tests/BlackScholes/testAllEvents.sh,
|
|
.../cuda/tests/BlackScholes/testSomeEvents.sh,
|
|
.../cuda/tests/BlackScholes/thr_BlackScholes.cu,
|
|
src/components/cuda/tests/HelloWorld.cu,
|
|
src/components/cuda/tests/HelloWorld_CUPTI11.cu,
|
|
src/components/cuda/tests/HelloWorld_NP_Ctx.cu,
|
|
src/components/cuda/tests/HelloWorld_noCuCtx.cu,
|
|
src/components/cuda/tests/LDLIB.src,
|
|
src/components/cuda/tests/Makefile,
|
|
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/cudaTest_cupti_only.cu,
|
|
.../cuda/tests/cuda_ld_preload_example.README,
|
|
.../cuda/tests/cuda_ld_preload_example.c,
|
|
.../tests/cupti_multi_kernel_launch_monitoring.cu,
|
|
src/components/cuda/tests/gpu_work.h,
|
|
src/components/cuda/tests/likeComp_cupti_only.cu,
|
|
src/components/cuda/tests/nvlink_all.cu,
|
|
src/components/cuda/tests/nvlink_bandwidth.cu,
|
|
.../cuda/tests/nvlink_bandwidth_cupti_only.cu,
|
|
src/components/cuda/tests/pthreads.cu,
|
|
src/components/cuda/tests/pthreads_noCuCtx.cu,
|
|
src/components/cuda/tests/runAll.sh,
|
|
src/components/cuda/tests/runBW.sh,
|
|
src/components/cuda/tests/runCO.sh,
|
|
src/components/cuda/tests/runCTCO.sh,
|
|
src/components/cuda/tests/runSMG.sh,
|
|
src/components/cuda/tests/runtest.sh,
|
|
src/components/cuda/tests/simpleMultiGPU.cu,
|
|
.../cuda/tests/simpleMultiGPU_CUPTI11.cu,
|
|
.../cuda/tests/simpleMultiGPU_noCuCtx.cu,
|
|
.../cuda/tests/test_2thr_1gpu_not_allowed.cu,
|
|
.../cuda/tests/test_multi_read_and_reset.cu,
|
|
.../cuda/tests/test_multipass_event_fail.c,
|
|
.../cuda/tests/test_multipass_event_fail.cu: cuda: New cuda
|
|
component based on NVIDIA PerfWorks API.
|
|
|
|
2023-07-26 Kamil Iskra <iskra@mcs.anl.gov>
|
|
|
|
* src/components/powercap/linux-powercap.c: powercap: test counter
|
|
read permissions Check that the files inside /sys/class/powercap
|
|
/intel-rapl:<n> directories not only exist, but are readable. On
|
|
recent Linux kernels, "energy_uj" is by default readable by root
|
|
only, which is something that PAPI fails to detect, resulting in 0
|
|
being returned for that counter without any indication of a
|
|
problem.
|
|
* src/components/powercap/linux-powercap.c: powercap: ignore the psys
|
|
entry This is a bit of a workaround for newer Intel CPUs that, in
|
|
addition to the traditional "package-<n>" entries in
|
|
/sys/class/powercap/, also contain a "psys" entry that controls the
|
|
platform domain (see, e.g.,
|
|
https://lkml.kernel.org/lkml/1458516392-2130-3-git-send-email-
|
|
srinivas.pandruvada@linux.intel.com/). PAPI currently assumes that
|
|
entries starting with "intel-rapl:0" correspond to socket 0 and
|
|
"intel-rapl:1" to socket 1. With "psys" around that unfortunately
|
|
need not be the case; on at least one system relevant to DOE (I
|
|
can't post the details as it's not public yet) intel-rapl:0
|
|
corresponds to socket 0, intel-rapl:1 corresponds to *psys*, and
|
|
intel-rapl:2 corresponds to socket 1 (what a mess!). What
|
|
currently happens is that PAPI entirely misses the counters for
|
|
socket 1. This PR works around the problem by exhaustively
|
|
searching for the right "intel-rapl:<n>" directory. It preserves
|
|
the current PAPI assumption that ZONE0 events correspond to socket
|
|
0 and ZONE1 to socket 1. On the other hand, it completely ignores
|
|
the "psys" entry, while one could argue that the data it contains
|
|
should ideally be made available as well...
|
|
|
|
2023-07-23 Daniel Barry <dbarry@vols.utk.edu>
|
|
|
|
* src/papi_events.csv: add various Sapphire Rapids presets These
|
|
changes include cycles, instructions, branching, and FLOPs presets
|
|
for Intel Sapphire Rapids, validated using the Counter Analysis
|
|
Toolkit. These changes have been tested on the Intel Sapphire
|
|
Rapids architecture.
|
|
|
|
2023-07-11 G-Ragghianti <ragghianti@icl.utk.edu>
|
|
|
|
* .github/workflows/clang_analysis.sh, .github/workflows/main.yml:
|
|
added support for clang static code analysis
|
|
|
|
2023-06-12 Daniel Barry <dbarry@vols.utk.edu>
|
|
|
|
* src/counter_analysis_toolkit/Makefile, .../{vec_arch.h =>
|
|
cat_arch.h}, src/counter_analysis_toolkit/flops.c,
|
|
src/counter_analysis_toolkit/flops.h,
|
|
src/counter_analysis_toolkit/vec.c,
|
|
src/counter_analysis_toolkit/vec_scalar_verify.c,
|
|
src/counter_analysis_toolkit/vec_scalar_verify.h: cat: put GEMM
|
|
kernels back in Re-introduce the GEMM operation in each precision
|
|
to provide a kernel that executes exclusively fused multiply-add
|
|
floating-point operations. We use intrinsics to ensure that the
|
|
FMA instructions are included. These changes have been tested on
|
|
the AMD Zen4, Fujitsu A64FX, and IBM POWER9 architectures.
|
|
|
|
2023-06-28 Giuseppe Congiu <gcongiu@icl.utk.edu>
|
|
|
|
* src/components/rocm/tests/Makefile: rocm: user HIP_PATH for hipcc
|
|
compiler in tests Makefile The rocm tests assume hipcc is located
|
|
under the same root directory as the rest of rocm toolkit software.
|
|
Spack installs rocm dependencies in separate directories however,
|
|
which breaks this assumption. This patch introduces a HIP_PATH
|
|
variable that, if unset, is set automatically to PAPI_ROCM_ROOT.
|
|
Spack can use this variable to let the tests Makefile in the PAPI
|
|
rocm component know where the hipcc compiler is located.
|
|
|
|
2023-06-21 Daniel Barry <dbarry@vols.utk.edu>
|
|
|
|
* src/papi_events.csv: add cycles and instructions presets for Zen4
|
|
These changes include the 'total cycles' and 'instructions
|
|
completed' presets for Zen4, validated using the Counter Analysis
|
|
Toolkit. These changes have been tested on the AMD Zen4
|
|
architecture.
|
|
|
|
2023-06-30 Anthony Danalis <adanalis@icl.utk.edu>
|
|
|
|
* src/sde_lib/sde_lib_datastructures.c: sde_lib: Fixed bug in hash-
|
|
table deletion. If the item being deleted from the hash-table
|
|
happened to be on the head of a list and there was no other item in
|
|
the list, then the head was not being cleaned properly.
|
|
|
|
2023-06-29 Anthony Danalis <adanalis@icl.utk.edu>
|
|
|
|
* src/sde_lib/sde_lib.c: sde_lib: Allow group placeholders. If
|
|
reading a group has been requested from the application/tool layer
|
|
(though PAPI_event_name_to_code()) before the group is actually
|
|
registered by the library, we will create a placeholder for it.
|
|
This change allows the group registration to overwrite the
|
|
placeholder.
|
|
* src/sde_lib/sde_lib.c, src/sde_lib/sde_lib.h,
|
|
src/sde_lib/sde_lib_internal.h, src/sde_lib/sde_lib_misc.c:
|
|
sde_lib: Added reference counts for proper unregistering of groups.
|
|
Counters can belong in groups, even multiple groups, and groups can
|
|
recursively belong in larger groups. This means that a counter (or
|
|
group) cannot be unregistered and freed without keep track of which
|
|
groups it belong to. Now each counter has a reference counter
|
|
"ref_count" which is incremented when it's added in a group and
|
|
decremented when the counter is unregistered, or when a parent
|
|
group is unregistered.
|
|
* src/sde_lib/sde_lib_ti.c: sde_lib: Added locking to
|
|
sde_ti_read_counter() funtion. Protected reading funtion with
|
|
locks so it can't race against papi_sde_shutdown().
|
|
* src/sde_lib/sde_lib_datastructures.c,
|
|
src/sde_lib/sde_lib_internal.h: sde_lib: Added function for hash-
|
|
table serialization. This function helps abstract the hash-table
|
|
from other parts of the code, instead of directly accessing the
|
|
internal structure of the hash table from all over the place.
|
|
|
|
2023-06-28 Vince Weaver <vincent.weaver@maine.edu>
|
|
|
|
* src/components/perf_event/perf_event.c: don't use fast rdpmc
|
|
counter reads in attach or syswide scenarios With perf_event we
|
|
can use fast rdpmc reads for low-overhead counter access. This
|
|
only works in self-monitoring situations where the thread being
|
|
measured is in the same process context and same CPU as PAPI. This
|
|
means it cannot generally be used in the attach case, or if trying
|
|
to do system-wide measurements (granularity anything other than
|
|
PAPI_GRN_THR). Ideally the Linux kernel would notice the request
|
|
to use rdpmc in inappropriate circumstances and cause the mmap()
|
|
read to fail and fallback to using the read() syscall. However for
|
|
various reasons the kernel devs did not want to support this, so
|
|
it's up to PAPI to avoid using rdpmc in cases where Linux will
|
|
silently fail and allow rdpmc to return invalid counter values.
|
|
This should fix the "attach_cpu_sys_validate" test failure.
|
|
|
|
2023-06-20 Giuseppe Congiu <gcongiu@icl.utk.edu>
|
|
|
|
* .github/pull_request_template.md: PR author's checklist Add PR
|
|
author's checklist for github
|
|
|
|
2023-07-03 G-Ragghianti <ragghianti@icl.utk.edu>
|
|
|
|
* .github/workflows/main.yml, .github/workflows/spack.sh: Implemented
|
|
CI check of spack install
|
|
* src/smoke_tests/Makefile, src/smoke_tests/simple.c,
|
|
src/smoke_tests/threads.c: Adding smoke-test code for spack install
|
|
validation
|
|
|
|
2023-06-23 Giuseppe Congiu <gcongiu@icl.utk.edu>
|
|
|
|
* src/components/intel_gpu/tests/Makefile: intel_gpu: remove
|
|
libsupc++ dependency from tests makefile
|
|
* src/components/intel_gpu/Rules.intel_gpu: intel_gpu: remove
|
|
libsupc++ dependency from component makefile
|
|
|
|
2023-06-27 Giuseppe Congiu <gcongiu@icl.utk.edu>
|
|
|
|
* src/components/sysdetect/x86_cpu_utils.c: sysdetect: replace logic
|
|
AND with bitwise AND operator There was a typo in the sysdetect
|
|
code for the x86 CPU architecture that computed a bitwise AND of
|
|
two variables using the logic AND (&&) instead of the bitwise AND
|
|
(&). This patch fixes the problem.
|
|
|
|
2023-06-20 Wileam Y.Phan <wil.phan@rice.edu>
|
|
|
|
* src/components/sde/tests/Makefile: sde: fix cray and intel fortran
|
|
test flag
|
|
* src/components/sysdetect/tests/Makefile: sysdetect: fix cray and
|
|
intel fortran test flag
|
|
|
|
2023-06-20 Giuseppe Congiu <gcongiu@icl.utk.edu>
|
|
|
|
* src/components/sysdetect/Rules.sysdetect: sysdetect: add include
|
|
path for cuda headers to makefile
|
|
|
|
2023-06-18 Daniel Barry <dbarry@vols.utk.edu>
|
|
|
|
* src/components/pcp/tests/testPCP.c: pcp: skip test if component is
|
|
disabled Previously, the test would fail if the PCP component was
|
|
disabled. These changes check to see if it is disabled, and if so,
|
|
skip the test. These changes have been tested on the IBM POWER9
|
|
architecture.
|
|
|
|
2023-06-12 Daniel Barry <dbarry@vols.utk.edu>
|
|
|
|
* src/papi_events.csv: add flops presets for Zen4 These changes
|
|
include FLOPs presets for Zen4, validated using the Counter
|
|
Analysis Toolkit. These changes have been tested on the AMD Zen4
|
|
architecture.
|
|
|
|
2023-06-13 Daniel Barry <dbarry@vols.utk.edu>
|
|
|
|
* src/counter_analysis_toolkit/main.c: cat: fix bug in data cache
|
|
benchmarks Previously, there were no default values given for the
|
|
PTS_PER_LX and LX_SPLIT parameters in the ".cat_cfg" file. This
|
|
caused a floating-point exception in the data cache benchmarks.
|
|
These parameters now have valid default values, even if they are
|
|
not specified by the user in the ".cat_cfg" file. These changes
|
|
have been tested on the AMD Zen4 architecture.
|
|
|
|
2023-06-12 Daniel Barry <dbarry@vols.utk.edu>
|
|
|
|
* PAPI_FAQ.html, README.md, src/components/sde/README.md: remove
|
|
references to Bitbucket Removed some remaining links and
|
|
references to the former Bitbucket repository and replaced them
|
|
with the GitHub repository.
|
|
|
|
Wed Jun 7 00:34:30 2023 -0700 Stephane Eranian <eranian@gmail.com>
|
|
|
|
* src/libpfm4/lib/events/intel_icl_events.h,
|
|
src/libpfm4/lib/events/intel_spr_events.h: libpfm4: update to
|
|
commit 70b5b4c Original commit: commit
|
|
70b5b4c82912471b43c7ddf0d1e450c4e0ef477e add default umask for
|
|
ICL/SPR br_inst_retired/br_misp_retired Were missing a default
|
|
umask unlike SKL. That was causing errors when passing these events
|
|
with no umask. Default is umask ALL_BRANCHES
|
|
|
|
2023-06-07 Daniel Barry <dbarry@vols.utk.edu>
|
|
|
|
* src/papi_events.csv: add branch presets for Zen3 and Zen4 These
|
|
changes include all branching preset events for Zen3 and Zen4,
|
|
validated using the Counter Analysis Toolkit. For Zen3,
|
|
PAPI_BR_TKN was modified to exclude unconditional branches taken,
|
|
in order to adhere to the preset's meaning. These changes have
|
|
been tested on the AMD Zen3 and Zen4 architectures.
|
|
|
|
2023-04-07 Giuseppe Congiu <gcongiu@icl.utk.edu>
|
|
|
|
* src/genpapifdef.c: genpapifdef.c: delete file
|
|
|
|
2023-04-05 Giuseppe Congiu <gcongiu@icl.utk.edu>
|
|
|
|
* src/configure, src/configure.in, src/maint/genpapifdef.pl:
|
|
maint/genpapifdef.pl: replacement perl script for genpapifdef.c
|
|
Add genpapifdef.pl script in maint directory and hook it to
|
|
configure.
|
|
|
|
2023-06-05 G-Ragghianti <ragghianti@icl.utk.edu>
|
|
|
|
* .github/workflows/ci.sh: changed cuda requirement
|
|
|
|
2023-03-27 G-Ragghianti <ragghianti@icl.utk.edu>
|
|
|
|
* .github/workflows/ci.sh, .github/workflows/main.yml: CI: creating
|
|
CI files
|
|
|
|
2023-04-03 John Linford <jlinford@nvidia.com>
|
|
|
|
* src/papi_events.csv: Update Neoverse V2 events Add/remove PAPI
|
|
events to match available hardware counters All tests pass on
|
|
NVIDIA Grace Disclaimer: The PAPI team was not able to verify the
|
|
functionality included in this commit.
|
|
|
|
Wed May 17 00:34:35 2023 -0700 Stephane Eranian <eranian@gmail.com>
|
|
|
|
* src/libpfm4/lib/pfmlib_common.c: libpfm4: update to commit 533633a
|
|
Original commit: commit 533633adf7d00bbfcb7f2759567869d585bf97e1
|
|
remove unused variable in pfmlib_pmu_validate_encoding() The n
|
|
variable was set and incremented by result was never used, so
|
|
remove.
|
|
|
|
2023-05-16 Giuseppe Congiu <gcongiu@icl.utk.edu>
|
|
|
|
* src/Makefile.in, src/Makefile.inc, src/configure, src/configure.in:
|
|
buildsystem: fix install target in Makefile PR #464 introduced a
|
|
--disable-fortran flag that allows users to disable fortran header
|
|
and wrappers generation in case the user does not need them. Commit
|
|
40b7afc also introduces a bug as the fortran headers no longer
|
|
generated by the configure are still part of the install target.
|
|
This patch fixes the problem.
|
|
|
|
2023-05-16 Anthony Danalis <adanalis@icl.utk.edu>
|
|
|
|
* src/components/intel_gpu/tests/gpu_query_gemm.cc: intel_gpu: fix
|
|
test
|
|
|
|
2023-04-03 Giuseppe Congiu <gcongiu@icl.utk.edu>
|
|
|
|
* src/components/Makefile_comp_tests.target.in,
|
|
src/components/sde/tests/Advanced_C+FORTRAN/sde_symbols.c,
|
|
src/components/sde/tests/Makefile,
|
|
src/components/sysdetect/tests/Makefile, src/configure,
|
|
src/configure.in, src/ftests/Makefile,
|
|
src/ftests/Makefile.target.in, src/testlib/Makefile,
|
|
src/testlib/Makefile.target.in: fort: do not compile fortran code
|
|
if disabled
|
|
* src/Makefile.in, src/Makefile.inc, src/configure, src/configure.in:
|
|
fort: add --disable-fortran switch
|
|
|
|
2023-05-11 Giuseppe Congiu <gcongiu@icl.utk.edu>
|
|
|
|
* src/components/rocm_smi/rocs.c: rocm_smi: fix bug in
|
|
get_ntv_events_count Unchecked rsmi return error codes could led
|
|
to errors in the component. Make sure all rsmi error codes are
|
|
checked and handled appropriately.
|
|
* src/linux-memory.c: memory: fix bug in generic_get_memory_info
|
|
Level should not be greater than PAPI_MAX_MEM_HIERARCHY_LEVELS and
|
|
not greater, equal than.
|
|
|
|
2023-03-31 Giuseppe Congiu <gcongiu@icl.utk.edu>
|
|
|
|
* src/components/sysdetect/Rules.sysdetect,
|
|
src/components/sysdetect/amd_gpu.c: sysdetect: fix rocm and
|
|
rocm_smi dlopen logic
|
|
|
|
Tue Mar 28 16:48:58 2023 -0700 Stephane Eranian <eranian@gmail.com>
|
|
|
|
* src/libpfm4/README, src/libpfm4/config.mk,
|
|
src/libpfm4/debian/changelog, src/libpfm4/docs/Makefile,
|
|
src/libpfm4/docs/man3/libpfm_intel_emr.3,
|
|
src/libpfm4/include/perfmon/pfmlib.h, src/libpfm4/lib/Makefile,
|
|
src/libpfm4/lib/pfmlib_amd64.c, src/libpfm4/lib/pfmlib_common.c,
|
|
src/libpfm4/lib/pfmlib_intel_spr.c,
|
|
src/libpfm4/lib/pfmlib_perf_event_pmu.c,
|
|
src/libpfm4/lib/pfmlib_priv.h, src/libpfm4/tests/validate_x86.c:
|
|
libpfm4: update to commit 52632c7 Original commits: commit
|
|
52632c7ffe3b088846e86ced207e38dfe5bc4731 add Intel EmeraldRapid
|
|
core PMU support Intel EmeraldRapid shares the same PMU as Intel
|
|
SapphireRapid. Add an emr:: PMU sharing the same event table.
|
|
commit 1befa3d200cc17d5a278fcb2f597c4876c58f949 fix AMD Zen3/Zen4
|
|
detection To cover more models of Zen4. commit
|
|
8ea5575b6b10a91f3d7a079ca35d6e4eb33f379d Fix unitialized variable
|
|
in gen_tracepoint_table() Need to ensure that p was initialized at
|
|
the start of function gen_tracepoint_table otherwise on some
|
|
architectures such as s390x will get the following error when
|
|
compiling with -Werror: make[1]: Entering directory
|
|
'/root/rpmbuild/BUILD/libpfm-4.13.0/lib' cc -O2 -flto=auto -ffat-
|
|
lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall
|
|
-Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -
|
|
Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-
|
|
hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat
|
|
/redhat-annobin-cc1 -m64 -march=z14 -mtune=z15 -fasynchronous-
|
|
unwind-tables -fstack-clash-protection -g -Wall -Werror -Wextra
|
|
-Wno-unused-parameter -I. -I/root/rp
|
|
mbuild/BUILD/libpfm-4.13.0/lib/../include -DCONFIG_PFMLIB_DEBUG
|
|
-DCONFIG_PFMLIB_OS_LINUX -D_REENTRANT -I. -fvisibility=hidden
|
|
-DCONFIG_PFMLIB_A RCH_S390X -I. -c pfmlib_perf_event_pmu.c
|
|
pfmlib_perf_event_pmu.c: In function 'gen_tracepoint_table':
|
|
pfmlib_perf_event_pmu.c:434:35: error: 'p' may be used
|
|
uninitialized in this function [-Werror=maybe-uninitialized] 434 |
|
|
p->modmsk = 0; | ~~~~~~~~~~^~~ cc1: all
|
|
warnings being treated as errors commit
|
|
72709ed4237e9259348080e05ffd7750ee202506 fix active list ordering
|
|
issue In commit 363825f72afd ("maintain list of active PMUs") We
|
|
introduce an active list of PMUs to speed up lookups of events.
|
|
However, there was a bug introduced by this commit which caused
|
|
wrong encodings of certain events. For instance, on Intel x86, the
|
|
event unhalted_reference_cycles was encoded using an architected
|
|
event code instead of the model specific event code which used a
|
|
fixed counter. This was due to the fact that the ordering of the
|
|
PMU models in pfmlib_pmus[] was inverted by the way we built the
|
|
active list. The order in the table matters for lookups. the list
|
|
must maintain the same order. This patch fixes the problem by
|
|
rewriting the linked list code to support appending to the tail of
|
|
the list (instead of the head). That way the order in the table is
|
|
maintained. The patch introduces the notion of a link list node
|
|
supporting a double linked list data structure with basic accessor
|
|
functions. commit aa31ca87eb00d0f74d5566fed9a7cf62c48e236a
|
|
Revert "optimize active PMU list further" This reverts commit
|
|
b009b1263098eec925bc2dba1760c70d8a46d4b8. Because it makes it
|
|
necessary to have a lock as the head of the list may be changing at
|
|
each encoding and that would cause issues with multiple parallel
|
|
calls of the encoding entry points. This optimization will be
|
|
redone with a thread local variiable once we modify libpfm4 to
|
|
depend on libpthread. commit
|
|
80260a02ab805acfb702ee3eab9af82729f20c79 clear
|
|
pfmlib_active_pmus_list on init and terminate Must clear on
|
|
pfm_terminate() to avoid creating cycles in the list in case
|
|
pfm_initialize() is called multiple times. Also clear in
|
|
pfm_initialize() to make sure we start from a known situation.
|
|
commit 9c3d167fa6017836cb6e33004471cebd4d1bf0f6 fix active PMU
|
|
list handling for LIBPFM_ENCODE_INACTIVE=1 There was an issue
|
|
introduced by: 363825f72afd ("maintain list of active PMUs") Where
|
|
if a PMU is not detected because not exported by OS, it would not
|
|
be put on the active list when LIBPFM_ENCODE_INACTIVE=1 causing
|
|
tests/validate on some uncore PMU events. Fix this by correctly
|
|
handling the case where a PMU is not exported by the OS. Also
|
|
check that a PMU is actually active in pfmlib_terminate() and
|
|
pfm_get_pmu_by_type() again to handle LIBPFM_ENCODE_INACTIVE=1.
|
|
commit b009b1263098eec925bc2dba1760c70d8a46d4b8 optimize active
|
|
PMU list further By moving the last PMU matched to the head of the
|
|
list each time an event is found in pfmlib_parse_event(). commit
|
|
363825f72afde0e8cae2ecfd261a95d2bd0b3868 maintain list of active
|
|
PMUs Given that the list of PMUs supported per architecture keeps
|
|
growing, it is becoming expensive to iterate over each PMU looking
|
|
for a match. The macro pfmlib_for_each_pmu() is iterating over
|
|
active and inactive PMUs looking for active ones. Given that the
|
|
number of inactive PMUs is always larger than the number of active,
|
|
this was expensive. Fix this by creating a list of active PMUs and
|
|
adding a new macro pfmlib_for_each_active_pmu(). We use a oubly
|
|
linked list to allow further optimizations. As an example on a X86
|
|
build, the new iterator allowed a 10x reduction in iterations
|
|
inside pfmlib_parse_event() for a core PMU event. When
|
|
LIBPFM_ENCODE_INACTIVE is set to 1, then all PMUs supported by the
|
|
architecture are put on the active list even when they are not
|
|
detected. This simplifies the parsing loop. commit
|
|
b3e956879bc9499d5c3012f3f82ce31d2f169e5b Fix parsing of
|
|
LIBPFM_ENCODE_INACTIVE Was not taking into account the value of
|
|
the variable, unlike for LIBPFM_DEBUG and LIBPFM_VERBOSE. Passing
|
|
LIBPFM_ENCODE_INACTIVE=0 would still activate the feature. commit
|
|
158c879b9408b84ecfc78c1385c81ce25a8f2cd1 Use relative path using
|
|
openat(2) in gen_tracepoint_table() It doesn't need to traverse
|
|
the filesystem hierarchy from the root. Instead it can use relative
|
|
pathname with openat() and pass it to fdopendir(). Actually it can
|
|
introduce some kernel lock contentions when it's invoked from
|
|
multiple CPUs at the same time. commit
|
|
f200f50751557a1b9aef6120140bfb13d7cafe9f Define HAS_OPENAT for
|
|
Linux Now I think all major Linux distro provides openat()
|
|
functions in libc as it's specified in POSIX.1-2008. Maybe we
|
|
could add a config check to detect them later if somebody don't.
|
|
Also remove the old code to undefine the macro unconditionally.
|
|
commit 3d77461cb966259c51f3b3e322564187f4bef7fb Update to version
|
|
4.13.0 Various updates and AMD Zen4 support.
|
|
|
|
2023-04-25 Daniel Barry <dbarry@vols.utk.edu>
|
|
|
|
* src/counter_analysis_toolkit/.cat_cfg,
|
|
src/counter_analysis_toolkit/dcache.c,
|
|
src/counter_analysis_toolkit/hw_desc.h,
|
|
src/counter_analysis_toolkit/main.c: cat: allow user to specify
|
|
DCR/DCW sampling To provide more flexible benchmarks, we allow the
|
|
user to specify the number of measurements for each level of the
|
|
memory hierarchy. In addition, we include user-definable
|
|
parameters to accommodate the different cache levels shared by
|
|
different numbers of cores. These changes have been tested on the
|
|
AMD Zen3 and Zen4 architectures.
|
|
|
|
2023-04-17 Daniel Barry <dbarry@vols.utk.edu>
|
|
|
|
* src/counter_analysis_toolkit/dcache.c,
|
|
src/counter_analysis_toolkit/timing_kernels.c: cat: non-core events
|
|
in multithreaded benchmarks Each thread in the data-cache
|
|
benchmarks previously added events to its local event set. This
|
|
caused an error for events that are not from the perf_event (core)
|
|
component. To accommodate such events, we check for the component
|
|
to which an event belongs. If the event does not belong to the core
|
|
component, then only the thread with ID 0 adds the event to its
|
|
event set. These changes have been tested on the AMD Zen3
|
|
architecture.
|
|
|
|
2023-03-16 Daniel Barry <dbarry@vols.utk.edu>
|
|
|
|
* src/counter_analysis_toolkit/Makefile,
|
|
src/counter_analysis_toolkit/flops.c,
|
|
src/counter_analysis_toolkit/flops.h,
|
|
src/counter_analysis_toolkit/flops_aux.c,
|
|
src/counter_analysis_toolkit/flops_aux.h: cat: refactor flops
|
|
benchmark Vector-normalization and Cholesky decomposition kernels
|
|
are sufficient for characterizing addition, subtraction,
|
|
multiplication, division, and square root events. The Makefile has
|
|
been updated to use -O1 for the FLOPs benchmark to enable the
|
|
inclusion of scalar square root instructions. The output now
|
|
includes problem size and expected number of each aforementioned
|
|
operation in addition to counter readings. This refactored
|
|
benchmark has a greatly reduced execution time. These changes have
|
|
been tested on the AMD Zen3, Zen4, and Fujitsu A64FX architectures.
|
|
|
|
2023-04-06 Anthony Danalis <adanalis@icl.utk.edu>
|
|
|
|
* src/counter_analysis_toolkit/Makefile,
|
|
src/counter_analysis_toolkit/README,
|
|
src/counter_analysis_toolkit/driver.h,
|
|
src/counter_analysis_toolkit/icache.c,
|
|
src/counter_analysis_toolkit/instr.h,
|
|
src/counter_analysis_toolkit/instructions.c,
|
|
src/counter_analysis_toolkit/main.c: cat: addition of instructions
|
|
benchmarks This new benchmark includes microkernels to detect
|
|
integer, floating- point, and memory read and write instructions.
|
|
These changes have been tested on the AMD Zen4 architecture.
|
|
|
|
2023-04-06 Terry Cojean <terry.cojean@kit.edu>
|
|
|
|
* src/sde_lib/sde_lib.c: SDE: Fix shutdown for a consistent global
|
|
control struct
|
|
|
|
2023-03-29 AnustuvICL <anustuv@icl.utk.edu>
|
|
|
|
* src/components/cuda/linux-cuda.c: Fix wrong dlsym for
|
|
cuptiDisableKernelReplayMode
|
|
|
|
2023-03-20 John Linford <jlinford@nvidia.com>
|
|
|
|
* src/components/sysdetect/arm_cpu_utils.c, src/papi_events.csv: Add
|
|
minimal events for Arm Neoverse V2
|
|
* src/papi_events.csv: Add minimal events for Arm Neoverse N2
|
|
* src/components/sysdetect/arm_cpu_utils.c, src/papi_events.csv: Add
|
|
minimal events for Arm Neoverse V1
|