diff --git a/projects/rocprofiler-sdk/source/docs/api-reference/buffered_services.rst b/projects/rocprofiler-sdk/source/docs/api-reference/buffered_services.rst index 73a3117b1f..ec072b998d 100644 --- a/projects/rocprofiler-sdk/source/docs/api-reference/buffered_services.rst +++ b/projects/rocprofiler-sdk/source/docs/api-reference/buffered_services.rst @@ -1,9 +1,9 @@ -.. --- -.. myst: -.. html_meta: -.. "description": "ROCprofiler-SDK is a tooling infrastructure for profiling general-purpose GPU compute applications running on the ROCm software." -.. "keywords": "ROCprofiler-SDK API reference, Buffered services API" -.. --- + +.. meta:: + :description: ROCprofiler-SDK is a tooling infrastructure for profiling general-purpose GPU compute applications running on the ROCm software + :keywords: ROCprofiler-SDK API reference, Buffered services API + +.. _buffered-services: ROCprofiler-SDK buffered services ================================= diff --git a/projects/rocprofiler-sdk/source/docs/api-reference/callback_services.rst b/projects/rocprofiler-sdk/source/docs/api-reference/callback_services.rst index 1eeb142910..27ce735984 100644 --- a/projects/rocprofiler-sdk/source/docs/api-reference/callback_services.rst +++ b/projects/rocprofiler-sdk/source/docs/api-reference/callback_services.rst @@ -1,9 +1,7 @@ -.. --- -.. myst: -.. html_meta: -.. "description": "ROCprofiler-SDK is a tooling infrastructure for profiling general-purpose GPU compute applications running on the ROCm software." -.. "keywords": "ROCprofiler-SDK API reference, ROCprofiler-SDK callback services, Callback services API" -.. --- + +.. meta:: + :description: ROCprofiler-SDK is a tooling infrastructure for profiling general-purpose GPU compute applications running on the ROCm software + :keywords: ROCprofiler-SDK API reference, ROCprofiler-SDK callback services, Callback services API .. _rocprofiler_sdk_callback_tracing_services: diff --git a/projects/rocprofiler-sdk/source/docs/api-reference/counter_collection_services.rst b/projects/rocprofiler-sdk/source/docs/api-reference/counter_collection_services.rst index 248a19369c..9ca90fd0bd 100644 --- a/projects/rocprofiler-sdk/source/docs/api-reference/counter_collection_services.rst +++ b/projects/rocprofiler-sdk/source/docs/api-reference/counter_collection_services.rst @@ -1,6 +1,10 @@ +.. meta:: + :description: ROCprofiler-SDK is a tooling infrastructure for profiling general-purpose GPU compute applications running on the ROCm software + :keywords: ROCprofiler-SDK API reference, ROCprofiler-SDK counter collection + .. _rocprofiler_sdk_counter_collection_services: -ROCprofiler-SDK Counter Collection Services +ROCprofiler-SDK counter collection services =========================================== There are two modes of counter collection service: diff --git a/projects/rocprofiler-sdk/source/docs/api-reference/intercept_table.rst b/projects/rocprofiler-sdk/source/docs/api-reference/intercept_table.rst index 685594dc33..fba2d830de 100644 --- a/projects/rocprofiler-sdk/source/docs/api-reference/intercept_table.rst +++ b/projects/rocprofiler-sdk/source/docs/api-reference/intercept_table.rst @@ -1,19 +1,17 @@ -.. --- -.. myst: -.. html_meta: -.. "description": "ROCprofiler-SDK is a tooling infrastructure for profiling general-purpose GPU compute applications running on the ROCm software." -.. "keywords": "ROCprofiler-SDK API reference, ROCprofiler-SDK intercept table, Intercept table API" -.. --- -.. _ROCprofiler-SDK runtime intercept tables: +.. meta:: + :description: ROCprofiler-SDK is a tooling infrastructure for profiling general-purpose GPU compute applications running on the ROCm software + :keywords: ROCprofiler-SDK API reference, ROCprofiler-SDK intercept table, Intercept table API -Runtime Intercept Tables +.. _runtime-intercept-tables: + +Runtime intercept tables ========================= While tools commonly leverage the callback or buffer tracing services for tracing the HIP, HSA, and ROCTx APIs, ROCprofiler-SDK also provides access to the raw API dispatch tables. -Forward declaration of public C API function: +Forward declaration of public C API function ---------------------------------------------- All the aforementioned APIs are designed similar to the following sample: @@ -27,7 +25,7 @@ All the aforementioned APIs are designed similar to the following sample: foo(int) __attribute__((visibility("default"))); } -Internal implementation of API function: +Internal implementation of API function ----------------------------------------- .. code-block:: cpp @@ -42,7 +40,7 @@ Internal implementation of API function: } } -Dispatch table implementation: +Dispatch table implementation ------------------------------- .. code-block:: cpp @@ -77,7 +75,7 @@ Dispatch table implementation: } } // namespace impl -Implementation of public C API function: +Implementation of public C API function ----------------------------------------- .. code-block:: cpp @@ -92,10 +90,10 @@ Implementation of public C API function: } } -Dispatch table chaining: +Dispatch table chaining ------------------------- -ROCprofiler-SDK can save the original values of the function pointers such as ``foo_fn`` in ``impl::construct_dispatch_table()`` and install its own function pointers in its place. This results in the public C API function `foo` calling into the ROCprofiler-SDK function pointer, which in turn, calls the original function pointer to ``impl::foo``. This phenomenon is named chaining. Once ROCprofiler-SDK -makes necessary modifications to the dispatch table, tools requesting access to the raw dispatch table via ``rocprofiler_at_intercept_table_registration``, are provided the pointer to the dispatch table. +ROCprofiler-SDK can save the original values of the function pointers such as ``foo_fn`` in ``impl::construct_dispatch_table()`` and install its own function pointers in its place. This results in the public C API function ``foo`` calling into the ROCprofiler-SDK function pointer, which in turn, calls the original function pointer to ``impl::foo``. This phenomenon is named chaining. Once ROCprofiler-SDK +makes necessary modifications to the dispatch table, tools requesting access to the raw dispatch table via ``rocprofiler_at_intercept_table_registration`` are provided the pointer to the dispatch table. -For an example of dispatch table chaining, see `samples/intercept_table `_. +For examples on dispatch table chaining, see `samples/intercept_table `_. diff --git a/projects/rocprofiler-sdk/source/docs/api-reference/pc_sampling.rst b/projects/rocprofiler-sdk/source/docs/api-reference/pc_sampling.rst index 33d972c7ce..b90351e959 100644 --- a/projects/rocprofiler-sdk/source/docs/api-reference/pc_sampling.rst +++ b/projects/rocprofiler-sdk/source/docs/api-reference/pc_sampling.rst @@ -1,9 +1,9 @@ -.. --- -.. myst: -.. html_meta: -.. "description": "ROCprofiler-SDK is a tooling infrastructure for profiling general-purpose GPU compute applications running on the ROCm software." -.. "keywords": "ROCprofiler-SDK API reference, Program counter sampling, PC sampling" -.. --- + +.. meta:: + :description: ROCprofiler-SDK is a tooling infrastructure for profiling general-purpose GPU compute applications running on the ROCm software + :keywords: ROCprofiler-SDK API reference, Program counter sampling, PC sampling + +.. _pc-sampling: ROCprofiler-SDK PC sampling method =================================== @@ -43,7 +43,7 @@ Here are the steps to set up ``tool_init()``: &buff), "buffer creation failed"); -For more details on buffer creation, see `buffered services `_. +For more details on buffer creation, see :ref:`buffered-services`. The PC sampling service is tied to a GPU agent. To extract the list of available agents, use the ``rocprofiler_query_available_agents`` as shown in the following code snippet: @@ -170,8 +170,6 @@ The PC sampling service asynchronously delivers samples via a dedicated callback } } - - For more information on the data comprising a single sample, see `pc_sampling.h `_. .. note:: diff --git a/projects/rocprofiler-sdk/source/docs/api-reference/tool_library.rst b/projects/rocprofiler-sdk/source/docs/api-reference/tool_library.rst index 3689944cac..1b7153a3ea 100644 --- a/projects/rocprofiler-sdk/source/docs/api-reference/tool_library.rst +++ b/projects/rocprofiler-sdk/source/docs/api-reference/tool_library.rst @@ -1,11 +1,9 @@ -.. --- -.. myst: -.. html_meta: -.. "description": "ROCprofiler-SDK is a tooling infrastructure for profiling general-purpose GPU compute applications running on the ROCm software." -.. "keywords": "ROCprofiler-SDK API reference, Tool library API" -.. --- -.. _ROCprofiler-SDK tool library: +.. meta:: + :description: ROCprofiler-SDK is a tooling infrastructure for profiling general-purpose GPU compute applications running on the ROCm software + :keywords: ROCprofiler-SDK API reference, Tool library API + +.. _tool-library: ROCprofiler-SDK tool library ============================ @@ -239,4 +237,3 @@ All the code snippets from the previous sections are combined here to demonstrat return &cfg; } - diff --git a/projects/rocprofiler-sdk/source/docs/index.rst b/projects/rocprofiler-sdk/source/docs/index.rst index d45208a00b..62914ff3a5 100644 --- a/projects/rocprofiler-sdk/source/docs/index.rst +++ b/projects/rocprofiler-sdk/source/docs/index.rst @@ -42,7 +42,7 @@ The documentation is structured as follows: * :doc:`Buffered services ` * :doc:`Callback services ` * :doc:`Counter collection services ` - * :doc:`Intercept table ` + * :ref:`runtime-intercept-tables` * :doc:`PC sampling ` * :doc:`Tool library ` * :doc:`ROCprofiler-SDK API library <_doxygen/rocprofiler-sdk/html/index>`