From a921e86ab9e3a2ae6785d720231cd445ba6affe5 Mon Sep 17 00:00:00 2001 From: Duane Merrill Date: Thu, 8 Feb 2018 15:33:20 -0500 Subject: [PATCH] Fix for Issue #128: 7-bit sorting passes fail for sm61 w/ large-values https://github.com/NVlabs/cub/issues/128 --- CHANGE_LOG.TXT | 1 + cub/block/block_radix_rank.cuh | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/CHANGE_LOG.TXT b/CHANGE_LOG.TXT index 43877dd15a..b2c717e4f6 100644 --- a/CHANGE_LOG.TXT +++ b/CHANGE_LOG.TXT @@ -4,6 +4,7 @@ - Bug fixes: - Syntax tweaks to mollify Clang - Issue #127: DeviceRunLengthEncode::Encode returns wrong results + - Issue #128: 7-bit sorting passes fail for sm61 w/ large-values //----------------------------------------------------------------------------- diff --git a/cub/block/block_radix_rank.cuh b/cub/block/block_radix_rank.cuh index b1cfe9e363..c26451c666 100644 --- a/cub/block/block_radix_rank.cuh +++ b/cub/block/block_radix_rank.cuh @@ -140,7 +140,7 @@ public: enum { /// Number of bin-starting offsets tracked per thread - BINS_TRACKED_PER_THREAD = CUB_MAX(1, RADIX_DIGITS / BLOCK_THREADS), + BINS_TRACKED_PER_THREAD = CUB_MAX(1, (RADIX_DIGITS + BLOCK_THREADS - 1) / BLOCK_THREADS), }; private: @@ -495,7 +495,7 @@ public: enum { /// Number of bin-starting offsets tracked per thread - BINS_TRACKED_PER_THREAD = CUB_MAX(1, RADIX_DIGITS / BLOCK_THREADS), + BINS_TRACKED_PER_THREAD = CUB_MAX(1, (RADIX_DIGITS + BLOCK_THREADS - 1) / BLOCK_THREADS), }; private: