Skip to content

Feature/oro 0 radixsort os ver2#87

Open
AtsushiYoshimura0302 wants to merge 71 commits intomainfrom
feature/ORO-0-radixsort-OS-ver2
Open

Feature/oro 0 radixsort os ver2#87
AtsushiYoshimura0302 wants to merge 71 commits intomainfrom
feature/ORO-0-radixsort-OS-ver2

Conversation

@AtsushiYoshimura0302
Copy link
Copy Markdown

@AtsushiYoshimura0302 AtsushiYoshimura0302 commented Jan 9, 2024

This is faster and more robust for conflicts keys than this #71

key about 12.10GKeys/s-> 14.34GKeys/s
key value about 7.65GKeys/s -> 7.91GKeys/s

( including copy, with many conflicts due to the current key preparations )

KaoCC and others added 30 commits September 7, 2023 13:31
Signed-off-by: Chih-Chen Kao <ChihChen.Kao@amd.com>
Signed-off-by: Chih-Chen Kao <ChihChen.Kao@amd.com>
Signed-off-by: Chih-Chen Kao <ChihChen.Kao@amd.com>
Signed-off-by: Chih-Chen Kao <ChihChen.Kao@amd.com>
…rt-OS-fixedalloc

# Conflicts:
#	ParallelPrimitives/RadixSort.cpp
#	ParallelPrimitives/RadixSort.h
#	ParallelPrimitives/RadixSort.inl
#	ParallelPrimitives/RadixSortKernels.h
…rt-OS-fixedalloc

# Conflicts:
#	ParallelPrimitives/RadixSort.cpp
#	ParallelPrimitives/RadixSort.h
#	ParallelPrimitives/RadixSortKernels.h
…rt-OS-fixedalloc

# Conflicts:
#	ParallelPrimitives/RadixSort.cpp
static_assert( DEFAULT_SCAN_BLOCK_SIZE % DEFAULT_WARP_SIZE == 0 );
constexpr int WARP_SIZE = 32;

constexpr int RADIX_SORT_BLOCK_SIZE = 4096;
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does this mean that in this version, the block size and the parameters below are all fixed again ?

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes. but even with fixed size, the temporal allocation is fixed.

void sort( const KeyValueSoA& src, const KeyValueSoA& dst, uint32_t n, int startBit, int endBit, oroStream stream = 0 ) noexcept;

void sort( const u32* src, const u32* dst, int n, int startBit, int endBit, oroStream stream = 0 ) noexcept;
void sort( u32* src, u32* dst, uint32_t n, int startBit, int endBit, oroStream stream = 0 ) noexcept;
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

src should remain constant. It is a pointer to a const u32 array.

// Floor
number_of_blocks = ( number_of_blocks / base ) * base;
}
// TODO: bit code support?
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

not sure what to do about this ... should we disable bitcode for now ?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants