ROCProfiler API library#
Introduction
The ROCProfiler library provides GPU Applications Profiling/Tracing APIs. The API offers functionality for profiling GPU applications in kernel, application and user mode. It also supports no replay mode and provides the records pool support through a simple sequence of calls. This enables users to profile and trace in easy small steps. Our samples code provides good examples on how to use the API calls for both profiling and tracing.
Supported AMD GPU Architectures
The following AMD GPU architectures are supported:
- gfx900 (AMD Vega 10)
- gfx906 (AMD Vega 7nm also referred to as AMD Vega 20)
- gfx908 (AMD Instinct™ MI100 accelerator)
- gfx90a (Aldebaran)
- gfx94x (AMD Instinct™ MI300)
- gfx1010 (Navi10)
- gfx1011 (Navi12)
- gfx1012 (Navi14)
- gfx1030 (Sienna Cichlid)
- gfx1031 (Navy Flounder)
- gfx1032 (Dimgrey Cavefish)
- gfx1100 (Navi31) For more information about the AMD ROCm ecosystem, please refer to:
- https://docs.amd.com/
Known Limitations and Restrictions
The AMD Profiler API library implementation currently has the following restrictions. Future releases aim to address these restrictions.
- The following profiling modes are not yet implemented:
- ::ROCPROFILER_APPLICATION_REPLAY_MODE
- ::ROCPROFILER_USER_REPLAY_MODE
- While setting filters, properties can mix up and may produce undesirable results.
References
- Advanced Micro Devices: www.amd.com
- AMD ROCm Ecosystem: docs.amd.com
Legal Disclaimer and Copyright Information
AMD ROCm software is made available by Advanced Micro Devices, Inc. under the open source license identified in the top-level directory for the library in the repository on Github.com (Portions of AMD ROCm software are licensed under MITx11 and UIL/NCSA. For more information on the license, review the license.txt
in the top-level directory for the library on Github.com). The additional terms and conditions below apply to your use of AMD ROCm technical documentation.
©2019-2023 Advanced Micro Devices, Inc. All rights reserved.
The information presented in this document is for informational purposes only and may contain technical inaccuracies, omissions, and typographical errors. The information contained herein is subject to change and may be rendered inaccurate for many reasons, including but not limited to product and roadmap changes, component and motherboard version changes, new model and/or product releases, product differences between differing manufacturers, software changes, BIOS flashes, firmware upgrades, or the like. Any computer system has risks of security vulnerabilities that cannot be completely prevented or mitigated. AMD assumes no obligation to update or otherwise correct or revise this information. However, AMD reserves the right to revise this information and to make changes from time to time to the content hereof without obligation of AMD to notify any person of such revisions or changes.
THIS INFORMATION IS PROVIDED "AS IS." AMD MAKES NO REPRESENTATIONS OR WARRANTIES WITH RESPECT TO THE CONTENTS HEREOF AND ASSUMES NO RESPONSIBILITY FOR ANY INACCURACIES, ERRORS, OR OMISSIONS THAT MAY APPEAR IN THIS INFORMATION. AMD SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, OR FITNESS FOR ANY PARTICULAR PURPOSE. IN NO EVENT WILL AMD BE LIABLE TO ANY PERSON FOR ANY RELIANCE, DIRECT, INDIRECT, SPECIAL, OR OTHER CONSEQUENTIAL DAMAGES ARISING FROM THE USE OF ANY INFORMATION CONTAINED HEREIN, EVEN IF AMD IS EXPRESSLY ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
AMD, the AMD Arrow logo, AMD Instinct™, Radeon™, AMD ROCm™, and combinations thereof are trademarks of Advanced Micro Devices, Inc. Linux® is the registered trademark of Linus Torvalds in the U.S. and other countries. PCIe® is a registered trademark of PCI-SIG Corporation. Other product names used in this publication are for identification purposes only and may be trademarks of their respective companies.
This document is going to discuss the following:
- Symbol Versions
- Library Versioning
- Status Codes
- General ROCProfiler Requirements
- Timestamp Operations
- General Records Type
- Profiling Part Handling
- Tracer Part Handling
- roctx_tracer_api_data_group
- hsa_tracer_api_data_group
- hip_tracer_api_data_group
- Memory Storage Buffer
- ROCProfiler Sessions
- Session Filters Handling
- session_range_group
- session_user_replay_pass_group
- Device Profiling API
- rocprofiler_plugins