rocPRIM
Public Types | List of all members
merge_sort_config< MergeOddevenBlockSize, SortBlockSize, SortItemsPerThread, MergeMergepathPartitionBlockSize, MergeMergepathBlockSize, MergeMergepathItemsPerThread, MinInputSizeMergepath > Struct Template Reference

Configuration of device-level merge primitives. More...

#include <device_merge_sort_config.hpp>

Inheritance diagram for merge_sort_config< MergeOddevenBlockSize, SortBlockSize, SortItemsPerThread, MergeMergepathPartitionBlockSize, MergeMergepathBlockSize, MergeMergepathItemsPerThread, MinInputSizeMergepath >:
Inheritance graph
[legend]
Collaboration diagram for merge_sort_config< MergeOddevenBlockSize, SortBlockSize, SortItemsPerThread, MergeMergepathPartitionBlockSize, MergeMergepathBlockSize, MergeMergepathItemsPerThread, MinInputSizeMergepath >:
Collaboration graph
[legend]

Public Types

using block_sort_config = detail::merge_sort_block_sort_config< SortBlockSize, SortItemsPerThread, block_sort_algorithm::stable_merge_sort >
 
using block_merge_config = detail::merge_sort_block_merge_config< MergeOddevenBlockSize, 1, MinInputSizeMergepath, MergeMergepathBlockSize, MergeMergepathBlockSize, MergeMergepathItemsPerThread >
 

Additional Inherited Members

- Public Attributes inherited from detail::merge_sort_config_params
merge_sort_block_sort_config_params block_sort_config
 
merge_sort_block_merge_config_params block_merge_config
 

Detailed Description

template<unsigned int MergeOddevenBlockSize = 512, unsigned int SortBlockSize = MergeOddevenBlockSize, unsigned int SortItemsPerThread = 1, unsigned int MergeMergepathPartitionBlockSize = 128, unsigned int MergeMergepathBlockSize = 128, unsigned int MergeMergepathItemsPerThread = 4, unsigned int MinInputSizeMergepath = (1 << 17) + 70000>
struct merge_sort_config< MergeOddevenBlockSize, SortBlockSize, SortItemsPerThread, MergeMergepathPartitionBlockSize, MergeMergepathBlockSize, MergeMergepathItemsPerThread, MinInputSizeMergepath >

Configuration of device-level merge primitives.

Template Parameters
SortBlockSize- block size in the block-sort step
SortItemsPerThread- ItemsPerThread in the block-sort step
MergeOddevenBlockSize- block size in the block merge step using oddeven impl (used when input_size < MinInputSizeMergepath)
MergeMergepathPartitionBlockSize- block size of the partition kernel in the block merge step using mergepath impl
MergeMergepathBlockSize- block size in the block merge step using mergepath impl
MergeMergepathItemsPerThread- ItemsPerThread in the block merge step using mergepath impl
MinInputSizeMergepath- breakpoint of input-size to use mergepath impl for block merge step

Member Typedef Documentation

◆ block_sort_config

template<unsigned int MergeOddevenBlockSize = 512, unsigned int SortBlockSize = MergeOddevenBlockSize, unsigned int SortItemsPerThread = 1, unsigned int MergeMergepathPartitionBlockSize = 128, unsigned int MergeMergepathBlockSize = 128, unsigned int MergeMergepathItemsPerThread = 4, unsigned int MinInputSizeMergepath = (1 << 17) + 70000>
using merge_sort_config< MergeOddevenBlockSize, SortBlockSize, SortItemsPerThread, MergeMergepathPartitionBlockSize, MergeMergepathBlockSize, MergeMergepathItemsPerThread, MinInputSizeMergepath >::block_sort_config = detail::merge_sort_block_sort_config<SortBlockSize, SortItemsPerThread, block_sort_algorithm::stable_merge_sort>
Remarks
Here we map the public parameters to our internal structure.

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