Commit Graph

8920 Commits

Author SHA1 Message Date
David Galiffi 7dce5926a7 OMPT Target Offload Support (#17)
- Porting from https://github.com/ROCm/omnitrace/pull/411
- Improve OMPT support
- Add OpenMP target example to testing
- Update Timemory submodule to use ROCm/Timemory rather than NERSC/Timemory
- Update `actions/upload-artifacts` to v4
- Standardize the `cmake_minimum_required` to 3.18.4 across workflows, project, and examples
- Updated Ubuntu 20.04 workflows
2024-11-07 16:49:32 -05:00
David Galiffi 2cb8a82101 Update CODEOWNERS 2024-11-07 14:30:06 -05:00
David Galiffi 64526650be Update CODEOWNERS 2024-11-07 14:29:37 -05:00
Galantsev, Dmitrii 4f7e441566 AMDSMI - Fix kRasErrStateStrings in tests
Change-Id: Ia9498fae215397baf7201715574954313c17da93
Signed-off-by: Galantsev, Dmitrii <dmitrii.galantsev@amd.com>
2024-11-07 11:21:22 -06:00
Galantsev, Dmitrii 37ddd5bf50 RVS - Report test progress in realtime
Change-Id: Id9fea71f242f372f408ecd777c030465b7ef9989
Signed-off-by: Galantsev, Dmitrii <dmitrii.galantsev@amd.com>
2024-11-07 11:21:22 -06:00
Galantsev, Dmitrii 9c77312c51 Finish basic logging impl
Change-Id: Ia3d6ac80f4832f1bfb63573c543659abd5f84341
Signed-off-by: Galantsev, Dmitrii <dmitrii.galantsev@amd.com>
2024-11-07 11:21:22 -06:00
Galantsev, Dmitrii cdf1588974 CMAKE - Find modules at build time
Change-Id: I9370ef1433579aff1a37f3636050f525638d8658
Signed-off-by: Galantsev, Dmitrii <dmitrii.galantsev@amd.com>
2024-11-07 11:21:22 -06:00
Galantsev, Dmitrii dd50027748 CMAKE - Fix RVS include
Change-Id: I65095cc3d04fc2a5daeee5c809f635cb1662822f
Signed-off-by: Galantsev, Dmitrii <dmitrii.galantsev@amd.com>

Revert "Disable RVS as the error scares people"

This reverts commit 660c5afaf4.

Change-Id: I5086c25772444aa3bfc4c10abc1ea58d3f3f1f27
Signed-off-by: Galantsev, Dmitrii <dmitrii.galantsev@amd.com>
2024-11-07 11:18:41 -06:00
Peter Park fb549fc83e Add CHANGELOG.md (#18) 2024-11-07 11:51:02 -05:00
Chris Freehill 0878deda17 rocr: Dynamically allocate static global memory
To allow non-POD global variables to last until the last thread
has exited, use "new" to allocate the memory instead of static
allocation.

Change-Id: Ica571b61ff8068a52e472c49cb1c44917e60c8c8
2024-11-07 09:53:31 -05:00
Jonathan R. Madsen 5eb8c2658c rocprofv3: refactor and reorganize rocprofiler-sdk-tool library (#1138)
* Add rocprofv3-multi-node.md to source/lib/rocprofiler-sdk-tool

* Initial source re-organization

- create "output" static library

* Update include/rocprofiler-sdk/cxx/serialization.hpp

- add GPR count fields to kernel symbol serialization

* Add source/scripts/generate-rocpd.py

- reads one or more JSON output files from rocprofv3 and writes rocpd SQLite3 database
- Note: preliminary implementation

* More reorganization b/t lib/rocprofiler-sdk-tool and lib/output

* Updates to generate-rocpd.py

- add SQL views
- option: --absolute-timestamps -> --normalize-timestamps
- option: --generic-markers
- misc fixes with regards to getting the views working
- support marker names

* Update generate-rocpd.py

- Add --marker-mode option

* Update generate-rocpd.py

- Improve debugging of bad bulk SQLite statements

* Update rocprofv3-multi-node.md

- cleanup of proposed SQL schema

* lib/output/format_path.{hpp,cpp}

- rename format to format_path (in config.hpp and config.cpp)
- move format_path functionality to format_path.{hpp,cpp}

* Rework lib/output/tmp_file_buffer.{hpp,cpp}

* Update output_key.cpp

- support %cwd%, %launch_date%

* Rework lib/output/buffered_output.hpp

* Support csv_output_file constructed via domain_type

* Update lib/output/domain_type.{hpp,cpp}

- get_domain_trace_file_name
- get_domain_stats_file_name

* Update lib/rocprofiler-sdk-tool/tool.cpp

- tweak headers

* Update lib/output/generate*.cpp

- remove include of helpers.hpp
- CSV uses domain_type for filenames

* Update samples/counter_collection/per_dev_serialization.cpp

- make wait_on volatile

* Remove tool_table from lib/output and lib/rocprofiler-sdk-tool

- Also split various structs into their own files
  - lib/output/agent_info
  - lib/output/metadata
  - lib/output/kernel_symbol_info
  - lib/output/counter_info
- Implemented rocprofiler::tool::metadata

* Optimize rocprofiler_tool_counter_collection_record_t

- reduce the size of the struct from 24784 bytes to 8376 bytes

* Introduced output_config

- split subset of config (from tools library) into output_config to be able to configure the output generating functions separately from the tool library
- this is a significant step towards the output generating functions not relying on static global memory

* Stream chunks of data into output instead of loading all info memory

* Remove duplicate group_segment_size in rocprofiler_kernel_dispatch_info_t serialization

* Adding Q&A to rocprofv3-multi-node.md

* Remove all remaining include lib/rocprofiler-sdk-tool from lib/output

- migrated a fair amount of code from lib/rocprofiler-sdk-tool/helper.hpp to lib/output

* Update Q&A of rocprofv3-multi-node.md

* Fix minor compilation errors + minor cleanup

* Update hsa/async_copy.cpp

- when ROCPROFILER_CI_STRICT_TIMESTAMPS > 0, reduce the active_signal sync wait time

* Update profiling_time.hpp

- fix log messages for when start/end time is less/greater than enqueue/current CPU time

* Fix generate_stats for tool_counter_record_t

* Dictionary optimization for generate-rocpd.py

---------

Co-authored-by: SrirakshaNag <104580803+SrirakshaNag@users.noreply.github.com>
2024-11-07 01:15:19 -06:00
Jaydeep Patel 700f1d9abd rocr: Decrement counter only if event is popped
Also restore dead signals cleanup for old path when HSA_WAIT_ANY_DEBUG
is used.

Change-Id: I51a7404991443c9f6cbf57b4b9e9faa694b9538c
2024-11-07 01:03:09 -05:00
Jonathan R. Madsen 98858b60ec CI: Relax timestamp checking (#1189)
* Relax timestamp checking

- Prevent recurring CI failures that have no remedy until HSA/driver issues are resolved

* Replace "cc" abbreviation in tests with "counter-collection"

* Update CODEOWNERS to explicitly include jrmadsen for source/include

* Extra logging in rocprofiler tool library

* Tweak aborted-app test

- remove counter collection as part of the test
2024-11-06 23:32:47 -06:00
Benjamin Welton 6564419357 Update comparing-with-legacy-tools.rst (#1187) 2024-11-06 08:56:32 -08:00
Benjamin Welton c491a5bc34 Timing documentation Update (#1168)
* Timing documentation Update

Documentation update for timing differences. Needs additional review from Joe Greathouse before landing.

* Update comparing-with-legacy-tools.rst
2024-11-06 09:28:41 -06:00
AravindanC 1a0de862aa Update static package dependency of rocrtst
Change-Id: Ic12a6f2ec3bd03d871815810cc79488e7d5c57ab
2024-11-06 07:06:37 -08:00
Larry Meadows 62e0a9c1a3 SDK: OMPT Support part 1: include file and print formatters for OMPT support (#1175)
* include file and print formatters for OMPT support

* Apply suggestions from code review

* Remove rocprofiler_ompt_set_callbacks

* Reorder ROCPROFILER_EXTERNAL_CORRELATION_REQUEST_OPENMP

---------

Co-authored-by: Jonathan R. Madsen <jrmadsen@users.noreply.github.com>
Co-authored-by: Jonathan R. Madsen <jonathanrmadsen@gmail.com>
2024-11-05 23:57:11 -06:00
Larry Meadows cc1498bb3b Ability to select alternative compiler per file (#1086) 2024-11-05 23:45:54 -06:00
Jorge López 35c1d00f5a Updates driverInitialized() to support amdgpu built as module as well as kernel built-in. Fixes ROCm/rocm_smi_lib#102 and is an updated version of ROCm/rocm_smi_lib#104
Change-Id: Icb3abe820bc67035b822358a1c04bd09a7c22b6b
Signed-off-by: Galantsev, Dmitrii <dmitrii.galantsev@amd.com>
Reviewed-by: Galantsev, Dmitrii <dmitrii.galantsev@amd.com>
2024-11-05 16:30:37 -05:00
Ammar ELWazir d269c845ae SWDEV-466390: Adding License for roctx, docs, tests packages (#1174)
* Adding License for roctx, docs, tests packages

* Fixing Docs/ROCTx packages

* Fixing roctx path
2024-11-05 13:38:55 -06:00
David Galiffi 71bc463921 Merge pull request #466 from ROCm/dgaliffi/sync-main-with-stg
Omniperf v3.0.0 in prep for ROCm 6.3.0
2024-11-05 13:53:20 -05:00
meserve-amd 4467e50453 SWDEV-470692: Fix parsing of unknown API records
- A valid trace is now given even if an individual entry in an API trace
  does not contain a parameter list
- Previously an "unknown" record in an API trace would cause the entire
  output to be discarded

Change-Id: I29bf6df2cf58a231d836aafb37fbde9c5d85512f
2024-11-05 12:48:35 -05:00
David Galiffi f0ccace29b Merge branch 'amd-staging' into dgaliffi/sync-main-with-stg
Signed-off-by: David Galiffi <David.Galiffi@amd.com>
2024-11-05 11:21:47 -05:00
Fei Zheng b4f9b38e99 Merge pull request #460 from feizheng10/doc_warp_efficency
Fix PoP of VALU Active Threads with wave_size
2024-11-05 09:00:59 -07:00
David Galiffi 21d9ab79fd Fix for proto files not being viewable in Perfetto UI (#16)
- Fix for proto files not being viewable in Perfetto UI
  - Ported from https://github.com/ROCm/omnitrace/pull/411

- Update Workflows

- Use V47 trace_processor_shell for certain OS releases.
  - RedHat 8, SUSE 15.5, and Ubuntu 20.04 are no longer compatible with the latest trace_processor_shell.
  - Incompatible version of GLIBC.

- Remove notes about Perfetto workaround in documentation.

---------

Signed-off-by: David Galiffi <David.Galiffi@amd.com>
2024-11-05 10:14:25 -05:00
Benjamin Welton dc6a568ec5 Kernel Serialization Documentation (#1167)
* Kernel Serialization Documentation

Added docs for kernel serialization.

* Update counter_collection_services.md

* correcting counter collection mode names

* correcting counter collection modes naming

---------

Co-authored-by: Gopesh Bhardwaj <gopesh.bhardwaj@amd.com>
2024-11-05 09:00:11 -06:00
Peter Park 6a381d8966 Fix changelog heading
Signed-off-by: Peter Park <peter.park@amd.com>
2024-11-05 09:07:57 -05:00
srawat 216f724e9a Update CHANGELOG.md (#1181) 2024-11-05 18:11:57 +05:30
fei.zheng 1b37572b4a fix PoP of VALU Active Threads with wave_size
Signed-off-by: fei.zheng <fei.zheng@amd.com>
2024-11-04 14:31:52 -07:00
Jonathan R. Madsen ad48201912 SDK: create CMake option for strict checks on CPU vs. GPU timestamps (#1159)
* SDK: create CMake option for strict checks on CPU vs. GPU timestamps

- Configurating CMake with `ROCPROFILER_BUILD_CI_STRICT_TIMESTAMPS=ON` will enable fatal errors if dispatch/memcpy timestamps on GPU are outside of the start/end time from the CPU
- `ROCPROFIELR_BUILD_CI_STRICT_TIMESTAMPS` defaults to the value of `ROCPROFILER_BUILD_CI`

* Formatting

* Disable async_copy frequency scaling

* Disable profiling dispatch time frequency scaling

* Support runtime configuration via env variables

- ROCPROFILER_CI_FREQ_SCALE_TIMESTAMPS env variable will enable scaling the timestamps based on the hsa timestamp period
- ROCPROFILER_CI_STRICT_TIMESTAMPS env variable will enable strict timestamp checks
  - when cmake is configured with ROCPROFILER_BUILD_CI_STRICT_TIMESTAMPS=ON, this env variable defaults to true

* ROCPROFILER_BUILD_CI_STRICT_TIMESTAMPS defaults to OFF

* Update cmake-target

* Common tracing::adjust_profiling_time

---------

Co-authored-by: Gopesh Bhardwaj <gopesh.bhardwaj@amd.com>
2024-11-01 23:12:51 -05:00
David Galiffi 50755de867 Install LICENCE to ${CMAKE_INSTALL_DOCDIR} (#458)
* Install LICENSE to ${CMAKE_INSTALL_DOCDIR}
* Update tarball.yml to test for LICENSE file after the install

---------

Signed-off-by: David Galiffi <David.Galiffi@amd.com>
2024-11-01 17:51:00 -04:00
David Galiffi 152eff0df1 Update VERSION to 3.0.0 (#457)
* Update VERSION  and README to 3.0.0
* Update version mismatch of profiling data to a warning.

Signed-off-by: David Galiffi <David.Galiffi@amd.com>
2024-11-01 15:26:34 -04:00
Cole Ramos 8a88e8bd90 Give executable permission to rocprof-compute (#456)
Signed-off-by: coleramos425 <colramos@amd.com>
2024-11-01 14:16:49 -04:00
xuchen-amd 31b4de1a38 Rename Omniperf to ROCm Compute Profiler (#428)
- Update filenames.
- Update executable to `rocprof-compute` 
- Update update package to `rocprofiler-compute`
- Update name in application output and logs
- Update name in README files
- Update testing and workflows

---------

Signed-off-by: Xuan Chen <xuchen@amd.com>
2024-11-01 12:20:21 -04:00
adapryor 61ed9e13f4 [SWDEV-412505] Handle mclk permission errors as not supported
Signed-off-by: adapryor <Adam.pryor@amd.com>
Change-Id: I25c9af42ed62697f87c70ecaeb153abe53401091
2024-10-31 15:18:03 -04:00
Yiannis Papadopoulos 2837825b14 rocr: Adding pointer to the owner driver in Agent class
Change-Id: If913d7c7e4caf6d6e6eee3a858a27c6027c2923f
2024-10-31 12:29:10 -04:00
Chris Freehill c7521a5f2a rocr: Fix supported_isas transient memory issue
An ASAN run of the release build revealed some elements of
the supported_isas static map were still using stack data. This
change makes it use heap data so it will persist.

Change-Id: Ie51887e88b9e2dec27acfc97ea45a6219fea971c
2024-10-31 11:59:29 -04:00
Chris Freehill 4256630fd0 rocr: Fix several rocrtst memory errors
Change-Id: I9049a3905fb26cf9b8ad0839684a70771a49f616
2024-10-30 20:36:25 -04:00
srawat 4204042ac6 Refactor API reference docs (#1125)
* Refactor API reference docs

* refactor API ref docs

* corrections

* consistent naming

* updates

* Update CHANGELOG.md

* improving SEO

* improving SEO

* Update using-rocprofv3.rst

* Update counter_collection_services.md

* Update using-rocprofv3.rst

* Fixing doc build errors

* changelogs and some formatting issues

---------

Co-authored-by: Gopesh Bhardwaj <gopesh.bhardwaj@amd.com>
2024-10-30 19:39:08 +05:30
Gopesh Bhardwaj 762ca819cf changelog update for release notes (#1171) 2024-10-30 15:48:43 +05:30
Jonathan R. Madsen 7f416a2f82 Remove serializing Reserved field of HSA_CAPABILITY (#1170)
- reserved fields have no meaning
2024-10-30 00:12:48 -05:00
Giovanni Lenzi Baraldi 4acca76edb Update fetch_size metric (#1165)
Co-authored-by: Gopesh Bhardwaj <gopesh.bhardwaj@amd.com>
2024-10-29 21:44:27 -03:00
Jonathan Kim 7f8676e177 rocr: revert back to old copy behaviour with no xgmi sdma engines
SDMA queue resources are limited when all SDMA copies are bottle necked
into 2 engines.  Callers will not be able to make the best decisions
to allocate queue resources fairly so have ROCr fallback to old round
robin behaviour dictated by KFD.

Change-Id: I93d52297976d74e20129c5eb1dcfbfa5aa5067a7
2024-10-29 16:01:01 -04:00
Gopesh Bhardwaj 980b97cc51 CODEOWNERS Update (#1164)
* Assigining code owners

* Assigining code owners

* reducing default list further for ease

* Update CODEOWNERS

* Update CODEOWNERS

* Update CODEOWNERS

---------

Co-authored-by: Jonathan R. Madsen <jrmadsen@users.noreply.github.com>
2024-10-29 11:47:14 +05:30
Manjunath P Jakaraddi f087debe84 SWDEV-493402: Changing the header format for counter collection (#1148)
* SWDEV-493402: Changing the header format for counter collection

* Adding column widths
2024-10-29 10:11:29 +05:30
Chris Freehill 0c18ff22e1 rocr: Generic ISA targets support
Change-Id: I6a0341ec9c1ec1e710143676b80a8a3c1a78f725
2024-10-28 08:54:06 -05:00
Chris Freehill 08699069d6 rocr: Quiet some ROCr compile warnings
These are mostly AIE related, but there are a couple of others.

Change-Id: I549e004772160ca282d4c94dc9d94dd2ccae8b1c
2024-10-28 09:08:14 -04:00
Gopesh 82ebb1c3ec Revert " SWDEV-477849: Remove dependency of libatomic from roctracer"
This reverts commit 4ca1a68fd9.

Change-Id: I63a0166f629fa6f3b71f03b4e540e4d8ee160910
2024-10-28 01:20:02 -05:00
Giovanni LB 71dcc432da Output GPU index for kernel.txt files
Change-Id: Ib32e051bd035c0ecd30ba79b347fd65fe289c3fb
2024-10-25 19:41:19 -04:00
Ben Richard 2de2faf944 Add broken mclk workaround for all arch (#453)
* Check for missing mclk, use hard-coded values if needed

Signed-off-by: benrichard-amd <ben.richard@amd.com>

* Fix typo

Signed-off-by: benrichard-amd <ben.richard@amd.com>

---------

Signed-off-by: benrichard-amd <ben.richard@amd.com>
2024-10-25 17:13:10 -05:00