Commit Graph

74739 Commits

Author SHA1 Message Date
Jan Stephan 1b55de002a Fix path to roofline figure (#2718)
Signed-off-by: Jan Stephan <jan.stephan@amd.com>
Co-authored-by: Istvan Kiss <neon60@gmail.com>
2026-01-27 09:05:31 +01:00
Istvan Kiss 00132294f8 Update HIP programming guide images (#2794)
Update images of HIP  documentation
2026-01-27 09:04:36 +01:00
systems-assistant[bot] f05be9efb3 AICOMRCCL-82 AICOMRCCL-85 Switched MSCCLPP.cmake to use targets (#2774)
* Initial refactoring work, including using build targets, and settable MSCCLPP_ROOT, MSCCLPP_SOURCE, MSCCLPP_APPLY_PATCHES.

* Another large refactor of MSCCLPP cmake to make all portions targets with appropriate dependencies. This should include all paths to the final target: starting with a full mscclpp install, starting with custom mscclpp and/or json source code, or from submodules + optional patches.

* Update whitespace Findmscclpp_nccl_static.cmake

---------

Co-authored-by: Corey Derochie <corey.derochie@amd.com>
Co-authored-by: corey-derochie-amd <161367113+corey-derochie-amd@users.noreply.github.com>
2026-01-26 23:12:16 -07:00
Kian Cossettini 0eac446cb0 [rocprofiler-systems] - Implement subset of CTests into PyTests (#2666)
Convert a subset of the ctest to pytest to be used in TheRock CI.
Create a new cmake flag `ROCPROFSYS_INSTALL_TESTING` to control test suite installation.
- pytest package will be installed to share/rocprofiler-systems/tests
- all compiled examples are put in share/rocprofiler-systems/examples
- all test relevant scripts are put in share/rocprofiler-systems/tests
- see README.md in share/rocprofiler-systems/tests
2026-01-26 23:10:01 -05:00
Kapil S. Pawar 922762e9b9 Rename inspector plugin library (#2815) 2026-01-26 16:38:42 -07:00
vedithal-amd 9a3f0ef113 [rocprofiler-compute] Pin dependencies version in requirements-test.txt (#2861)
* Pin versions in requirements-test.txt

- Validated compatibility to version pins in requirements.txt
- Validated compatibility with pytest, ctest, automatic test suite
- Validated compatibility with Python 3.9, 3.10, 3.11, and 3.12.

* Remove unused mock dependency
2026-01-26 18:38:09 -05:00
marandje 5cda2a496e SWDEV-568260 - Validate sub-buffer coverage in hipMemSetAccess (#2451) 2026-01-26 23:09:46 +01:00
Jason Bonnell 1255ba2bcc rocprofiler-compute Docker Images in GHCR (#1195)
* Initial cleanup of compute workflows and skeleton of ghcr workflow

* Add containers-ci.yml, update opensuse and rhel dockerfiles

* rename id in rocprofiler-compute-ghcr.yml

* Add new line to end of containers-ci.yml

* Update action versions for rocprofiler-compute-ghcr.yml

* Switch back to SHA for action versions

* Add conda set solver classic fix to compute CI dockerfiles

* Update conda install for compute Dockerfiles

* Change opensuse version to 15.6 in containers-ci.yml

* Add fix for ubuntu noble to compute Dockerfile.ubuntu.ci

* Add default distro and version to Dockerfile.ubuntu.ci

* Updated regex for tarball version

* Remove Python3.8 from compute CI Dockerfiles

* Change RHEL 9.4 to 9, add retry for compute workflow

* Revert name change for compute rhel workflow

* update path naming

* Remove binutils-gold from Dockerfile.opensuse.ci

* Remove conda python installs from Dockerfile.ci files in compute

* Change CMake version to 3.21 in compute Dockerfile.ci files

* Update checkout actions from v4 to v5
2026-01-26 17:06:20 -05:00
Shadi Dashmiz 71856ec239 SWDEV-465366 : Deadlock during stream wait opeartion (#2652)
Signed-off-by: sdashmiz <shadi.dashmiz@amd.com>
2026-01-26 16:54:07 -05:00
Jason Bonnell ebc1980768 Add ROCM_VERSION env var, update repo URLs (#2870) 2026-01-26 16:00:16 -05:00
Sumanth Gavini 4b81912baa [SWDEV-568642] amd-smi: Add amd-smi --rocm-smi for rocm-smi compatibility mode (#2363)
Implement new --rocm-smi flag that displays GPU information in ROCm-SMI
compatible format

Signed-off-by: Sumanth Gavini <sumanth.gavini@amd.com>
2026-01-26 14:37:46 -06:00
Aravind Ravikumar cc1a7c3c82 Enable CI to work on release branches (#2571)
* Commit to enable CI for release branches

* Pin back to specific SHA in therock

---------

Co-authored-by: Aravind Ravikumar <arravikum@amd.com>
2026-01-26 14:50:05 -05:00
Stella Laurenzo e0dcba903e Add kpack runtime integration for split device code artifacts (#2622)
Integrates rocm-kpack runtime library for loading device code from
external kpack archives at HIP initialization time.

Changes:
- Add kpack_params_ optional to FatBinaryInfo for HIPK metadata
- Parse HIPK magic (0x4B504948) in digestFatBinary to detect kpack'd binaries
- Add ExtractKpackBinary() to load code objects via kpack_load_code_object()
- Wire up kpack cache lifecycle in hip_global.cpp
- Track kpack allocations for proper cleanup
- Support multi-TU binaries via bundle_index (co_index parameter)

The ROCM_KPACK_ENABLED cmake flag controls whether kpack support is compiled
in. When disabled, HIPK binaries return hipErrorNotSupported.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude <noreply@anthropic.com>
2026-01-26 09:50:42 -08:00
jamessiddeley-amd dbd26a88b4 [rocprof-compute] Fix silent failures in Continuous-Integration CI workflow (#2797)
* fix silent failures in rocprof-compute continuous-integratin CI workflow

* CDash uploads complete before the script fails
2026-01-26 12:16:17 -05:00
Xie, AlexBin e22c9b457e SWDEV-576718 - provide option to limit memory cache usage (#2810)
* SWDEV-576718 - provide option to limit memory cache usage

* SWDEV-576718 - Use MiB instead of MB in description
2026-01-26 11:35:01 -05:00
Fábio Mestre 265d0a2d2b Disable Unit_hipStreamPerThread_MultiThread (#2409)
This test is launching threads that call HIP APIs and then
immediately detaching those threads and returning from main().

This causes multiple issues because when returning from main(),
global variables are destroyed while threads might still be running which
leads to random segfaults.
2026-01-26 11:37:25 +00:00
Edgar Gabriel 72286016c6 add additional runtime checks and gfx1201 fix (#2806)
* add additional runtime checks and gfx1201 fix

This commit contains three fixes:
 - increase the max. number of files at the beginning of the run to the
   max. allowed by the system
 - check for large BAR support. WE don not abort if its not available,
   but print a warning.
 - for gfx1201, do not use uncached memory at the moment.

* Change get_arch_name to return const char*

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Fix C++ new syntax

not sure how it compiled before

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* use snprintf instead of strncpy

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* destructor cleanip

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* add const keyword

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-01-24 13:31:10 -06:00
David Galiffi 5a7a32bc12 Bump version from 1.4.0 to 1.5.0 (#2834)
Bumping the version now that 7.10 has branched.
2026-01-24 01:10:27 -05:00
Jonathan R. Madsen 5a930e9c25 [rocprofiler-sdk] Fix fmt::join build errors (#2505) 2026-01-23 22:01:45 -06:00
vedithal-amd aa5dfb98f9 MI350 Fix L2 cache to HBM read counters/metrics (#2501)
* Fix rocprofiler-sdk metrics definition

* Use TCC_EA0_RDREQ_128B instead of TCC_BUBBLE counter for L2 cache to
  HBM counters and metrics

* Update MI350 counter definitions
    * FETCH_SIZE
    * BANDWIDTH_EA

* Update MI350 metrics definitions
    * System Speed of Light, L2-Fabric Read BW
    * Roofline Plot Points, AI (Arithmetic Intensity) HBM
    * Roofline Performance Rates, HBM Bandwidth

* Remove redundant definition for gfx950 and fix BANDWIDTH_EA definition

Test HBM bandwidth metric for memcopy workload

* Add memcopy.cpp workload

* Add metric validation test suite to validate HBM Bandwidth metric for
  memcopy workload

* Move gpu_soc() to test_utils.py for better re-usability

* Update TUI analysis config

* Fix hbm bandwidth formula for mi350 in calc_ai_profile

Co-authored-by: Alysa Liu <Alysa.Liu@amd.com>
2026-01-23 15:56:24 -05:00
vedithal-amd 809eca7616 [rocprofiler-compute] Pin dependencies and fix test configuration paths, remove setuptools dependency (#2821)
* Pin dependencies and fix test paths for package layout

- Pin all dependencies in requirements.txt to specific versions to ensure stability and reproducibility.
- Update test_autogen_config.py to correctly resolve source paths for both development and installed package layouts.
- Validated compatibility with Python 3.9, 3.10, 3.11, and 3.12.

* Remove setuptools dependency since we dont support pip install and instead use cmake
2026-01-23 15:46:58 -05:00
German Andryeyev 2b1b41f4da AIRUNTIME-32 - Add try/catch around all HIP API calls (#2822) 2026-01-23 14:53:20 -05:00
SaleelK 340f3aa887 clr: Implement dynamic stream to HWq logic (#1958)
* clr: Implement dynamic stream to HW queue assignment

This change implements dynamic stream to hardware queue (HWq) mapping
with the following features:

* Queue depth heuristics with weights for optimal HWq assignment
* Make last used queue sticky for better locality
* Use pipe HWq to pipe mapping - gfx9 follows a round-robin queue to
  pipe mapping based on creation order (single process per device only,
  as pipe ID is statically assigned by runtime)
* More aggressive heuristic usage for better queue distribution
* Extend dynamic queues support for all stream priorities

Environment variables:
* DEBUG_HIP_DYNAMIC_QUEUE: 0 - disabled, 1 - Depth heuristics 2 -
  Depth+Pipe heuristics
* DEBUG_HIP_IGNORE_STREAM_PRIORITY=1: ignore priority stream creation

* clr: Clean up last_used_queue_
2026-01-23 10:40:54 -08:00
systems-assistant[bot] 89170521f5 Bump rocm-docs-core from 1.29.0 to 1.31.3 in /docs/sphinx (#2752)
Bumps [rocm-docs-core](https://github.com/ROCm/rocm-docs-core) from 1.29.0 to 1.31.3.
- [Release notes](https://github.com/ROCm/rocm-docs-core/releases)
- [Changelog](https://github.com/ROCm/rocm-docs-core/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/ROCm/rocm-docs-core/compare/v1.29.0...v1.31.3)

---
updated-dependencies:
- dependency-name: rocm-docs-core
  dependency-version: 1.31.3
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: systems-assistant[bot] <systems-assistant[bot]@users.noreply.github.com>
2026-01-23 09:59:09 -07:00
Julia Jiang 28ef3b4b9e swdev-564412 - fix seg faults in atomic operation tests with muti-gpus (#2541) 2026-01-23 11:26:27 -05:00
cfallows-amd 62dd4d114d [rocprofiler-compute] Fixes for roofline when used with iteration multiplexing (#2635)
*Added iteration_multiplex_impute_counters on pmc data- GUI dataframe did not implement this in the build_layout method previously
*Created a Workload() in profile mode post-processing for roofline html standalone plot to be generated- this will be removed once roofline plot is moved to analyze phase in future release
*Added iteration_multiplexing run parameter to roofline object init so that we can accurately parse dataframe if the option was used during profiling- this helps us to avoid reading nan values in certain dispatches that did not get imputed in calc_ai_profile
*Cleanup for unused legacy code, adjusted method parameters to assist in moving roofline plotting to analyze mode in future release
*Update iteration multiplexing data imputation algorithm to impute counters for ungrouped dispatches at the end based on the previous group. This however won't work if there are no dispatches that can be grouped (i.e. number of dispatches < number of counter buckets)

---------

Signed-off-by: Carrie Fallows <Carrie.Fallows@amd.com>
Co-authored-by: Vignesh Edithal <Vignesh.Edithal@amd.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-01-23 11:10:46 -05:00
Tao Sang fc4422d73b SWDEV-1 Fix vulkan test build failure in Windows (#2512)
Fix vulkan test build failure in Windows
2026-01-23 10:55:17 -05:00
systems-assistant[bot] 563776a949 [GDA/IONIC] only ring doorbell on active lanes (#2727)
Co-authored-by: Yiltan <yiltan@amd.com>
Co-authored-by: systems-assistant[bot] <systems-assistant[bot]@users.noreply.github.com>
Co-authored-by: JeniferC99 <150404595+JeniferC99@users.noreply.github.com>
2026-01-23 09:26:46 -05:00
Jin Jung 48347bc857 SWDEV-572679 - Fix hipGraphicsGLRegisterImage (#2475) 2026-01-23 06:25:10 -08:00
jamessiddeley-amd 69281bbcf4 [rocprofiler-compute] Threshold Based Clamping in Analyze Stage (#2565)
* add threshold clamping function + parse in parser.py (with I/O)

* implemented hybrid threshold solution

* update changelog

* removed absolute threshold hybrid approach; restored relative threshold + warn

* edited warning msg, threshold -> 1%

* update changelog

* added 2 test cases

* ran master workflow yaml config files

* added to FAQ

* Revert "ran master workflow yaml config files"

This reverts commit 75a670e14d6f1619ebbda0ec218755ccbe0d22b1.

* update FAQ

* update config hashes

* Broke down long functions into Class with sub-functions

* ruff format

* addressed comments
2026-01-23 00:54:54 -05:00
marantic-amd 7af2dba741 [rocprof-sys] Align rocpd symbols of the same counter types (#2675)
## Motivation

In order for Optiq to be able to detect that counter tracks are of the same type, we aligned `info_pmc` symbol naming across the tracks of the same type. Being able to know this will be useful for grouping and categorizing similar types of counter tracks and for setting up a consistent y-axis scale when plotting the values on charts.

## Technical Details

Replace unique and/or ordered symbol names with counter-common symbol name which will be the same for the counters of the same type, with counter track name remaining the unique identifier for that counter track. For example, the "symbol" field was "JpegAct_0" but is now "JpegAct".
2026-01-23 00:36:08 -05:00
marantic-amd 956a73c4c8 [rocprof-sys] Use fmt APIs to construct strings instead of JOIN (#2643)
## Motivation

With the introduction of the new logging system base on `spdlog` library, opportunity shows to replace `timemory` dependent JOIN implementation with `fmt` library `format` and `join` APIs, which are shipped as a part of `spdlog` lib

## Technical Details

Use `fmt` provided APIs to properly format and package strings.
2026-01-23 00:34:58 -05:00
habajpai-amd 3318c540ea fix roctx range markers not paired correctly in rocpd output (#2793)
## Motivation

Fix roctx range markers (Push/Pop, Start/Stop) not being displayed correctly in rocpd output. The Visualizer was showing only Stop/Pop events as instant markers instead of proper duration ranges with labels, while Perfetto output displayed them correctly.

## Technical Details

In `tool_tracing_callback_stop()`, the rocpd/database output was using `user_data->value` (timestamp of the Pop/Stop event) instead of `begin_ts` (corrected timestamp from the corresponding Push/Start event) when calling `cache_region()`.

The Perfetto output already used `begin_ts` correctly (line 818). This change aligns the rocpd output with the Perfetto behavior by using `begin_ts` instead of `user_data->value` (line 887).

Updated rocpd validation rules
2026-01-22 23:47:43 -05:00
Sajina PK 6cf9b217d3 Update CHANGELOG.md (#2813)
Modified the release version for the XGMI/PCIe feature.
2026-01-22 17:48:30 -05:00
Nilesh M Negi cba2e3de2f Add rccl-reviewers to CODEOWNERS file (#2816)
* Add rccl-reviewers to CODEOWNERS file
* Re-order lines based on copilot suggestion
2026-01-22 16:29:48 -05:00
yugang-amd 576fbaef74 Fix link for global enum and defines (#2802) 2026-01-22 16:17:25 -05:00
habajpai-amd 7e74d163fd [rocprof-sys] Fix RCCL comm_data counters in rocpd output (#2607)
## Motivation

<!-- Explain the purpose of this PR and the goals it aims to achieve. -->
The validate-rccl-* tests were failing because "RCCL Comm" counters were not being written to perfetto traces when using the new cached-perfetto approach.

## Technical Details

<!-- Explain the changes along with any relevant GitHub links. -->
Root Cause: The write_perfetto_counter_track() in rccl.cpp was only called when config::get_use_perfetto() returned true, which requires ROCPROFSYS_TRACE_LEGACY=ON. This meant RCCL counters weren't captured with the new trace cache approach.

Solution: Integrated RCCL with the trace cache system:

Changes to source/lib/rocprof-sys/library/rocprofiler-sdk/rccl.cpp:

- Added cache_rccl_comm_data_events<Track>() function to store RCCL comm data via pmc_event_with_sample with category::comm_data
- Modified tool_tracing_callback_rccl() to always cache events for new perfetto approach, while preserving legacy write_perfetto_counter_track() calls for backward compatibility

Changes to tests/rocprof-sys-testing.cmake:

- Added rccl_api to ROCPROFSYS_ROCM_DOMAINS to enable RCCL API callback tracing

Handler verification: The perfetto_processor_t already has a handler for ROCPROFSYS_CATEGORY_COMM_DATA in m_pmc_track_map that processes the cached events.
2026-01-22 15:38:19 -05:00
akolliasAMD 9caa248bfd added rocshmem-reviewers on CODEOWNERS file (#2809) 2026-01-22 14:12:56 -05:00
Danylo Lytovchenko 7f906ced10 Revert "rocr: SVMPrefetch to a particular numa node (#1063)" (#2792)
This reverts commit 0ba5a01baa.
2026-01-22 17:26:19 +01:00
vstojilj 9d84e31d23 Fix invalid use of hipEventElapsedTime (#2698) 2026-01-22 17:08:43 +01:00
systems-assistant[bot] 87ea43b642 SWDEV-540597 - Reset last error to avoid its impact in next iteration. (#558)
* SWDEV-540597 - Reset last error to avoid its impact in next iteration.

* SWDEV-540597 - Bypass compiler error as we need to call hipGetLastError without checking error to reset last error.

---------

Co-authored-by: Jaydeep Patel <jaydeepkumar.patel@amd.com>
2026-01-22 15:52:36 +05:30
ammallya ea94716e23 Migrating rccl and rccl-tests (#2750)
* Migrating rccl and rccl-tests

* Adding missing submodules for rccl
2026-01-21 18:16:19 -08:00
Ameya Keshava Mallya e4367dd053 Merge remote-tracking branch 'origin/develop' into preserved/rccl 2026-01-22 02:15:20 +00:00
David Yat Sin 5267cd334b rocr: Refactor SDMA object creation (#2629)
Refactor SDMA object creation and add comment to clarify why GCR is not
needed on DXG.
2026-01-21 21:09:56 -05:00
German Andryeyev d902429f1f rocr/hsakmt/wsl Move WSL under ROCR hsakmt. (#2638)
## Motivation
ROCR on Windows uses WSL implementation as the codebase. We want to make
sure Windows changes can continue to work with WSL and share the same
core implementation. Hence, it's easier to maintain the code under the
same rocm-system infrastructure and automate all builds/tests in the
future.

## Technical Details
The new files is the copy of https://github.com/ROCm/librocdxg/ with
preserved history. Native windows support and clean-ups will be added in
the following check-ins.

The same command lines can be used to build WSL under libhsakmt folder
for now.
```
# Set the Windows SDK path (adjust version number if different)
export win_sdk='/mnt/c/Program Files (x86)/Windows Kits/10/Include/10.0.26100.0/'
 
# Build the library
mkdir -p build
cd build
cmake .. -DWIN_SDK="${win_sdk}/shared"
make
sudo make install

```
## JIRA ID
SWDEV-558849

## Test Plan
N/A

## Test Result
N/A

## Submission Checklist
2026-01-21 20:00:33 -05:00
German Andryeyev 196baa4321 rocr: Fix static build in Windows (#2660) 2026-01-21 18:44:51 -05:00
Ameya Keshava Mallya 8861267e7a Merge remote-tracking branch 'origin/develop' into preserved/rccl-tests 2026-01-21 22:04:28 +00:00
Sunday Clement 0ba5a01baa rocr: SVMPrefetch to a particular numa node (#1063)
In order for hipMemPrefetchAysnc_v2() api to work, we need rocr to
migrates the ranges of pages requested to the particular NUMA node in
question, via move_pages().

Signed-off-by: Sunday Clement <Sunday.Clement@amd.com>
2026-01-21 16:52:15 -05:00
ammallya 1dfc679821 Migration of rocshmem (#2742) 2026-01-21 13:31:26 -08:00
Ameya Keshava Mallya c375529158 Merge remote-tracking branch 'origin/develop' into preserved/rocshmem 2026-01-21 21:27:47 +00:00