-
Notifications
You must be signed in to change notification settings - Fork 18
Task Graph
A task graph represents a parallel program's execution. It is primarily distinguished from a standard trace by including dependency information. Rather than view a program as independent streams of instructions, the task graph presents discrete tasks that have dependencies to model before each task can be executed.
A task graph is a set of tasks and directed edges. Each task has a type: create, join, sync, barrier, and work. Each task additionally contains a set (possibly empty) of actions - basic blocks and memory accesses.
File Format (task graph version 4315+):
Version Number (4 bytes)
Task Graph Index position (8 bytes)
ROI Start ID (8 bytes) // Inclusive, the first task in the ROI
ROI End ID (8 bytes) // Exclusive, the first task not in the ROI
Task Graph Info structure
Tasks 1 - N
Task Graph Index
N (4 bytes)
TaskId (8 bytes), Offset (8 bytes)