GPUOcelot
|
base class for abstract reconvergence mechanism within emulator More...
#include <ReconvergenceMechanism.h>
Public Types | |
enum | Type { Reconverge_IPDOM, Reconverge_Barrier, Reconverge_TFGen6, Reconverge_TFSortedStack, Reconverge_unknown } |
Public Member Functions | |
ReconvergenceMechanism (CooperativeThreadArray *cta) | |
virtual | ~ReconvergenceMechanism () |
virtual void | initialize ()=0 |
initializes the reconvergence mechanism | |
virtual void | evalPredicate (executive::CTAContext &context)=0 |
updates the predicate mask of the active context | |
virtual bool | eval_Bra (executive::CTAContext &context, const ir::PTXInstruction &instr, const boost::dynamic_bitset<> &branch, const boost::dynamic_bitset<> &fallthrough)=0 |
implements branch instruction and updates CTA state | |
virtual void | eval_Bar (executive::CTAContext &context, const ir::PTXInstruction &instr)=0 |
implements a barrier instruction | |
virtual void | eval_Reconverge (executive::CTAContext &context, const ir::PTXInstruction &instr)=0 |
implements reconverge instruction | |
virtual void | eval_Exit (executive::CTAContext &context, const ir::PTXInstruction &instr)=0 |
implements exit instruction | |
virtual bool | nextInstruction (executive::CTAContext &context, const ir::PTXInstruction::Opcode &opcode)=0 |
updates the active context to the next instruction | |
virtual executive::CTAContext & | getContext ()=0 |
gets the active context | |
virtual size_t | stackSize () const =0 |
gets the stack size | |
virtual void | push (executive::CTAContext &)=0 |
push a context | |
virtual void | pop ()=0 |
pop a context | |
Type | getType () const |
gets the reconvergence mechanism type | |
Static Public Member Functions | |
static std::string | toString (Type type) |
gets a string-representation of the type | |
Protected Attributes | |
Type | type |
dynamic type information for convergence mechanism | |
CooperativeThreadArray * | cta |
executing CTA |
base class for abstract reconvergence mechanism within emulator
executive::ReconvergenceMechanism::ReconvergenceMechanism | ( | CooperativeThreadArray * | cta | ) |
executive::ReconvergenceMechanism::~ReconvergenceMechanism | ( | ) | [virtual] |
virtual void executive::ReconvergenceMechanism::eval_Bar | ( | executive::CTAContext & | context, |
const ir::PTXInstruction & | instr | ||
) | [pure virtual] |
implements a barrier instruction
Implemented in executive::ReconvergenceIPDOM, executive::ReconvergenceBarrier, executive::ReconvergenceTFGen6, and executive::ReconvergenceTFSortedStack.
virtual bool executive::ReconvergenceMechanism::eval_Bra | ( | executive::CTAContext & | context, |
const ir::PTXInstruction & | instr, | ||
const boost::dynamic_bitset<> & | branch, | ||
const boost::dynamic_bitset<> & | fallthrough | ||
) | [pure virtual] |
implements branch instruction and updates CTA state
Implemented in executive::ReconvergenceIPDOM, executive::ReconvergenceBarrier, executive::ReconvergenceTFGen6, and executive::ReconvergenceTFSortedStack.
virtual void executive::ReconvergenceMechanism::eval_Exit | ( | executive::CTAContext & | context, |
const ir::PTXInstruction & | instr | ||
) | [pure virtual] |
implements exit instruction
Implemented in executive::ReconvergenceIPDOM, executive::ReconvergenceBarrier, executive::ReconvergenceTFGen6, and executive::ReconvergenceTFSortedStack.
virtual void executive::ReconvergenceMechanism::eval_Reconverge | ( | executive::CTAContext & | context, |
const ir::PTXInstruction & | instr | ||
) | [pure virtual] |
implements reconverge instruction
Implemented in executive::ReconvergenceIPDOM, executive::ReconvergenceBarrier, executive::ReconvergenceTFGen6, and executive::ReconvergenceTFSortedStack.
virtual void executive::ReconvergenceMechanism::evalPredicate | ( | executive::CTAContext & | context | ) | [pure virtual] |
updates the predicate mask of the active context
Implemented in executive::ReconvergenceIPDOM, executive::ReconvergenceBarrier, executive::ReconvergenceTFGen6, and executive::ReconvergenceTFSortedStack.
virtual executive::CTAContext& executive::ReconvergenceMechanism::getContext | ( | ) | [pure virtual] |
gets the active context
Implemented in executive::ReconvergenceIPDOM, executive::ReconvergenceBarrier, executive::ReconvergenceTFGen6, and executive::ReconvergenceTFSortedStack.
Type executive::ReconvergenceMechanism::getType | ( | ) | const [inline] |
gets the reconvergence mechanism type
virtual void executive::ReconvergenceMechanism::initialize | ( | ) | [pure virtual] |
initializes the reconvergence mechanism
Implemented in executive::ReconvergenceIPDOM, executive::ReconvergenceBarrier, executive::ReconvergenceTFGen6, and executive::ReconvergenceTFSortedStack.
virtual bool executive::ReconvergenceMechanism::nextInstruction | ( | executive::CTAContext & | context, |
const ir::PTXInstruction::Opcode & | opcode | ||
) | [pure virtual] |
updates the active context to the next instruction
Implemented in executive::ReconvergenceIPDOM, executive::ReconvergenceBarrier, executive::ReconvergenceTFGen6, and executive::ReconvergenceTFSortedStack.
virtual void executive::ReconvergenceMechanism::pop | ( | ) | [pure virtual] |
pop a context
Implemented in executive::ReconvergenceIPDOM, executive::ReconvergenceBarrier, executive::ReconvergenceTFGen6, and executive::ReconvergenceTFSortedStack.
virtual void executive::ReconvergenceMechanism::push | ( | executive::CTAContext & | ) | [pure virtual] |
push a context
Implemented in executive::ReconvergenceIPDOM, executive::ReconvergenceBarrier, executive::ReconvergenceTFGen6, and executive::ReconvergenceTFSortedStack.
virtual size_t executive::ReconvergenceMechanism::stackSize | ( | ) | const [pure virtual] |
gets the stack size
Implemented in executive::ReconvergenceIPDOM, executive::ReconvergenceBarrier, executive::ReconvergenceTFGen6, and executive::ReconvergenceTFSortedStack.
std::string executive::ReconvergenceMechanism::toString | ( | Type | type | ) | [static] |
gets a string-representation of the type
executing CTA
Type executive::ReconvergenceMechanism::type [protected] |
dynamic type information for convergence mechanism