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...
 
MemorygetLocalMemory ()
 Returns the local memory instance associated with this workgroup. More...
 
const WorkItemListgetWorkItems () const
 Return the list of work items in this workgroup. More...
 
const VariableListgetVariables () const
 Return the workgroup scope variable pointer values. More...
 
 Workgroup (const Workgroup &)=delete
 
Workgroupoperator= (const Workgroup &)=delete
 

Private Attributes

Dim3 GroupId
 The group ID. More...
 
MemoryLocalMemory
 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.