HIP Streams to Queues Translation (#235)

* rocprofiler_stream_id_t: opaque handle for a stream

- e.g. HIP stream
- the same HIP stream may map to different HSA queues at different points in the application
- added to:
  - rocprofiler_buffer_tracing_hip_api_record_t
  - rocprofiler_buffer_tracing_memory_copy_record_t
  - rocprofiler_callback_tracing_hip_api_data_t
  - rocprofiler_callback_tracing_memory_copy_data_t
---------

Co-authored-by: Jonathan R. Madsen <jonathanrmadsen@gmail.com>
Co-authored-by: Mark Meserve <mark.meserve@amd.com>
Co-authored-by: Elwazir, Ammar <Ammar.Elwazir@amd.com>
Co-authored-by: Ammar ELWazir <aelwazir@amd.com>
Co-authored-by: Jakaraddi, Manjunath <Manjunath.Jakaraddi@amd.com>
Co-authored-by: Bhardwaj, Gopesh <Gopesh.Bhardwaj@amd.com>
Co-authored-by: Nagaraj, Sriraksha <Sriraksha.Nagaraj@amd.com>
Co-authored-by: U, Srihari <Srihari.U@amd.com>
Co-authored-by: Madsen, Jonathan <Jonathan.Madsen@amd.com>
Co-authored-by: Welton, Benjamin <Benjamin.Welton@amd.com>
Co-authored-by: Benjamin Welton <ben@amd.com>
Co-authored-by: Indic, Vladimir <Vladimir.Indic@amd.com>
Co-authored-by: Benjamin Welton <bewelton@amd.com>

[ROCm/rocprofiler-sdk commit: ccd1e54293]
This commit is contained in:
Trowbridge, Ian
2025-03-14 04:45:13 -05:00
committed by GitHub
parent c08db2daa1
commit 7aeaffd871
50 changed files with 1812 additions and 220 deletions
@@ -1,9 +1,9 @@
"Kind","Agent_Id","Queue_Id","Thread_Id","Dispatch_Id","Kernel_Id","Kernel_Name","Correlation_Id","Start_Timestamp","End_Timestamp","Private_Segment_Size","Group_Segment_Size","Workgroup_Size_X","Workgroup_Size_Y","Workgroup_Size_Z","Grid_Size_X","Grid_Size_Y","Grid_Size_Z"
"KERNEL_DISPATCH",1,1,69,1,16,"void addition_kernel<float>(float*, float const*, float const*, int, int)",1451,8819330200067564,8819330200116308,0,0,64,1,1,1024,1024,1
"KERNEL_DISPATCH",1,2,69,5,16,"void addition_kernel<float>(float*, float const*, float const*, int, int)",1484,8819330200118678,8819330200219573,0,0,64,1,1,1024,1024,1
"KERNEL_DISPATCH",1,1,69,2,19,"subtract_kernel(float*, float const*, float const*, int, int)",1459,8819330200120456,8819330200223721,0,0,64,1,1,1024,1024,1
"KERNEL_DISPATCH",1,3,69,9,16,"void addition_kernel<float>(float*, float const*, float const*, int, int)",1517,8819330200152902,8819330200283428,0,0,64,1,1,1024,1024,1
"KERNEL_DISPATCH",1,4,69,13,16,"void addition_kernel<float>(float*, float const*, float const*, int, int)",1550,8819330200187127,8819330200320468,0,0,64,1,1,1024,1024,1
"KERNEL_DISPATCH",1,2,69,6,19,"subtract_kernel(float*, float const*, float const*, int, int)",1492,8819330200225499,8819330200364618,0,0,64,1,1,1024,1024,1
"KERNEL_DISPATCH",1,1,69,3,18,"multiply_kernel(float*, float const*, float const*, int, int)",1467,8819330200229796,8819330200369359,0,0,64,1,1,1024,1024,1
"Kind","Agent_Id","Queue_Id","Stream_Id","Thread_Id","Dispatch_Id","Kernel_Id","Kernel_Name","Correlation_Id","Start_Timestamp","End_Timestamp","Private_Segment_Size","Group_Segment_Size","Workgroup_Size_X","Workgroup_Size_Y","Workgroup_Size_Z","Grid_Size_X","Grid_Size_Y","Grid_Size_Z"
"KERNEL_DISPATCH",2,1,1,21228,1,11,"void addition_kernel<float>(float*, float const*, float const*, int, int)",1937,2414192765353337,2414192765369494,0,0,64,1,1,1024,1024,1
"KERNEL_DISPATCH",2,1,1,21228,2,14,"subtract_kernel(float*, float const*, float const*, int, int)",1945,2414192765424862,2414192765435326,0,0,64,1,1,1024,1024,1
"KERNEL_DISPATCH",2,1,1,21228,3,13,"multiply_kernel(float*, float const*, float const*, int, int)",1953,2414192765487486,2414192765497669,0,0,64,1,1,1024,1024,1
"KERNEL_DISPATCH",2,1,1,21228,4,12,"divide_kernel(float*, float const*, float const*, int, int)",1961,2414192765545619,2414192765555722,0,0,64,1,1,1024,1024,1
"KERNEL_DISPATCH",2,2,2,21228,5,11,"void addition_kernel<float>(float*, float const*, float const*, int, int)",1969,2414192765608844,2414192765621674,0,0,64,1,1,1024,1024,1
"KERNEL_DISPATCH",2,2,2,21228,6,14,"subtract_kernel(float*, float const*, float const*, int, int)",1977,2414192765658519,2414192765669424,0,0,64,1,1,1024,1024,1
"KERNEL_DISPATCH",2,2,2,21228,7,13,"multiply_kernel(float*, float const*, float const*, int, int)",1985,2414192765715650,2414192765726795,0,0,64,1,1,1024,1024,1
"KERNEL_DISPATCH",2,2,2,21228,8,12,"divide_kernel(float*, float const*, float const*, int, int)",1993,2414192765773422,2414192765784969,0,0,64,1,1,1024,1024,1
1 Kind Agent_Id Queue_Id Stream_Id Thread_Id Dispatch_Id Kernel_Id Kernel_Name Correlation_Id Start_Timestamp End_Timestamp Private_Segment_Size Group_Segment_Size Workgroup_Size_X Workgroup_Size_Y Workgroup_Size_Z Grid_Size_X Grid_Size_Y Grid_Size_Z
2 KERNEL_DISPATCH 1 2 1 1 69 21228 1 16 11 void addition_kernel<float>(float*, float const*, float const*, int, int) 1451 1937 8819330200067564 2414192765353337 8819330200116308 2414192765369494 0 0 64 1 1 1024 1024 1
3 KERNEL_DISPATCH 1 2 2 1 1 69 21228 5 2 16 14 void addition_kernel<float>(float*, float const*, float const*, int, int) subtract_kernel(float*, float const*, float const*, int, int) 1484 1945 8819330200118678 2414192765424862 8819330200219573 2414192765435326 0 0 64 1 1 1024 1024 1
4 KERNEL_DISPATCH 1 2 1 1 69 21228 2 3 19 13 subtract_kernel(float*, float const*, float const*, int, int) multiply_kernel(float*, float const*, float const*, int, int) 1459 1953 8819330200120456 2414192765487486 8819330200223721 2414192765497669 0 0 64 1 1 1024 1024 1
5 KERNEL_DISPATCH 1 2 3 1 1 69 21228 9 4 16 12 void addition_kernel<float>(float*, float const*, float const*, int, int) divide_kernel(float*, float const*, float const*, int, int) 1517 1961 8819330200152902 2414192765545619 8819330200283428 2414192765555722 0 0 64 1 1 1024 1024 1
6 KERNEL_DISPATCH 1 2 4 2 2 69 21228 13 5 16 11 void addition_kernel<float>(float*, float const*, float const*, int, int) 1550 1969 8819330200187127 2414192765608844 8819330200320468 2414192765621674 0 0 64 1 1 1024 1024 1
7 KERNEL_DISPATCH 1 2 2 2 69 21228 6 19 14 subtract_kernel(float*, float const*, float const*, int, int) 1492 1977 8819330200225499 2414192765658519 8819330200364618 2414192765669424 0 0 64 1 1 1024 1024 1
8 KERNEL_DISPATCH 1 2 1 2 2 69 21228 3 7 18 13 multiply_kernel(float*, float const*, float const*, int, int) 1467 1985 8819330200229796 2414192765715650 8819330200369359 2414192765726795 0 0 64 1 1 1024 1024 1
9 KERNEL_DISPATCH 2 2 2 21228 8 12 divide_kernel(float*, float const*, float const*, int, int) 1993 2414192765773422 2414192765784969 0 0 64 1 1 1024 1024 1
@@ -1,3 +1,5 @@
"Kind","Direction","Source_Agent_Id","Destination_Agent_Id","Correlation_Id","Start_Timestamp","End_Timestamp"
"MEMORY_COPY","MEMORY_COPY_HOST_TO_DEVICE",0,1,0,14955949675563,14955950239443
"MEMORY_COPY","MEMORY_COPY_DEVICE_TO_HOST",1,0,0,14955952733485,14955953315285
"Kind","Direction","Stream_Id","Source_Agent_Id","Destination_Agent_Id","Correlation_Id","Start_Timestamp","End_Timestamp"
"MEMORY_COPY","MEMORY_COPY_HOST_TO_DEVICE",1,0,2,952,2414192684609085,2414192684710679
"MEMORY_COPY","MEMORY_COPY_HOST_TO_DEVICE",1,0,2,960,2414192684873841,2414192684973470
"MEMORY_COPY","MEMORY_COPY_HOST_TO_DEVICE",2,0,2,1066,2414192706436949,2414192706538622
"MEMORY_COPY","MEMORY_COPY_HOST_TO_DEVICE",2,0,2,1074,2414192706592442,2414192706692312
1 Kind Direction Stream_Id Source_Agent_Id Destination_Agent_Id Correlation_Id Start_Timestamp End_Timestamp
2 MEMORY_COPY MEMORY_COPY_HOST_TO_DEVICE 1 0 1 2 0 952 14955949675563 2414192684609085 14955950239443 2414192684710679
3 MEMORY_COPY MEMORY_COPY_DEVICE_TO_HOST MEMORY_COPY_HOST_TO_DEVICE 1 1 0 0 2 0 960 14955952733485 2414192684873841 14955953315285 2414192684973470
4 MEMORY_COPY MEMORY_COPY_HOST_TO_DEVICE 2 0 2 1066 2414192706436949 2414192706538622
5 MEMORY_COPY MEMORY_COPY_HOST_TO_DEVICE 2 0 2 1074 2414192706592442 2414192706692312
@@ -354,7 +354,7 @@ Here are the contents of ``kernel_trace.csv`` file:
.. csv-table:: Kernel trace
:file: /data/kernel_trace.csv
:widths: 10,10,10,10,10,10,10,10,20,20,10,10,10,10,10,10,10,10
:widths: 10,10,10,10,10,10,10,10,10,20,20,10,10,10,10,10,10,10,10
:header-rows: 1
For the description of the fields in the output file, see :ref:`output-file-fields`.
@@ -378,7 +378,7 @@ Here are the contents of ``memory_copy_trace.csv`` file:
.. csv-table:: Memory copy trace
:file: /data/memory_copy_trace.csv
:widths: 10,10,10,10,10,20,20
:widths: 10,10,10,10,10,10,20,20
:header-rows: 1
For the description of the fields in the output file, see :ref:`output-file-fields`.
@@ -1086,6 +1086,9 @@ The following table lists the various fields or the columns in the output CSV fi
* - Queue_Id
- ROCm queue unique identifier to which the kernel was submitted.
* - Stream_Id
- Identifies HIP stream ID to which kernel or memory copy operation was submitted. Defaults to 0 if the hip-stream-display option is not enabled
* - Private_Segment_Size
- The amount of memory required in bytes for the combined private, spill, and arg segments for a work item.