From 5a9061b5f0a6f0c456155d491e78f8093bcc426f Mon Sep 17 00:00:00 2001 From: "Peter B. Robinson" Date: Tue, 14 Jul 2026 13:45:27 -0700 Subject: [PATCH 1/2] fix endpost bug in KVS --- src/care/KeyValueSorter_decl.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/care/KeyValueSorter_decl.h b/src/care/KeyValueSorter_decl.h index 8803826e..9396f39a 100644 --- a/src/care/KeyValueSorter_decl.h +++ b/src/care/KeyValueSorter_decl.h @@ -464,7 +464,7 @@ class CARE_DLL_API KeyValueSorter { auto keys = m_keys; // Use SCAN_LOOP to identify where ranges start - SCAN_LOOP(i, start, start+len-1, idx, count, + SCAN_LOOP(i, start, start+len, idx, count, (i == start) || (keys[i] != keys[i-1])) { rangeStarts[idx] = i; } SCAN_LOOP_END(len, idx, count) From d5178e7a2f529f8e765d165c56b0df47550349c5 Mon Sep 17 00:00:00 2001 From: "Peter B. Robinson" Date: Tue, 14 Jul 2026 14:51:23 -0700 Subject: [PATCH 2/2] gpu smoketests pass clean --- src/care/KeyValueSorter_decl.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/care/KeyValueSorter_decl.h b/src/care/KeyValueSorter_decl.h index 9396f39a..f231faf5 100644 --- a/src/care/KeyValueSorter_decl.h +++ b/src/care/KeyValueSorter_decl.h @@ -467,7 +467,7 @@ class CARE_DLL_API KeyValueSorter { SCAN_LOOP(i, start, start+len, idx, count, (i == start) || (keys[i] != keys[i-1])) { rangeStarts[idx] = i; - } SCAN_LOOP_END(len, idx, count) + } SCAN_LOOP_END(start+len, idx, count) // Set the last range end rangeStarts.set(count , start+len); @@ -617,7 +617,7 @@ class CARE_DLL_API KeyValueSorter { // Use exclusive scan to compute output positions host_device_ptr positions(m_len+1); - care::exclusive_scan(RAJADeviceExec{}, isUnique, positions, m_len, 0, false); + care::exclusive_scan(RAJADeviceExec{}, isUnique, positions, m_len + 1, 0, false); // Get the total number of unique elements int newSize = positions.pick(m_len);