Kernel Tuning Toolkit 2.3
 
Loading...
Searching...
No Matches
ktt::DimensionVector Class Reference

#include <DimensionVector.h>

Public Member Functions

 DimensionVector ()
 
 DimensionVector (const size_t sizeX)
 
 DimensionVector (const size_t sizeX, const size_t sizeY)
 
 DimensionVector (const size_t sizeX, const size_t sizeY, const size_t sizeZ)
 
 DimensionVector (const std::vector< size_t > &vector)
 
void SetSizeX (const size_t sizeX)
 
void SetSizeY (const size_t sizeY)
 
void SetSizeZ (const size_t sizeZ)
 
void SetSize (const ModifierDimension modifierDimension, const size_t size)
 
void Multiply (const DimensionVector &factor)
 
void Divide (const DimensionVector &divisor)
 
void RoundUp (const DimensionVector &multiple)
 
void ModifyByValue (const size_t value, const ModifierAction modifierAction, const ModifierDimension modifierDimension)
 
size_t GetSizeX () const
 
size_t GetSizeY () const
 
size_t GetSizeZ () const
 
size_t GetSize (const ModifierDimension modifierDimension) const
 
size_t GetTotalSize () const
 
std::vector< size_t > GetVector () const
 
std::string GetString () const
 
bool operator== (const DimensionVector &other) const
 
bool operator!= (const DimensionVector &other) const
 

Detailed Description

Class which holds information about either global or local thread size of a single kernel.

Constructor & Destructor Documentation

◆ DimensionVector() [1/5]

ktt::DimensionVector::DimensionVector ( )

Default constructor, creates dimension vector with thread sizes in all dimensions set to 1.

◆ DimensionVector() [2/5]

ktt::DimensionVector::DimensionVector ( const size_t  sizeX)
explicit

Constructor which creates dimension vector with specified thread size in dimension x and thread sizes in other dimensions set to 1.

Parameters
sizeXThread size in dimension x.

◆ DimensionVector() [3/5]

ktt::DimensionVector::DimensionVector ( const size_t  sizeX,
const size_t  sizeY 
)
explicit

Constructor which creates dimension vector with specified thread sizes in dimensions x and y and thread size in dimension z set to 1.

Parameters
sizeXThread size in dimension x.
sizeYThread size in dimension y.

◆ DimensionVector() [4/5]

ktt::DimensionVector::DimensionVector ( const size_t  sizeX,
const size_t  sizeY,
const size_t  sizeZ 
)
explicit

Constructor which creates dimension vector with specified thread sizes in all dimensions.

Parameters
sizeXThread size in dimension x.
sizeYThread size in dimension y.
sizeZThread size in dimension z.

◆ DimensionVector() [5/5]

ktt::DimensionVector::DimensionVector ( const std::vector< size_t > &  vector)
explicit

Constructor which creates dimension vector with thread sizes based on up to first three elements of provided vector. If size of vector is less than 3, remaining thread sizes are set to 1.

Parameters
vectorSource vector for dimension vector thread sizes.

Member Function Documentation

◆ Divide()

void ktt::DimensionVector::Divide ( const DimensionVector divisor)

Divides thread sizes by values provided by specified dimension vector.

Parameters
divisorSource of values for thread size division.

◆ GetSize()

size_t ktt::DimensionVector::GetSize ( const ModifierDimension  modifierDimension) const

Getter for thread size in specified dimension.

Parameters
modifierDimensionSpecifies which dimension size will be returned.
Returns
Thread size in specified dimension.

◆ GetSizeX()

size_t ktt::DimensionVector::GetSizeX ( ) const

Getter for thread size in dimension x.

Returns
Thread size in dimension x.

◆ GetSizeY()

size_t ktt::DimensionVector::GetSizeY ( ) const

Getter for thread size in dimension y.

Returns
Thread size in dimension y.

◆ GetSizeZ()

size_t ktt::DimensionVector::GetSizeZ ( ) const

Getter for thread size in dimension z.

Returns
Thread size in dimension z.

◆ GetString()

std::string ktt::DimensionVector::GetString ( ) const

Converts dimension vector to string.

Returns
String in format "(x, y, z)".

◆ GetTotalSize()

size_t ktt::DimensionVector::GetTotalSize ( ) const

Getter for total thread size. Total thread size is calculated by multiplying thread sizes in each dimension.

Returns
Total thread size.

◆ GetVector()

std::vector< size_t > ktt::DimensionVector::GetVector ( ) const

Converts dimension vector to STL vector. Resulting vector will always contain 3 elements.

Returns
Converted STL vector.

◆ ModifyByValue()

void ktt::DimensionVector::ModifyByValue ( const size_t  value,
const ModifierAction  modifierAction,
const ModifierDimension  modifierDimension 
)

Modifies thread size in single dimension based on provided value and action.

Parameters
valueValue which will be used to modify thread size in single dimension based on specified action.
modifierActionSpecifies which operation should be performed with thread size and specified value.
modifierDimensionSpecifies which dimension will be affected by the action.

◆ Multiply()

void ktt::DimensionVector::Multiply ( const DimensionVector factor)

Multiplies thread sizes by values provided by specified dimension vector.

Parameters
factorSource of values for thread size multiplication.

◆ operator!=()

bool ktt::DimensionVector::operator!= ( const DimensionVector other) const

Comparison operator for dimension vector. Compares thread sizes in all 3 dimensions.

Returns
True if dimension vectors are not equal. False otherwise.

◆ operator==()

bool ktt::DimensionVector::operator== ( const DimensionVector other) const

Comparison operator for dimension vector. Compares thread sizes in all 3 dimensions.

Returns
True if dimension vectors are equal. False otherwise.

◆ RoundUp()

void ktt::DimensionVector::RoundUp ( const DimensionVector multiple)

Rounds up thread sizes to be multiple of values provided by specified dimension vector.

Parameters
multipleSource of values for thread size round up.

◆ SetSize()

void ktt::DimensionVector::SetSize ( const ModifierDimension  modifierDimension,
const size_t  size 
)

Setter for thread size in specified dimension.

Parameters
modifierDimensionSpecifies which dimension size will be set.
sizeThread size in specified dimension.

◆ SetSizeX()

void ktt::DimensionVector::SetSizeX ( const size_t  sizeX)

Setter for thread size in dimension x.

Parameters
sizeXThread size in dimension x.

◆ SetSizeY()

void ktt::DimensionVector::SetSizeY ( const size_t  sizeY)

Setter for thread size in dimension y.

Parameters
sizeYThread size in dimension y.

◆ SetSizeZ()

void ktt::DimensionVector::SetSizeZ ( const size_t  sizeZ)

Setter for thread size in dimension z.

Parameters
sizeZThread size in dimension z.

The documentation for this class was generated from the following file: