[rocprofiler-compute] Data imputation strategy for iteration multiplexing (#2468)
* Data imputation strategy for iteration multiplexing * Implement data imputation methodology to handle missing counter values in case of iteration multiplexing * Enable dispatch filtering with iteration multiplexing since we are no longer merging dispatches * Bugfix to prevent check for missing counter values when using csv format when profiling with iteration multiplexing * Move warning and info message in case of iteration multiplexing to sanitize function which comes earlier in analyze mode * Address review comments * Fix typo in documentation * Move profiling config init. after path check in sanitize() * Graceful handling of dispatches with all counters empty within data imputation logic * Improve info message for iteration multiplexing based analysis * Ensure proper error message when trying to run iteration multiplexing with attach/detach * fix test case
Tento commit je obsažen v:
@@ -346,11 +346,6 @@ Show System Speed-of-Light and CS_Busy blocks only
|
||||
this case, ``1`` is the ID for System Speed-of-Light and ``5.1.0`` the ID for
|
||||
GPU Busy Cycles metric.
|
||||
|
||||
.. note::
|
||||
|
||||
Dispatch filtering via ``-d`` or ``--dispatch`` is not supported for profiling
|
||||
data collected with ``--iteration-multiplexing`` option.
|
||||
|
||||
Filter kernels
|
||||
First, list the top kernels in your application using `--list-stats`.
|
||||
|
||||
|
||||
@@ -42,5 +42,6 @@ The analyze options for attach/detach are completely compatible with the non-att
|
||||
.. note::
|
||||
|
||||
* Live Attach Detach feature is currently in BETA version. To enable Live/Attach Detach, you need to have the correct supported proper version of ROCprofiler-SDK and rocprofiler-register.
|
||||
* To make the Live Attach/Detach feature work, you must use "--block" or a single path to limit the number of counter input files to one. This limitation will be removed in a later version with implementations such as Iteration Multiplexing.
|
||||
* Live Attach/Detach does not work with --iteration-multiplexing option. This is because --iteration-multiplexing uses native counter collection tool which currently does not support attach/detach feature.
|
||||
* To make the Live Attach/Detach feature work, you must restrict the number of counter input files (which determine number of application runs) to one. This can be achieved with options such as: "--block", "--set".
|
||||
* Due to the limitation of ROCprofiler-SDK, the attach can now only happen before Heterogeneous System Architecture (HSA) initialization. HSA initialization happens before the execution of the first HIP kernel call. It only happens once to save all the kernels' function signature, such as the function name and other launch parameters. Attaching after this stage misses all crucial information of the HIP kernel and makes it impossible to store the output. This limitation will be solved in later releases of ROCprofiler-SDK.
|
||||
|
||||
@@ -703,6 +703,10 @@ By default, if no policy is specified, ROCm Compute Profiler uses the ``kernel_l
|
||||
Iteration multiplexing is only supported when using ROCm Compute Profiler with
|
||||
the native counter collection tool. Ensure that ``--no-native-tool`` is not used in your profiling command.
|
||||
|
||||
* Do not use ``--attach-pid`` with ``--iteration-multiplexing``.
|
||||
Iteration multiplexing is only supported when using ROCm Compute Profiler with
|
||||
the native counter collection tool. Ensure that ``--attach-pid`` is not used in your profiling command.
|
||||
|
||||
* Ensure that your workload runs for enough iterations to cover all counter subsets.
|
||||
When using iteration multiplexing, the total number of iterations, for each kernel (for ``kernel`` policy)
|
||||
or for each unique kernel and launch parameters combination (for ``kernel_launch_params`` policy),
|
||||
@@ -786,7 +790,3 @@ Iteration multiplexing feature comes with some caveats to be considered when pro
|
||||
* **Non-deterministic workloads**
|
||||
|
||||
Workloads which dispatch kernels with non-deterministic names and launch parameters may trigger warnings for insufficient dispatch counts because iteration multiplexing identifies unique kernels by their names and optionally by their launch parameters; this is especially true of large AI workloads that dispatch kernels non-deterministically based on the model layers being used for the current input, and in such cases kernel filtering of common kernels is recommended.
|
||||
|
||||
* **Cannot use with dispatch filtering**
|
||||
|
||||
It is not possible to use dispatch filtering mentioned in :ref:`Filtering <filtering>` with iteration multiplexing, because iteration multiplexing merges counters across dispatches, making it impossible to isolate specific dispatches for profiling and analysis, so attempting to combine them will result in an error.
|
||||
Odkázat v novém úkolu
Zablokovat Uživatele