* EvaluateAST and validation of RawAST
* Adding MetricDimension class and concepts
* set_dimensions() and improved ValidateRawAST()
* source formatting (clang-format v11) (#124)
Co-authored-by: bwelton <bwelton@users.noreply.github.com>
* Addressing 1st round of review comments
* Modified the parser production rules to support the right syntax for REDUCE and SELECT derived metric expressions
* changes to raw_ast.hpp and fmt::format()
* Parser tests updated to support corrected REDUCE and SELECT syntax
* changes to EvaluateAST::set_dimensions() and other dimension related code changes
* Added a test for EvaluateAST::evaluate() to test basic arithmetic on EvaluateAST
* Format source code (via clang-format v11) on sauverma/evaluate-ast (#146)
* source formatting (clang-format v11)
* Add dimension information to counter record
Restructures counter records to have the following design:
rocprofiler_record_id_t which is an int64_t that encodes
both the counter id and dimension information for the
record. The first 16 bits are reserved for the counter id while
the last 48 are split among the dimensions specified in
rocprofiler_dimension_t (currently 8 bits per dimension).
Each of the 8 bits for the dimension stores the dimension
value for that dimension for this record (i.e. a value of 8
on dimension XCC would denote XCC[8] for the counter). The
split among the dimensions will automatically adjust as
dimensions are added or removed.
The record also contains a union of {int64_t hw_counter, double
derived_counter} to specify the value of the record at
rocprofiler_record_id_t. int64_t denotes a physical hardware
counter that has integer types while the double is used for derived
counters (which type this counters values are needs to be queried
separately).
* Integration of new id type + other fixes
---------
Co-authored-by: sauverma93 <sauverma93@users.noreply.github.com>
Co-authored-by: Benjamin Welton <bewelton@amd.com>
* Fixed sissues with reduce() implementation and added a test for reduce()
* Updated parser syntax for reduce() and updated the parser test. Disabled the test for select()
* Build warning fixes
* Modifications to support fetching xcc/etc info from agent
* Initial plumbing working for single counters, cleanup+tests still needed
* Remove string comparison from reduce ops
* source formatting (clang-format v11) (#163)
Co-authored-by: bwelton <bwelton@users.noreply.github.com>
* cmake formatting (cmake-format) (#164)
Co-authored-by: bwelton <bwelton@users.noreply.github.com>
* source formatting (clang-format v11) (#171)
Co-authored-by: bwelton <bwelton@users.noreply.github.com>
* Merged with master
* source formatting (clang-format v11) (#172)
Co-authored-by: bwelton <bwelton@users.noreply.github.com>
* source formatting (clang-format v11) (#173)
Co-authored-by: bwelton <bwelton@users.noreply.github.com>
* Test fix
---------
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: bwelton <bwelton@users.noreply.github.com>
Co-authored-by: sauverma93 <sauverma93@users.noreply.github.com>
Co-authored-by: Benjamin Welton <bewelton@amd.com>
[ROCm/rocprofiler-sdk commit: 63775f241a]
* EvaluateAST and validation of RawAST
* Adding MetricDimension class and concepts
* set_dimensions() and improved ValidateRawAST()
* source formatting (clang-format v11) (#124)
Co-authored-by: bwelton <bwelton@users.noreply.github.com>
* Addressing 1st round of review comments
* Modified the parser production rules to support the right syntax for REDUCE and SELECT derived metric expressions
* changes to raw_ast.hpp and fmt::format()
* Parser tests updated to support corrected REDUCE and SELECT syntax
* changes to EvaluateAST::set_dimensions() and other dimension related code changes
* Added a test for EvaluateAST::evaluate() to test basic arithmetic on EvaluateAST
* Format source code (via clang-format v11) on sauverma/evaluate-ast (#146)
* source formatting (clang-format v11)
* Add dimension information to counter record
Restructures counter records to have the following design:
rocprofiler_record_id_t which is an int64_t that encodes
both the counter id and dimension information for the
record. The first 16 bits are reserved for the counter id while
the last 48 are split among the dimensions specified in
rocprofiler_dimension_t (currently 8 bits per dimension).
Each of the 8 bits for the dimension stores the dimension
value for that dimension for this record (i.e. a value of 8
on dimension XCC would denote XCC[8] for the counter). The
split among the dimensions will automatically adjust as
dimensions are added or removed.
The record also contains a union of {int64_t hw_counter, double
derived_counter} to specify the value of the record at
rocprofiler_record_id_t. int64_t denotes a physical hardware
counter that has integer types while the double is used for derived
counters (which type this counters values are needs to be queried
separately).
* Integration of new id type + other fixes
---------
Co-authored-by: sauverma93 <sauverma93@users.noreply.github.com>
Co-authored-by: Benjamin Welton <bewelton@amd.com>
* Fixed sissues with reduce() implementation and added a test for reduce()
* Updated parser syntax for reduce() and updated the parser test. Disabled the test for select()
* Build warning fixes
* Modifications to support fetching xcc/etc info from agent
* Initial plumbing working for single counters, cleanup+tests still needed
* Remove string comparison from reduce ops
* source formatting (clang-format v11) (#163)
Co-authored-by: bwelton <bwelton@users.noreply.github.com>
* cmake formatting (cmake-format) (#164)
Co-authored-by: bwelton <bwelton@users.noreply.github.com>
* source formatting (clang-format v11) (#171)
Co-authored-by: bwelton <bwelton@users.noreply.github.com>
* Merged with master
* source formatting (clang-format v11) (#172)
Co-authored-by: bwelton <bwelton@users.noreply.github.com>
* source formatting (clang-format v11) (#173)
Co-authored-by: bwelton <bwelton@users.noreply.github.com>
* Test fix
---------
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: bwelton <bwelton@users.noreply.github.com>
Co-authored-by: sauverma93 <sauverma93@users.noreply.github.com>
Co-authored-by: Benjamin Welton <bewelton@amd.com>
- std=c++.. is not required because CMAKE_CXX_STANDARD is set
- nullptr check breaks the test because we rely on nullptr as an api for
checking feature availability.
- enum number setting is unnecessary
Change-Id: I393e6dd3f292b7fa4198302f140c0443ba5e50f5
Signed-off-by: Galantsev, Dmitrii <dmitrii.galantsev@amd.com>
[ROCm/rocm_smi_lib commit: a099f0682a]
- std=c++.. is not required because CMAKE_CXX_STANDARD is set
- nullptr check breaks the test because we rely on nullptr as an api for
checking feature availability.
- enum number setting is unnecessary
Change-Id: I393e6dd3f292b7fa4198302f140c0443ba5e50f5
Signed-off-by: Galantsev, Dmitrii <dmitrii.galantsev@amd.com>
- Unit_hipLaunchParm fails in integrity test & in PSDB on MI100.
- Disable it until the failure is fixed.
Change-Id: Id055860e067189c0ef85c77583c73269db9d2b51
[ROCm/hip-tests commit: 31dbd1970a]
- Unit_hipLaunchParm fails in integrity test & in PSDB on MI100.
- Disable it until the failure is fixed.
Change-Id: Id055860e067189c0ef85c77583c73269db9d2b51
Join the signal handling thread instead of cancel it to prevent
crash with "terminate called without an active exception".
Change-Id: I2e18eb825728fd3a94f67b1b0049516bb7b6ebbc
Join the signal handling thread instead of cancel it to prevent
crash with "terminate called without an active exception".
Change-Id: I2e18eb825728fd3a94f67b1b0049516bb7b6ebbc
[ROCm/rdc commit: 1ab4110d46]
- Track all captured commands under a new AccumulateCommand
- Add begin() and end() methods to capture commands
- Explicit TS object now passed to certain methods because
profilingBegin() and profilingEnd() now happen separately and thus can
run into threading issues
Change-Id: I171106bdcad72b057836cb2f3fc398db3533119f
[ROCm/clr commit: 40f41f4d0b]
- Track all captured commands under a new AccumulateCommand
- Add begin() and end() methods to capture commands
- Explicit TS object now passed to certain methods because
profilingBegin() and profilingEnd() now happen separately and thus can
run into threading issues
Change-Id: I171106bdcad72b057836cb2f3fc398db3533119f
* Update include/rocprofiler
- intercept_table.h header
- generic rocprofiler_runtime_library_t
- rocprofiler_internal_thread_library_t is not typedef for rocprofiler_runtime_library_t
- rocprofiler_at_runtime_api_registration
* Update lib/rocprofiler
- minor tweaks to context.cpp
- check if none context early
- disallow stop_context when finalizing
- add intercept_table.hpp and intercept_table.cpp
- implement rocprofiler_at_runtime_api_registration
- implement notify_runtime_api_registration
- update registration.cpp
- invoke notify_runtime_api_registration
- tweak to fini status when invoking client finalizer
* Update lib/rocprofiler/tests
- add tests for intercept table
* Add samples/intercept_table
- demonstrate how to install custom API function wrappers instead of relying on HSA callback tracing
* Update lib/rocprofiler/tests/intercept_table.cpp
- remove _SERVICE from ROCPROFILER_SERVICE_
* Update include/rocprofiler/intercept_table.h
- Update doxygen comments
* Update lib/rocprofiler/intercept_table.cpp
- return error config locked if already initialized
* Update lib/rocprofiler/intercept_table.cpp
- remove unnecessary alias
* Apply suggestions from code review
Co-authored-by: Tony Tye <Tony.Tye@amd.com>
* Update doxygen comments
- clarify when rocprofiler_at_runtime_api_registration can be invoked
* Use rocprofiler_runtime_library_t for intercept table and internal threading
- remove rocprofiler_intercept_library_t alias to rocprofiler_runtime_library_t
- remove rocprofiler_internal_thread_library_t alias to rocprofiler_runtime_library_t
- move around documentation with regard to rocprofiler_runtime_library_t enumeration
- added some extra doxygen documentation to internal threading functions
---------
Co-authored-by: Tony Tye <Tony.Tye@amd.com>
[ROCm/rocprofiler-sdk commit: 4f2dc896d3]
* Update include/rocprofiler
- intercept_table.h header
- generic rocprofiler_runtime_library_t
- rocprofiler_internal_thread_library_t is not typedef for rocprofiler_runtime_library_t
- rocprofiler_at_runtime_api_registration
* Update lib/rocprofiler
- minor tweaks to context.cpp
- check if none context early
- disallow stop_context when finalizing
- add intercept_table.hpp and intercept_table.cpp
- implement rocprofiler_at_runtime_api_registration
- implement notify_runtime_api_registration
- update registration.cpp
- invoke notify_runtime_api_registration
- tweak to fini status when invoking client finalizer
* Update lib/rocprofiler/tests
- add tests for intercept table
* Add samples/intercept_table
- demonstrate how to install custom API function wrappers instead of relying on HSA callback tracing
* Update lib/rocprofiler/tests/intercept_table.cpp
- remove _SERVICE from ROCPROFILER_SERVICE_
* Update include/rocprofiler/intercept_table.h
- Update doxygen comments
* Update lib/rocprofiler/intercept_table.cpp
- return error config locked if already initialized
* Update lib/rocprofiler/intercept_table.cpp
- remove unnecessary alias
* Apply suggestions from code review
Co-authored-by: Tony Tye <Tony.Tye@amd.com>
* Update doxygen comments
- clarify when rocprofiler_at_runtime_api_registration can be invoked
* Use rocprofiler_runtime_library_t for intercept table and internal threading
- remove rocprofiler_intercept_library_t alias to rocprofiler_runtime_library_t
- remove rocprofiler_internal_thread_library_t alias to rocprofiler_runtime_library_t
- move around documentation with regard to rocprofiler_runtime_library_t enumeration
- added some extra doxygen documentation to internal threading functions
---------
Co-authored-by: Tony Tye <Tony.Tye@amd.com>
- Refactor code and cleanup logic for callback saving for event records
Change-Id: I5c56aa8e9c968a5bca70fb07ad1796da318e9e89
[ROCm/clr commit: 1338ff37e8]
- This matches the CUDA behavior
- The pitch and width checks removed are already covered in ihipmemcpy2D
Change-Id: I03a6921a78b5d89723830d8dde5865fdc6db0379
[ROCm/clr commit: 6d6465cb96]
- This matches the CUDA behavior
- The pitch and width checks removed are already covered in ihipmemcpy2D
Change-Id: I03a6921a78b5d89723830d8dde5865fdc6db0379