- renamed inconsistent callback tracing types
- updated HIP and Marker API data structures (resemble HSA)
- cleaned up api_args.h and api_id.h headers
- cleaned up hsa.h, hip.h, and marker.h headers
- update to use (more consistent) name changes
- update code object data structs
- ROCPROFILER_SERVICE_CALLBACK_PHASE_{LOAD,UNLOAD} equivalent to ENTER, EXIT respectively
The rsmi_topo_get_link_type() is extended to support query the CPU
and GPU link type by passing dv_ind_dst as 0xFFFFFFFF.
Change-Id: I1f212a01e8120adb70a08ab772fa9faaaecefa29
defaults to being disabled and can be enabled via a
-DENABLE_COVERAGE=ON option (#194). Introduce CI on mi100 that
leverages code coverage and publishes results along with a testing
report.
Signed-off-by: Karl W Schulz <karl.schulz@amd.com>
Revision - Addition [Impact SoC: MI200, MI300]
Note: this set of counters are important help understand the
bottleneck.
1. TCC_TAG_STALL
a. Metric: TCC_TAG_STALL/TCC_CYCLE: percentage of time TCC
tag lookup pipeline is stalled
2. TCP_TCR_TCP_STALL_CYCLES
a. Metric: TCP_TCR_TCP_STALL_CYCLES/TCP_GATE_EN1: percentage
of time TCP is stalled by TCR
Revision - Addition [Impact SoC: MI300]
3. TCC_BUBBLE:
a. Definition: Number of 128-byte read requests sent to EA
b. Revised Metric #1, TCC-EA Read BW:
ReadBW = 128 * TCC_BUBBLE
+ 64 * (TCC_EA0_RDREQ - TCC_BUBBLE - TCC_EA0_RDREQ_32B)
+ 32 * TCC_EA0_RDREQ_32B
c. Revised Metric #2: TCC_EA Read Latency
ReadLatency = TCC_EA0_RDREQ_LEVEL / (TCC_BUBBLE + TCC_EA0_RDREQ)
/* [Fineprint] More detailed arithmetic:
* ReadLatency = TCC_EA0_RDREQ_LEVEL / (#32B_req + #64B_req + #128B_req * 2)
*/
Change-Id: I0a2dfc1b64ca97023b1e8ba0f9830330b3034946
* Updates:
- [API/CLI] rsmi_dev_*_partition_set &
rsmi_dev_*_partition_reset - exposed RSMI_STATUS_BUSY for
EBUSY writes + cleaned up accidental map insertions
(maplookup[] can insert values that are not in the map,
map.at(key) fixes this potential issue)
- [API] rsmi_dev_gpu_metrics_info_get() - returns
RSMI_STATUS_NOT_SUPPORTED for unsupported metric tables
outside of 1v1/1v2/1v3
- [API] writeDevInfoStr() - exposes RSMI_STATUS_BUSY for
EBUSY write errors; kept backward compatibility
for other writes which do not care about these states
- [API] rsmi_dev_od_volt_info_get()
& rsmi_dev_od_volt_curve_regions_get() have better logging
+ Expose more details on why they are erroring
- [Utils/logs/example] Expose AMD GPU gfx target version to aid in
system troubleshooting
- [Utils] Added test methods that look at od volt
freq & regions into here - for easier access across
several tests
- [Utils] Updated getRSMIStatusString(new argument - fullstatus;
default to true for backwards compatibility)
-> true shows shortened RSMI STATUS response
- [Utils] Added splitString to cut out noisy return responses
(used in getRSMIStatusString(), when fullstatus = true)
- [Utils] Added getFileCreationDate() to expose build date
of the library - helpful for local builds or experimental builds
- [Utils] Macro cleanup
- [Example] Added a few gpu_metric checks - helpful for upcoming
updates
- [Device] SYSFS/DebugFS - now have better r/w displayed in logs
- [LOGS] Expose library build date - see above for details
- [Tests] Add more warnings/errors to test builds
- [Tests] Moved up Partition tests for ordered test runs - helped
identify issues with GPU BUSY writes
- [Tests] compute_partition_read_write - handles RSMI_STATUS_BUSY
with waits for busy status found & cleaned up how we checked
for partition changes - with RSMI responses exposed more clearly
- [Tests] perf_determinism - multi gpu now properly runs through
with full resets as needed
- [Tests] volt_freq_curv_read - better error handling with more
verbose output
Change-Id: Ie94c6abb6a9aab95c345996d3ad3843cf6734977
Signed-off-by: Charis Poag <Charis.Poag@amd.com>
The src/core/isa_capture/code_object_track.cpp file includes the
amd-dbgapi header but does not use the library (and is not configured to
use the library).
Remove the unused import.
Change-Id: Icc6c46a1f52355e9e5631395dfad1b44365bdca4
* Sample PC sampling parser library
* Fixed error message
* Added correlation_id tests. Fixed correlation_id.
* Fixed some tests.
* Added read_index to dispatch_pkt_id
* Added some comments
* Added more comments
* Moved test.cpp to a move descriptive file
* Added gfxip selection
* Added parser checks. Added GFXIP selection switch.
* Fixed dispatch_pkt_wrap with Joe's comments
* Performance improvement of 25%~100%
* Attempt at reducing overhead of dispatch bookkeeping
* Fixed cache invalidate
* Fixed error message descriptions
* Added GFX12
* Renamed files. Create C-only header.
* Formatting
* Other performance improvement
* source formatting (clang-format v11) (#63)
Co-authored-by: ApoKalipse-V <ApoKalipse-V@users.noreply.github.com>
* Added copyright
* Format-11
* Performance improvement. Added some GFX9 snap tests. Fixed hostTrap selector.
* Clang format.
* Added more gfx9 field tests
* Clang format
* Added parserv2 for pcsampling
* Added multibuffer test
* Created records processor
* Changed bFlipBuffer name
* pcs parser moved to lib/rocprofiler dir
* pcs parser compiles; one test moved
* pcs parser: tests copied from samples folder
The tests currently reside in the single .cpp.
They should be modularized and refactored to distinct unit tests
from integration test.
gfx9 test can fail sometimes. I did not have time
to deal with it.
Since Giovanni will continue working on this, I did not remove
pcs parser from the samples folder.
* cmake formatting (cmake-format) (#149)
Co-authored-by: vlaindic <vlaindic@users.noreply.github.com>
* source formatting (clang-format v11) (#150)
Co-authored-by: vlaindic <vlaindic@users.noreply.github.com>
* pcs parser: failing test removed for now
* pcs parser: fixing static errors and separating template definitions from implementation
* cmake formatting (cmake-format) (#152)
Co-authored-by: vlaindic <vlaindic@users.noreply.github.com>
* source formatting (clang-format v11) (#153)
Co-authored-by: vlaindic <vlaindic@users.noreply.github.com>
* pcs parser: fixing CI/CD errors
* source formatting (clang-format v11) (#154)
Co-authored-by: vlaindic <vlaindic@users.noreply.github.com>
* pcs parser: parsers removed from samples
---------
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: ApoKalipse-V <ApoKalipse-V@users.noreply.github.com>
Co-authored-by: vlaindic <vladimir.indic@amd.com>
Co-authored-by: vlaindic <vlaindic@users.noreply.github.com>
Unittest is failing in ASAN builds. To unblock ASAN builds, disabling the same as a workaround
The test will run in non-asan builds
Change-Id: Ib3c8d7a2c77aa83e9c6260e9b47ccb0564f789e8
* Add lib/rocprofiler-register/details/filesystem.hpp
- this provides backwards compatibility for compiler which do not have <filesystem>
- use <experimental/filesystem> when not available
* Update tests/CMakeLists.txt
- test executables link to dl library (via CMAKE_DL_LIBS)
* Update CI workflow
- include ubuntu-20.04 jobs
* Update README
- Overview
- Contributing
- Build and install
* Update workflows
- branches reflect new amd-mainline and amd-staging names instead of main and develop