Skip to content

AMokichev/ Add new widget to show code and correspond it to the ISA#841

Open
amokiche-amd wants to merge 8 commits into
mainfrom
amokichev/code-to-isa-widget
Open

AMokichev/ Add new widget to show code and correspond it to the ISA#841
amokiche-amd wants to merge 8 commits into
mainfrom
amokichev/code-to-isa-widget

Conversation

@amokiche-amd

@amokiche-amd amokiche-amd commented May 18, 2026

Copy link
Copy Markdown
Contributor

Motivation

[Optiq-Compute] Add new widget to show code and correspond it to the ISA
Add the prototype for PC sampling view to analyze the code and ISA

Technical Details

image

A data model for PC sampling has been added, along with data loading from the database via a controller and populating the data model. This data model is then used to build the code for ISA View. To enable this, you must build the tool with the ROCPROFVIS_DEVELOPER_MODE flag.

The part of the code responsible for the stall is a stub; there is currently no clear picture of what it should look like.

Test Plan

Test Result

Submission Checklist

@amokiche-amd amokiche-amd changed the base branch from main to dev May 18, 2026 11:18
Comment thread src/view/src/compute/rocprofvis_compute_code_view.h Fixed
Comment thread src/view/src/compute/rocprofvis_compute_code_view.h Fixed
@amokiche-amd amokiche-amd force-pushed the amokichev/code-to-isa-widget branch from d0cf578 to 41039f1 Compare May 27, 2026 11:21
Comment thread src/view/src/compute/rocprofvis_compute_code_view.cpp Fixed
Comment thread src/view/src/compute/rocprofvis_compute_code_view.cpp Fixed
Comment thread src/controller/src/compute/rocprofvis_controller_pc_sampling.cpp Fixed
Comment thread src/controller/src/compute/rocprofvis_controller_pc_sampling.cpp Fixed
Comment thread src/controller/src/compute/rocprofvis_controller_pc_sampling.cpp Fixed
Comment thread src/controller/src/compute/rocprofvis_controller_pc_sampling.cpp Fixed
Comment thread src/controller/src/compute/rocprofvis_controller_pc_sampling.cpp Fixed
Comment thread src/controller/src/compute/rocprofvis_controller_pc_sampling.h Fixed
Comment thread src/controller/src/compute/rocprofvis_controller_pc_sampling.h Fixed
Comment thread src/controller/src/compute/rocprofvis_controller_pc_sampling.h Fixed
Comment thread src/controller/src/compute/rocprofvis_controller_trace_compute.cpp Fixed
Comment thread src/controller/src/compute/rocprofvis_controller_kernel.cpp Fixed
Comment thread src/controller/src/compute/rocprofvis_controller_pc_sampling.cpp Fixed
Comment thread src/controller/src/compute/rocprofvis_controller_pc_sampling.h Fixed
Comment thread src/controller/src/compute/rocprofvis_controller_pc_sampling.cpp Dismissed
Comment thread src/controller/src/compute/rocprofvis_controller_pc_sampling.cpp Dismissed
Comment thread src/controller/src/compute/rocprofvis_controller_pc_sampling.cpp Dismissed
Comment thread src/controller/src/compute/rocprofvis_controller_pc_sampling.cpp Dismissed
Comment thread src/controller/src/compute/rocprofvis_controller_pc_sampling.cpp Dismissed
one more file

replace font stub by system font

add control panel to the view

prototype to draw the code

show isa without connecting

last changes

add common state, but broke behavour

fix selection + refactoring

make code more readable

data models with generated stubs

refactor ProcessLoadComputeTrace

Add new files to controller

Read and send one field throught DB and controller

refactor

refactor LoadPCSamplingData function

Fill source file structure

Fill source lines

fill isa lines

refactor to get rid of id offset

Load junctions

Load stall records

Get rid of stubs to load DB and use data provider for PC Sampling

add chosing of source file from dropdawn

fix split container and make splitter visible

add stall reason count and move comment to another column
@amokiche-amd amokiche-amd force-pushed the amokichev/code-to-isa-widget branch from 63f893d to 99a378d Compare June 12, 2026 15:13
@amokiche-amd amokiche-amd changed the base branch from dev to main June 12, 2026 15:14
Comment thread src/view/src/rocprofvis_data_provider.cpp Fixed
@amokiche-amd amokiche-amd marked this pull request as ready for review June 16, 2026 16:02
@drchen-amd

Copy link
Copy Markdown
Member

I haven't tested/looked deeply yet, but it looks like all data is loaded once on initial file open?

I think this use case warrants breaking up the data load into an initial discovery, followed by dynamically loading pieces driven by user input, like how the metrics how handled. I mention this because...

  1. I imagine the total volume of data for this use case may be large. Going by schema, each kernel may have multiple source files and multiple isa files, each of which is a big string list. Within each isa file, each line may have multiple stall records.
  2. We probably will not need to display all available data simultaneously. I assume we will only show one source file and one isa file, while listing the others as available.

Comment thread src/controller/src/compute/rocprofvis_controller_trace_compute.cpp Outdated
Comment thread src/controller/src/compute/rocprofvis_controller_kernel.cpp Outdated
Comment thread src/controller/src/compute/rocprofvis_controller_kernel.cpp Fixed
@amokiche-amd

Copy link
Copy Markdown
Contributor Author

I haven't tested/looked deeply yet, but it looks like all data is loaded once on initial file open?

I think this use case warrants breaking up the data load into an initial discovery, followed by dynamically loading pieces driven by user input, like how the metrics how handled. I mention this because...

  1. I imagine the total volume of data for this use case may be large. Going by schema, each kernel may have multiple source files and multiple isa files, each of which is a big string list. Within each isa file, each line may have multiple stall records.
  2. We probably will not need to display all available data simultaneously. I assume we will only show one source file and one isa file, while listing the others as available.

Now I think I should have done this in the next pull request, but since I'd already started, I finished it right away. So this functionality has been added.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants