Hierarchical scheduling visualization in V3ExecGraph #6009
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR improves V3ExecGraph

schedule
graph dumping.Old hierarchical version:
New hierarchical version:

Hierarchical schedules are separated with black
forks
, thread allocations from multi-thread hierarchical tasks are shown as green tasks without dependencies.I'd normalized lengths of tasks for readability. This however may cause task length misinterpretation, for instance
mt23
takes longer thanmt26/mt27
but it is shown on the left to indicate when it started. @wsnyder I can restrict this kind of graph only for hierarchical verilation if you want.Dependencies were also simplified, so that they are shown from simulation execution perspective rather than scheduling. This means that tasks with dependencies on the same thread were simplified to only depend on their neighbour and there are no inter-schedule dependencies.
Normal multi-threaded verilation schedules are still a nightmare to watch but I don't think we would like to make those diagrams interactive for dependency tracking, especially considering that

pack
graph shows them all in a more digestible manner.Old version:
New version:
