Talvos  0.1
SPIR-V interpreter and dynamic analysis framework
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
Public Types | Public Member Functions | Private Attributes | List of all members
talvos::Workgroup Class Reference

This class represents a workgroup executing a compute command. More...

#include <talvos/Workgroup.h>

Public Types

typedef std::vector
< std::unique_ptr< Invocation > > 
WorkItemList
 List of work items in the workgroup. More...
 
typedef std::vector< std::pair
< uint32_t, Object > > 
VariableList
 List of mappings from variable ID to object. More...
 

Public Member Functions

 Workgroup (Device &Dev, const PipelineExecutor &Executor, Dim3 GroupId)
 Create a workgroup. More...
 
 ~Workgroup ()
 Destroy this workgroup. More...
 
void addWorkItem (std::unique_ptr< Invocation > WorkItem)
 Add a work-item invocation to this group, transferring ownership. More...
 
Dim3 getGroupId () const
 Returns the group ID of this workgroup. More...
 
Memory & getLocalMemory ()
 Returns the local memory instance associated with this workgroup. More...
 
const WorkItemList & getWorkItems () const
 Return the list of work items in this workgroup. More...
 
const VariableList & getVariables () const
 Return the workgroup scope variable pointer values. More...
 
 Workgroup (const Workgroup &)=delete
 
Workgroup & operator= (const Workgroup &)=delete
 

Private Attributes

Dim3 GroupId
 The group ID. More...
 
Memory * LocalMemory
 The local memory of this workgroup. More...
 
WorkItemList WorkItems
 List of work items in this workgroup. More...
 
VariableList Variables
 Workgroup scope OpVariable allocations. More...
 

Detailed Description

This class represents a workgroup executing a compute command.

Definition at line 27 of file Workgroup.h.

Member Typedef Documentation

typedef std::vector<std::pair<uint32_t, Object> > talvos::Workgroup::VariableList

List of mappings from variable ID to object.

Definition at line 34 of file Workgroup.h.

typedef std::vector<std::unique_ptr<Invocation> > talvos::Workgroup::WorkItemList

List of work items in the workgroup.

Definition at line 31 of file Workgroup.h.

Constructor & Destructor Documentation

talvos::Workgroup::Workgroup ( Device &  Dev,
const PipelineExecutor &  Executor,
Dim3  GroupId 
)

Create a workgroup.

Definition at line 23 of file Workgroup.cpp.

talvos::Workgroup::~Workgroup ( )

Destroy this workgroup.

Definition at line 44 of file Workgroup.cpp.

talvos::Workgroup::Workgroup ( const Workgroup &  )
delete

Member Function Documentation

void talvos::Workgroup::addWorkItem ( std::unique_ptr< Invocation >  WorkItem)

Add a work-item invocation to this group, transferring ownership.

Definition at line 46 of file Workgroup.cpp.

Dim3 talvos::Workgroup::getGroupId ( ) const
inline

Returns the group ID of this workgroup.

Definition at line 52 of file Workgroup.h.

Memory& talvos::Workgroup::getLocalMemory ( )
inline

Returns the local memory instance associated with this workgroup.

Definition at line 55 of file Workgroup.h.

const VariableList& talvos::Workgroup::getVariables ( ) const
inline

Return the workgroup scope variable pointer values.

Definition at line 61 of file Workgroup.h.

const WorkItemList& talvos::Workgroup::getWorkItems ( ) const
inline

Return the list of work items in this workgroup.

Definition at line 58 of file Workgroup.h.

Workgroup& talvos::Workgroup::operator= ( const Workgroup &  )
delete

Member Data Documentation

Dim3 talvos::Workgroup::GroupId
private

The group ID.

Definition at line 64 of file Workgroup.h.

Memory* talvos::Workgroup::LocalMemory
private

The local memory of this workgroup.

Definition at line 66 of file Workgroup.h.

VariableList talvos::Workgroup::Variables
private

Workgroup scope OpVariable allocations.

Definition at line 70 of file Workgroup.h.

WorkItemList talvos::Workgroup::WorkItems
private

List of work items in this workgroup.

Definition at line 68 of file Workgroup.h.