![]() |
HTGS
v2.0
The Hybrid Task Graph Scheduler
|
▼ src | |
▼ htgs | |
▼ api | |
Bookkeeper.hpp | Implements the Bookkeeper class |
ExecutionPipeline.hpp | ExecutionPipeline encapsulates a task graph and duplicates it, such that each duplicate task graph executes concurrently |
ICudaTask.hpp | ICudaTask.hpp is used to define an NVIDIA Cuda GPU Tasks |
IData.hpp | Implements the IData class, which is used for all data types entering/leaving a task graph |
IMemoryAllocator.hpp | Defines how memory is allocated and freed |
IMemoryReleaseRule.hpp | Describes how memory is released |
IRule.hpp | Provides an interface to send data along RuleManager edges for processing state and dependencies |
ITask.hpp | An interface to process input data and forward results within a TaskGraph |
MemoryData.hpp | Implements MemoryData used by a MemoryManager, which can be shared among multiple ITask |
TaskGraphConf.hpp | Implements the task graph configuration class responsible for managing ITask connections |
TaskGraphRuntime.hpp | Spawns threads and binds them to the appropriate ITask within a TaskGraph |
TGTask.hpp | Holds the TGTask class implementation |
VoidData.hpp | VoidData is used for data that is empty/void |
▼ core | |
▼ comm | |
DataPacket.hpp | Implements the data packet that is used by the TaskGraphCommunicator |
TaskGraphCommunicator.hpp | Implements the task graph communicator task that communicates from each task to all other tasks in a graph |
▼ graph | |
▼ edge | |
EdgeDescriptor.hpp | Implements the edge descriptor interface to build edges for a task graph |
GraphEdge.hpp | |
GraphRuleProducerEdge.hpp | |
GraphTaskConsumerEdge.hpp | |
GraphTaskProducerEdge.hpp | |
MemoryEdge.hpp | Implements the memory edge, which is an edge descriptor |
ProducerConsumerEdge.hpp | Implements a producer consumer edge, which is a type of edge descriptor |
RuleEdge.hpp | Implements the rule edge, which is an edge descriptor |
▼ profile | |
NVTXProfiler.hpp | NVTX Profiler uses NVIDIA's NVTX API to produce profiling metrics that are visualized with Nsight Systems (https://developer.nvidia.com/nsight-systems) |
TaskGraphProfiler.hpp | Implements the task graph profiler for gathering and communicating the results via graphviz |
TaskManagerProfile.hpp | Implements the TaskManagerProfile class that is used to gather profile data for a task manager |
AnyConnector.hpp | Holds parent class for Connector, removes template type of Connector |
AnyTaskGraphConf.hpp | Implements the base class used by the TaskGraphConf, which removes the template arguments and implements functions specific to any task graph configuration |
Connector.hpp | Provides the Connector class for managing input/output of AbsData between Tasks |
▼ memory | |
AnyMemoryAllocator.hpp | Implements the the base class for memory allocators to remove the template argument and provide general functions used for any memory allocator |
CudaMemoryManager.hpp | Provides the implementation for a MemoryManager for Cuda MemoryData |
MemoryManager.hpp | Implements the MemoryManager class that processes MemoryData between two ITasks |
MemoryPool.hpp | Implements the MemoryPool class |
▼ queue | |
BlockingQueue.hpp | Implements a thread-safe BlockingQueue |
PriorityBlockingQueue.hpp | Implements a thread-safe PriorityBlockingQueue |
▼ rules | |
AnyIRule.hpp | Base class for an htgs::IRule to hide the template arguments |
AnyRuleManager.hpp | Implements a AnyRuleManager, which connects a Bookkeeper to another ITask using an IRule |
AnyRuleManagerInOnly.hpp | Implements the base class for the rule manager, but only providing the input type |
ExecutionPipelineBroadcastRule.hpp | Implements the default execution pipeline rule that broadcasts data to all pipelines |
RuleManager.hpp | Implements a RuleManager, which connects a Bookkeeper to another ITask using an IRule |
▼ task | |
AnyITask.hpp | Implements parent ITask, removing template arguments |
AnyTaskManager.hpp | Implements the parent class for a Task to remove the template arguments and the TaskManagerThread to attach a thread to a Task |
TaskManager.hpp | Implements a TaskManager that interacts with an ITask and holds the input and output Connector for the ITask |
▼ debug | |
debug_message.hpp | Provides functionality for debug messaging |
▼ log | |
log_message.hpp | Provides functionality for log messaging |
TaskGraphSignalHandler.hpp | Implements a signal handler to catch events such as termination and killing of the process. Once a signal is caught, all task graphs that are registered with the signal handler will be written as a dot file. The dot file is output in the working directory with the name of the signal as a prefix and '-graph-output.dot' as the suffix |
▼ types | |
MMType.hpp | Defines the Memory Manager types MMType |
TaskGraphDotGenFlags.hpp | Defines DOTGEN flags used for dot file generation |
Types.hpp | Defines common types used throughout the HTGS API and some of which that are used by users of HTGS such as the htgs::m_data_t |
▼ utils | |
ProfileUtils.hpp |