|
template<typename CMP> |
void | firstPhase (const CMP &Cmp) |
int | getElemPerBlock () const |
int | getSetsNeeded (int elemPerBlock) const |
void | init (Containers::ArrayView< Value, Devices::Cuda > arr, int gridDim, int blockDim, int desiredElemPerBlock, int maxSharable) |
template<typename CMP> |
int | initTasks (int elemPerBlock, const CMP &Cmp) |
template<typename CMP> |
void | performSort (const CMP &Cmp) |
void | processNewTasks () |
template<typename CMP> |
void | secondPhase (const CMP &Cmp) |
template<typename Array> |
void | sort (Array &arr) |
template<typename Array, typename Compare> |
void | sort (Array &arr, const Compare &cmp) |
|
Containers::ArrayView< Value, Devices::Cuda > | arr |
Containers::ArrayView< Value, Devices::Cuda > | aux |
Containers::Array< Value, Devices::Cuda > | auxMem |
Containers::Array< TASK, Devices::Cuda > | cuda_2ndPhaseTasks |
Containers::Array< int, Devices::Cuda > | cuda_2ndPhaseTasksAmount |
Containers::Array< int, Devices::Cuda > | cuda_blockToTaskMapping |
Containers::Array< TASK, Devices::Cuda > | cuda_newTasks |
Containers::Array< int, Devices::Cuda > | cuda_newTasksAmount |
Containers::Array< int, Devices::Cuda > | cuda_reductionTaskInitMem |
Containers::Array< TASK, Devices::Cuda > | cuda_tasks |
int | desired_2ndPhasElemPerBlock |
int | desiredElemPerBlock |
const int | g_maxTasks = 1 << 14 |
int | host_1stPhaseTasksAmount = 0 |
int | host_2ndPhaseTasksAmount = 0 |
int | iteration = 0 |
int | maxBlocks |
std::size_t | maxSharable |
int | maxTasks |
int | threadsPerBlock |
◆ firstPhase()
template<typename Value>
template<typename CMP>
does the 1st phase of Quicksort until out of task memory or each task is small enough for correctness, secondphase method needs to be called to sort each subsequences
◆ getElemPerBlock()
returns the optimal amount of elements per thread needed for phase
◆ getSetsNeeded()
returns how many blocks are needed to start sort phase 1 if
- Parameters
-
elemPerBlock | were to be used |
◆ initTasks()
template<typename Value>
template<typename CMP>
returns the amount of blocks needed to start phase 1 while also initializing all tasks
◆ processNewTasks()
update necessary variables after 1 phase1 sort
◆ secondPhase()
template<typename Value>
template<typename CMP>
The documentation for this class was generated from the following file:
- src/TNL/Algorithms/Sorting/detail/Quicksorter.h