From c60ec5bd0f9a961c9ccb3987178e6870137788d4 Mon Sep 17 00:00:00 2001 From: dumerrill Date: Tue, 25 Feb 2014 07:18:23 -0500 Subject: [PATCH] Doc updates for new version Former-commit-id: 1cf8089a3252e298d7cc4404accdea875e9b1fce --- CHANGE_LOG.TXT | 5 + LICENSE.TXT | 2 +- README.md | 5 +- cub/block/block_discontinuity.cuh | 12 +- cub/block/block_exchange.cuh | 10 +- cub/block/block_histogram.cuh | 2 +- cub/block/block_load.cuh | 32 +-- cub/block/block_radix_rank.cuh | 4 +- cub/block/block_radix_sort.cuh | 36 ++-- cub/block/block_raking_layout.cuh | 2 +- cub/block/block_reduce.cuh | 8 +- cub/block/block_scan.cuh.REMOVED.git-id | 2 +- cub/block/block_shift.cuh | 2 +- cub/block/block_store.cuh | 32 +-- .../block_histogram_atomic.cuh | 2 +- .../specializations/block_histogram_sort.cuh | 2 +- .../specializations/block_reduce_raking.cuh | 2 +- .../block_reduce_warp_reductions.cuh | 2 +- .../specializations/block_scan_raking.cuh | 2 +- .../specializations/block_scan_warp_scans.cuh | 2 +- cub/cub.cuh | 2 +- cub/device/device_histogram.cuh | 14 +- cub/device/device_partition.cuh | 47 +++- cub/device/device_radix_sort.cuh | 36 +++- cub/device/device_reduce.cuh | 89 +++++++- cub/device/device_reduce_by_key.cuh | 2 +- cub/device/device_scan.cuh | 34 ++- cub/device/device_select.cuh | 74 +++++-- cub/device/region/block_histo_region.cuh | 2 +- .../block_radix_sort_downsweep_region.cuh | 2 +- .../block_radix_sort_upsweep_region.cuh | 2 +- .../region/block_reduce_by_key_region.cuh | 2 +- cub/device/region/block_reduce_region.cuh | 2 +- cub/device/region/block_scan_region.cuh | 2 +- cub/device/region/block_select_region.cuh | 2 +- cub/device/region/device_scan_types.cuh | 2 +- .../block_histo_region_gatomic.cuh | 2 +- .../block_histo_region_satomic.cuh | 2 +- .../block_histo_region_sort.cuh | 2 +- cub/grid/grid_barrier.cuh | 2 +- cub/grid/grid_even_share.cuh | 2 +- cub/grid/grid_mapping.cuh | 2 +- cub/grid/grid_queue.cuh | 2 +- cub/host/spinlock.cuh | 2 +- cub/iterator/arg_index_input_iterator.cuh | 2 +- .../cache_modified_input_iterator.cuh | 2 +- .../cache_modified_output_iterator.cuh | 2 +- cub/iterator/constant_input_iterator.cuh | 2 +- cub/iterator/counting_input_iterator.cuh | 2 +- cub/iterator/tex_obj_input_iterator.cuh | 2 +- cub/iterator/tex_ref_input_iterator.cuh | 2 +- cub/iterator/transform_input_iterator.cuh | 2 +- cub/thread/thread_load.cuh | 2 +- cub/thread/thread_operators.cuh | 2 +- cub/thread/thread_reduce.cuh | 2 +- cub/thread/thread_scan.cuh | 2 +- cub/thread/thread_store.cuh | 2 +- cub/util_allocator.cuh | 2 +- cub/util_arch.cuh | 2 +- cub/util_debug.cuh | 2 +- cub/util_device.cuh | 2 +- cub/util_macro.cuh | 2 +- cub/util_namespace.cuh | 2 +- cub/util_ptx.cuh | 2 +- cub/util_type.cuh | 2 +- cub/warp/specializations/warp_reduce_shfl.cuh | 2 +- cub/warp/specializations/warp_reduce_smem.cuh | 2 +- cub/warp/specializations/warp_scan_shfl.cuh | 2 +- cub/warp/specializations/warp_scan_smem.cuh | 2 +- cub/warp/warp_reduce.cuh | 2 +- cub/warp/warp_scan.cuh | 2 +- docs/Doxyfile | 4 + docs/device_perf.xls.REMOVED.git-id | 2 +- docs/download_cub.html | 6 +- docs/images/cub_overview.png | Bin 27813 -> 28860 bytes .../performance/lsb_radix_sort_int32_keys.png | Bin 9414 -> 10480 bytes .../lsb_radix_sort_int32_pairs.png | Bin 10668 -> 11560 bytes .../performance/lsb_radix_sort_int64_keys.png | Bin 10924 -> 11147 bytes .../lsb_radix_sort_int64_pairs.png | Bin 10552 -> 11480 bytes .../partition_if_int32_50_percent.png | Bin 10724 -> 11552 bytes .../partition_if_int32_5_percent.png | Bin 10722 -> 11663 bytes .../partition_if_int64_50_percent.png | Bin 11019 -> 11733 bytes .../partition_if_int64_5_percent.png | Bin 11105 -> 11817 bytes .../performance/reduce_by_key_fp32_len_5.png | Bin 10395 -> 11374 bytes .../reduce_by_key_fp32_len_500.png | Bin 10544 -> 11504 bytes .../performance/reduce_by_key_fp64_len_5.png | Bin 10277 -> 11523 bytes .../reduce_by_key_fp64_len_500.png | Bin 9893 -> 11074 bytes docs/images/performance/reduce_int32.png | Bin 11425 -> 11841 bytes docs/images/performance/reduce_int64.png | Bin 10810 -> 11189 bytes docs/images/performance/rle_int32_len_5.png | Bin 10672 -> 11551 bytes docs/images/performance/rle_int32_len_500.png | Bin 10635 -> 11396 bytes docs/images/performance/rle_int64_len_5.png | Bin 10627 -> 11548 bytes docs/images/performance/rle_int64_len_500.png | Bin 11120 -> 11237 bytes docs/images/performance/scan_int32.png | Bin 9649 -> 11520 bytes docs/images/performance/scan_int64.png | Bin 10591 -> 11359 bytes .../select_if_int32_50_percent.png | Bin 10808 -> 11797 bytes .../performance/select_if_int32_5_percent.png | Bin 11178 -> 11988 bytes .../select_if_int64_50_percent.png | Bin 10624 -> 11514 bytes .../performance/select_if_int64_5_percent.png | Bin 10913 -> 11276 bytes .../performance/select_unique_int32_len_5.png | Bin 10186 -> 11843 bytes .../select_unique_int32_len_500.png | Bin 10970 -> 11771 bytes .../performance/select_unique_int64_len_5.png | Bin 10966 -> 11808 bytes .../select_unique_int64_len_500.png | Bin 11131 -> 11318 bytes docs/mainpage.dox | 203 +++++++++++------- examples/block/Makefile | 2 +- examples/block/example_block_radix_sort.cu | 2 +- examples/block/example_block_reduce.cu | 2 +- examples/block/example_block_scan.cu | 2 +- .../example_block_tridiagonal_solve.cu | 2 +- examples/device/Makefile | 2 +- examples/device/example_device_histogram.cu | 2 +- .../example_device_partition_flagged.cu | 2 +- .../device/example_device_partition_if.cu | 2 +- examples/device/example_device_radix_sort.cu | 2 +- examples/device/example_device_reduce.cu | 2 +- examples/device/example_device_scan.cu | 2 +- .../device/example_device_select_flagged.cu | 2 +- examples/device/example_device_select_if.cu | 2 +- .../device/example_device_select_unique.cu | 2 +- examples/device/experimental/coo_graph.cuh | 2 +- .../device/experimental/example_coo_spmv.cu | 2 +- .../experimental/test_device_seg_reduce.cu | 2 +- test/Makefile | 2 +- test/test_allocator.cu | 2 +- test/test_block_histogram.cu | 2 +- test/test_block_load_store.cu | 2 +- test/test_block_radix_sort.cu | 2 +- test/test_block_reduce.cu | 2 +- test/test_block_scan.cu | 2 +- test/test_device_histogram.cu | 2 +- test/test_device_radix_sort.cu | 2 +- test/test_device_reduce.cu | 2 +- test/test_device_reduce_by_key.cu | 57 +++-- test/test_device_scan.cu | 2 +- test/test_device_select_flagged.cu | 2 +- test/test_device_select_if.cu | 2 +- test/test_device_select_unique.cu | 2 +- test/test_grid_barrier.cu | 2 +- test/test_iterator.cu | 2 +- test/test_util.h | 2 +- test/test_warp_reduce.cu | 2 +- test/test_warp_scan.cu | 2 +- tune/Makefile | 2 +- tune/tune_device_reduce.cu | 2 +- 144 files changed, 592 insertions(+), 308 deletions(-) diff --git a/CHANGE_LOG.TXT b/CHANGE_LOG.TXT index 6cbb0b044f..5713441b04 100644 --- a/CHANGE_LOG.TXT +++ b/CHANGE_LOG.TXT @@ -1,5 +1,10 @@ //----------------------------------------------------------------------------- +1.2.0 02/25/2014 + - New features: + +//----------------------------------------------------------------------------- + 1.1.1 12/11/2013 - New features: - Added TexObjInputIterator, TexRefInputIterator, CacheModifiedInputIterator, and CacheModifiedOutputIterator types for loading & storing arbitrary types through the cache hierarchy. Compatible with Thrust API. diff --git a/LICENSE.TXT b/LICENSE.TXT index 99415665a9..ab0505796d 100644 --- a/LICENSE.TXT +++ b/LICENSE.TXT @@ -1,5 +1,5 @@ Copyright (c) 2010-2011, Duane Merrill. All rights reserved. -Copyright (c) 2011-2013, NVIDIA CORPORATION. All rights reserved. +Copyright (c) 2011-2014, NVIDIA CORPORATION. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: diff --git a/README.md b/README.md index 7bb5ca7fd4..e89220a2ae 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@

About CUB

-Current release: v1.1.1 (December 11, 2013) +Current release: v1.2.0 (February 25, 2014) We recommend the [CUB Project Website](http://nvlabs.github.com/cub) and the [cub-users discussion forum](http://groups.google.com/group/cub-users) for further information and examples. @@ -84,6 +84,7 @@ See [CUB Project Website](http://nvlabs.github.com/cub) for more information. | Date | Version | | ---- | ------- | +| 02/25/2014 | [CUB v1.2.0 Primary Release](https://github.com/NVlabs/cub/archive/1.2.0.zip) | | 12/10/2013 | [CUB v1.1.1 Primary Release](https://github.com/NVlabs/cub/archive/1.1.1.zip) | | 08/08/2013 | [CUB v1.0.1 Primary Release](https://github.com/NVlabs/cub/archive/1.0.1.zip) | | 05/07/2013 | [CUB v0.9.4 Update Release](https://github.com/NVlabs/cub/archive/0.9.4.zip) | @@ -104,7 +105,7 @@ CUB is available under the "New BSD" open-source license: ``` Copyright (c) 2010-2011, Duane Merrill. All rights reserved. -Copyright (c) 2011-2013, NVIDIA CORPORATION. All rights reserved. +Copyright (c) 2011-2014, NVIDIA CORPORATION. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: diff --git a/cub/block/block_discontinuity.cuh b/cub/block/block_discontinuity.cuh index 3cb48a375d..8348ee7f7e 100644 --- a/cub/block/block_discontinuity.cuh +++ b/cub/block/block_discontinuity.cuh @@ -1,6 +1,6 @@ /****************************************************************************** * Copyright (c) 2011, Duane Merrill. All rights reserved. - * Copyright (c) 2011-2013, NVIDIA CORPORATION. All rights reserved. + * Copyright (c) 2011-2014, NVIDIA CORPORATION. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: @@ -61,7 +61,7 @@ namespace cub { * \blockcollective{BlockDiscontinuity} * \par * The code snippet below illustrates the head flagging of 512 integer items that - * are partitioned in a [blocked arrangement](index.html#sec4sec3) across 128 threads + * are partitioned in a [blocked arrangement](index.html#sec5sec3) across 128 threads * where each thread owns 4 consecutive items. * \par * \code @@ -274,7 +274,7 @@ public: * * \par * The code snippet below illustrates the head-flagging of 512 integer items that - * are partitioned in a [blocked arrangement](index.html#sec4sec3) across 128 threads + * are partitioned in a [blocked arrangement](index.html#sec5sec3) across 128 threads * where each thread owns 4 consecutive items. * \par * \code @@ -352,7 +352,7 @@ public: * * \par * The code snippet below illustrates the head-flagging of 512 integer items that - * are partitioned in a [blocked arrangement](index.html#sec4sec3) across 128 threads + * are partitioned in a [blocked arrangement](index.html#sec5sec3) across 128 threads * where each thread owns 4 consecutive items. * \par * \code @@ -445,7 +445,7 @@ public: * * \par * The code snippet below illustrates the tail-flagging of 512 integer items that - * are partitioned in a [blocked arrangement](index.html#sec4sec3) across 128 threads + * are partitioned in a [blocked arrangement](index.html#sec5sec3) across 128 threads * where each thread owns 4 consecutive items. * \par * \code @@ -524,7 +524,7 @@ public: * * \par * The code snippet below illustrates the tail-flagging of 512 integer items that - * are partitioned in a [blocked arrangement](index.html#sec4sec3) across 128 threads + * are partitioned in a [blocked arrangement](index.html#sec5sec3) across 128 threads * where each thread owns 4 consecutive items. * \par * \code diff --git a/cub/block/block_exchange.cuh b/cub/block/block_exchange.cuh index 87c9e74b6f..f94947cb17 100644 --- a/cub/block/block_exchange.cuh +++ b/cub/block/block_exchange.cuh @@ -1,6 +1,6 @@ /****************************************************************************** * Copyright (c) 2011, Duane Merrill. All rights reserved. - * Copyright (c) 2011-2013, NVIDIA CORPORATION. All rights reserved. + * Copyright (c) 2011-2014, NVIDIA CORPORATION. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: @@ -60,10 +60,10 @@ namespace cub { * yet most block-wide operations prefer a "blocked" partitioning of items across threads * (where consecutive items belong to a single thread). * - BlockExchange supports the following types of data exchanges: - * - Transposing between [blocked](index.html#sec4sec3) and [striped](index.html#sec4sec3) arrangements - * - Transposing between [blocked](index.html#sec4sec3) and [warp-striped](index.html#sec4sec3) arrangements - * - Scattering ranked items to a [blocked arrangement](index.html#sec4sec3) - * - Scattering ranked items to a [striped arrangement](index.html#sec4sec3) + * - Transposing between [blocked](index.html#sec5sec3) and [striped](index.html#sec5sec3) arrangements + * - Transposing between [blocked](index.html#sec5sec3) and [warp-striped](index.html#sec5sec3) arrangements + * - Scattering ranked items to a [blocked arrangement](index.html#sec5sec3) + * - Scattering ranked items to a [striped arrangement](index.html#sec5sec3) * * \par A Simple Example * \blockcollective{BlockExchange} diff --git a/cub/block/block_histogram.cuh b/cub/block/block_histogram.cuh index f1b2f44ff7..ec2eede6fb 100644 --- a/cub/block/block_histogram.cuh +++ b/cub/block/block_histogram.cuh @@ -1,6 +1,6 @@ /****************************************************************************** * Copyright (c) 2011, Duane Merrill. All rights reserved. - * Copyright (c) 2011-2013, NVIDIA CORPORATION. All rights reserved. + * Copyright (c) 2011-2014, NVIDIA CORPORATION. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: diff --git a/cub/block/block_load.cuh b/cub/block/block_load.cuh index 1a938015fd..739290a4ff 100644 --- a/cub/block/block_load.cuh +++ b/cub/block/block_load.cuh @@ -1,6 +1,6 @@ /****************************************************************************** * Copyright (c) 2011, Duane Merrill. All rights reserved. - * Copyright (c) 2011-2013, NVIDIA CORPORATION. All rights reserved. + * Copyright (c) 2011-2014, NVIDIA CORPORATION. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: @@ -441,7 +441,7 @@ enum BlockLoadAlgorithm /** * \par Overview * - * A [blocked arrangement](index.html#sec4sec3) of data is read + * A [blocked arrangement](index.html#sec5sec3) of data is read * directly from memory. The thread block reads items in a parallel "raking" fashion: threadi * reads the ith segment of consecutive elements. * @@ -454,7 +454,7 @@ enum BlockLoadAlgorithm /** * \par Overview * - * A [blocked arrangement](index.html#sec4sec3) of data is read directly + * A [blocked arrangement](index.html#sec5sec3) of data is read directly * from memory using CUDA's built-in vectorized loads as a coalescing optimization. * The thread block reads items in a parallel "raking" fashion: threadi uses vector loads to * read the ith segment of consecutive elements. @@ -476,13 +476,13 @@ enum BlockLoadAlgorithm /** * \par Overview * - * A [striped arrangement](index.html#sec4sec3) of data is read + * A [striped arrangement](index.html#sec5sec3) of data is read * directly from memory and then is locally transposed into a - * [blocked arrangement](index.html#sec4sec3). The thread block + * [blocked arrangement](index.html#sec5sec3). The thread block * reads items in a parallel "strip-mining" fashion: * threadi reads items having stride \p BLOCK_THREADS * between them. cub::BlockExchange is then used to locally reorder the items - * into a [blocked arrangement](index.html#sec4sec3). + * into a [blocked arrangement](index.html#sec5sec3). * * \par Performance Considerations * - The utilization of memory transactions (coalescing) remains high regardless @@ -496,13 +496,13 @@ enum BlockLoadAlgorithm /** * \par Overview * - * A [warp-striped arrangement](index.html#sec4sec3) of data is read + * A [warp-striped arrangement](index.html#sec5sec3) of data is read * directly from memory and then is locally transposed into a - * [blocked arrangement](index.html#sec4sec3). Each warp reads its own + * [blocked arrangement](index.html#sec5sec3). Each warp reads its own * contiguous segment in a parallel "strip-mining" fashion: lanei * reads items having stride \p WARP_THREADS between them. cub::BlockExchange * is then used to locally reorder the items into a - * [blocked arrangement](index.html#sec4sec3). + * [blocked arrangement](index.html#sec5sec3). * * \par Usage Considerations * - BLOCK_THREADS must be a multiple of WARP_THREADS @@ -518,7 +518,7 @@ enum BlockLoadAlgorithm /** - * \brief The BlockLoad class provides [collective](index.html#sec0) data movement methods for loading a linear segment of items from memory into a [blocked arrangement](index.html#sec4sec3) across a CUDA thread block. ![](block_load_logo.png) + * \brief The BlockLoad class provides [collective](index.html#sec0) data movement methods for loading a linear segment of items from memory into a [blocked arrangement](index.html#sec5sec3) across a CUDA thread block. ![](block_load_logo.png) * \ingroup BlockModule * \ingroup UtilIo * @@ -533,17 +533,17 @@ enum BlockLoadAlgorithm * to implement different cub::BlockLoadAlgorithm strategies. This facilitates different * performance policies for different architectures, data types, granularity sizes, etc. * - BlockLoad can be optionally specialized by different data movement strategies: - * -# cub::BLOCK_LOAD_DIRECT. A [blocked arrangement](index.html#sec4sec3) + * -# cub::BLOCK_LOAD_DIRECT. A [blocked arrangement](index.html#sec5sec3) * of data is read directly from memory. [More...](\ref cub::BlockLoadAlgorithm) - * -# cub::BLOCK_LOAD_VECTORIZE. A [blocked arrangement](index.html#sec4sec3) + * -# cub::BLOCK_LOAD_VECTORIZE. A [blocked arrangement](index.html#sec5sec3) * of data is read directly from memory using CUDA's built-in vectorized loads as a * coalescing optimization. [More...](\ref cub::BlockLoadAlgorithm) - * -# cub::BLOCK_LOAD_TRANSPOSE. A [striped arrangement](index.html#sec4sec3) + * -# cub::BLOCK_LOAD_TRANSPOSE. A [striped arrangement](index.html#sec5sec3) * of data is read directly from memory and is then locally transposed into a - * [blocked arrangement](index.html#sec4sec3). [More...](\ref cub::BlockLoadAlgorithm) - * -# cub::BLOCK_LOAD_WARP_TRANSPOSE. A [warp-striped arrangement](index.html#sec4sec3) + * [blocked arrangement](index.html#sec5sec3). [More...](\ref cub::BlockLoadAlgorithm) + * -# cub::BLOCK_LOAD_WARP_TRANSPOSE. A [warp-striped arrangement](index.html#sec5sec3) * of data is read directly from memory and is then locally transposed into a - * [blocked arrangement](index.html#sec4sec3). [More...](\ref cub::BlockLoadAlgorithm) + * [blocked arrangement](index.html#sec5sec3). [More...](\ref cub::BlockLoadAlgorithm) * * \par A Simple Example * \blockcollective{BlockLoad} diff --git a/cub/block/block_radix_rank.cuh b/cub/block/block_radix_rank.cuh index 479cf78a50..126c2d2739 100644 --- a/cub/block/block_radix_rank.cuh +++ b/cub/block/block_radix_rank.cuh @@ -1,6 +1,6 @@ /****************************************************************************** * Copyright (c) 2011, Duane Merrill. All rights reserved. - * Copyright (c) 2011-2013, NVIDIA CORPORATION. All rights reserved. + * Copyright (c) 2011-2014, NVIDIA CORPORATION. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: @@ -63,7 +63,7 @@ namespace cub { * * \par Usage Considerations * - Keys must be in a form suitable for radix ranking (i.e., unsigned bits). - * - Assumes a [blocked arrangement](index.html#sec4sec3) of elements across threads + * - Assumes a [blocked arrangement](index.html#sec5sec3) of elements across threads * - \smemreuse{BlockRadixRank::TempStorage} * * \par Performance Considerations diff --git a/cub/block/block_radix_sort.cuh b/cub/block/block_radix_sort.cuh index 9c71ea387e..9e43a7422a 100644 --- a/cub/block/block_radix_sort.cuh +++ b/cub/block/block_radix_sort.cuh @@ -1,6 +1,6 @@ /****************************************************************************** * Copyright (c) 2011, Duane Merrill. All rights reserved. - * Copyright (c) 2011-2013, NVIDIA CORPORATION. All rights reserved. + * Copyright (c) 2011-2014, NVIDIA CORPORATION. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: @@ -81,7 +81,7 @@ namespace cub { * \blockcollective{BlockRadixSort} * \par * The code snippet below illustrates a sort of 512 integer keys that - * are partitioned in a [blocked arrangement](index.html#sec4sec3) across 128 threads + * are partitioned in a [blocked arrangement](index.html#sec5sec3) across 128 threads * where each thread owns 4 consecutive items. * \par * \code @@ -433,7 +433,7 @@ public: //@{ /** - * \brief Performs an ascending block-wide radix sort over a [blocked arrangement](index.html#sec4sec3) of keys. + * \brief Performs an ascending block-wide radix sort over a [blocked arrangement](index.html#sec5sec3) of keys. * * \par * - \granularity @@ -441,7 +441,7 @@ public: * * \par * The code snippet below illustrates a sort of 512 integer keys that - * are partitioned in a [blocked arrangement](index.html#sec4sec3) across 128 threads + * are partitioned in a [blocked arrangement](index.html#sec5sec3) across 128 threads * where each thread owns 4 consecutive keys. * \par * \code @@ -481,7 +481,7 @@ public: /** - * \brief Performs an ascending block-wide radix sort across a [blocked arrangement](index.html#sec4sec3) of keys and values. + * \brief Performs an ascending block-wide radix sort across a [blocked arrangement](index.html#sec5sec3) of keys and values. * * \par * - BlockRadixSort can only accommodate one associated tile of values. To "truck along" @@ -494,7 +494,7 @@ public: * * \par * The code snippet below illustrates a sort of 512 integer keys and values that - * are partitioned in a [blocked arrangement](index.html#sec4sec3) across 128 threads + * are partitioned in a [blocked arrangement](index.html#sec5sec3) across 128 threads * where each thread owns 4 consecutive pairs. * \par * \code @@ -534,7 +534,7 @@ public: } /** - * \brief Performs a descending block-wide radix sort over a [blocked arrangement](index.html#sec4sec3) of keys. + * \brief Performs a descending block-wide radix sort over a [blocked arrangement](index.html#sec5sec3) of keys. * * \par * - \granularity @@ -542,7 +542,7 @@ public: * * \par * The code snippet below illustrates a sort of 512 integer keys that - * are partitioned in a [blocked arrangement](index.html#sec4sec3) across 128 threads + * are partitioned in a [blocked arrangement](index.html#sec5sec3) across 128 threads * where each thread owns 4 consecutive keys. * \par * \code @@ -582,7 +582,7 @@ public: /** - * \brief Performs a descending block-wide radix sort across a [blocked arrangement](index.html#sec4sec3) of keys and values. + * \brief Performs a descending block-wide radix sort across a [blocked arrangement](index.html#sec5sec3) of keys and values. * * \par * - BlockRadixSort can only accommodate one associated tile of values. To "truck along" @@ -595,7 +595,7 @@ public: * * \par * The code snippet below illustrates a sort of 512 integer keys and values that - * are partitioned in a [blocked arrangement](index.html#sec4sec3) across 128 threads + * are partitioned in a [blocked arrangement](index.html#sec5sec3) across 128 threads * where each thread owns 4 consecutive pairs. * \par * \code @@ -643,7 +643,7 @@ public: /** - * \brief Performs an ascending radix sort across a [blocked arrangement](index.html#sec4sec3) of keys, leaving them in a [striped arrangement](index.html#sec4sec3). + * \brief Performs an ascending radix sort across a [blocked arrangement](index.html#sec5sec3) of keys, leaving them in a [striped arrangement](index.html#sec5sec3). * * \par * - \granularity @@ -651,7 +651,7 @@ public: * * \par * The code snippet below illustrates a sort of 512 integer keys that - * are initially partitioned in a [blocked arrangement](index.html#sec4sec3) across 128 threads + * are initially partitioned in a [blocked arrangement](index.html#sec5sec3) across 128 threads * where each thread owns 4 consecutive keys. The final partitioning is striped. * \par * \code @@ -692,7 +692,7 @@ public: /** - * \brief Performs an ascending radix sort across a [blocked arrangement](index.html#sec4sec3) of keys and values, leaving them in a [striped arrangement](index.html#sec4sec3). + * \brief Performs an ascending radix sort across a [blocked arrangement](index.html#sec5sec3) of keys and values, leaving them in a [striped arrangement](index.html#sec5sec3). * * \par * - BlockRadixSort can only accommodate one associated tile of values. To "truck along" @@ -705,7 +705,7 @@ public: * * \par * The code snippet below illustrates a sort of 512 integer keys and values that - * are initially partitioned in a [blocked arrangement](index.html#sec4sec3) across 128 threads + * are initially partitioned in a [blocked arrangement](index.html#sec5sec3) across 128 threads * where each thread owns 4 consecutive pairs. The final partitioning is striped. * \par * \code @@ -746,7 +746,7 @@ public: /** - * \brief Performs a descending radix sort across a [blocked arrangement](index.html#sec4sec3) of keys, leaving them in a [striped arrangement](index.html#sec4sec3). + * \brief Performs a descending radix sort across a [blocked arrangement](index.html#sec5sec3) of keys, leaving them in a [striped arrangement](index.html#sec5sec3). * * \par * - \granularity @@ -754,7 +754,7 @@ public: * * \par * The code snippet below illustrates a sort of 512 integer keys that - * are initially partitioned in a [blocked arrangement](index.html#sec4sec3) across 128 threads + * are initially partitioned in a [blocked arrangement](index.html#sec5sec3) across 128 threads * where each thread owns 4 consecutive keys. The final partitioning is striped. * \par * \code @@ -795,7 +795,7 @@ public: /** - * \brief Performs a descending radix sort across a [blocked arrangement](index.html#sec4sec3) of keys and values, leaving them in a [striped arrangement](index.html#sec4sec3). + * \brief Performs a descending radix sort across a [blocked arrangement](index.html#sec5sec3) of keys and values, leaving them in a [striped arrangement](index.html#sec5sec3). * * \par * - BlockRadixSort can only accommodate one associated tile of values. To "truck along" @@ -808,7 +808,7 @@ public: * * \par * The code snippet below illustrates a sort of 512 integer keys and values that - * are initially partitioned in a [blocked arrangement](index.html#sec4sec3) across 128 threads + * are initially partitioned in a [blocked arrangement](index.html#sec5sec3) across 128 threads * where each thread owns 4 consecutive pairs. The final partitioning is striped. * \par * \code diff --git a/cub/block/block_raking_layout.cuh b/cub/block/block_raking_layout.cuh index 364e28a46c..015355c05f 100644 --- a/cub/block/block_raking_layout.cuh +++ b/cub/block/block_raking_layout.cuh @@ -1,6 +1,6 @@ /****************************************************************************** * Copyright (c) 2011, Duane Merrill. All rights reserved. - * Copyright (c) 2011-2013, NVIDIA CORPORATION. All rights reserved. + * Copyright (c) 2011-2014, NVIDIA CORPORATION. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: diff --git a/cub/block/block_reduce.cuh b/cub/block/block_reduce.cuh index bbba3122e6..2e42c8bcdb 100644 --- a/cub/block/block_reduce.cuh +++ b/cub/block/block_reduce.cuh @@ -1,6 +1,6 @@ /****************************************************************************** * Copyright (c) 2011, Duane Merrill. All rights reserved. - * Copyright (c) 2011-2013, NVIDIA CORPORATION. All rights reserved. + * Copyright (c) 2011-2014, NVIDIA CORPORATION. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: @@ -140,7 +140,7 @@ enum BlockReduceAlgorithm * \blockcollective{BlockReduce} * \par * The code snippet below illustrates a sum reduction of 512 integer items that - * are partitioned in a [blocked arrangement](index.html#sec4sec3) across 128 threads + * are partitioned in a [blocked arrangement](index.html#sec5sec3) across 128 threads * where each thread owns 4 consecutive items. * \par * \code @@ -326,7 +326,7 @@ public: * * \par * The code snippet below illustrates a max reduction of 512 integer items that - * are partitioned in a [blocked arrangement](index.html#sec4sec3) across 128 threads + * are partitioned in a [blocked arrangement](index.html#sec5sec3) across 128 threads * where each thread owns 4 consecutive items. * \par * \code @@ -473,7 +473,7 @@ public: * * \par * The code snippet below illustrates a sum reduction of 512 integer items that - * are partitioned in a [blocked arrangement](index.html#sec4sec3) across 128 threads + * are partitioned in a [blocked arrangement](index.html#sec5sec3) across 128 threads * where each thread owns 4 consecutive items. * \par * \code diff --git a/cub/block/block_scan.cuh.REMOVED.git-id b/cub/block/block_scan.cuh.REMOVED.git-id index cf8c107f6c..57ae74226d 100644 --- a/cub/block/block_scan.cuh.REMOVED.git-id +++ b/cub/block/block_scan.cuh.REMOVED.git-id @@ -1 +1 @@ -5a5ba466472c50cedf0263532e0cd2ae58b4a550 \ No newline at end of file +d65d116bc27cdf4993f3af3d3ec2e89b94605a86 \ No newline at end of file diff --git a/cub/block/block_shift.cuh b/cub/block/block_shift.cuh index 981c6ed6f8..69089e98bd 100644 --- a/cub/block/block_shift.cuh +++ b/cub/block/block_shift.cuh @@ -1,6 +1,6 @@ /****************************************************************************** * Copyright (c) 2011, Duane Merrill. All rights reserved. - * Copyright (c) 2011-2013, NVIDIA CORPORATION. All rights reserved. + * Copyright (c) 2011-2014, NVIDIA CORPORATION. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: diff --git a/cub/block/block_store.cuh b/cub/block/block_store.cuh index 70d6a4a437..7c3f9736b8 100644 --- a/cub/block/block_store.cuh +++ b/cub/block/block_store.cuh @@ -1,6 +1,6 @@ /****************************************************************************** * Copyright (c) 2011, Duane Merrill. All rights reserved. - * Copyright (c) 2011-2013, NVIDIA CORPORATION. All rights reserved. + * Copyright (c) 2011-2014, NVIDIA CORPORATION. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: @@ -343,7 +343,7 @@ enum BlockStoreAlgorithm /** * \par Overview * - * A [blocked arrangement](index.html#sec4sec3) of data is written + * A [blocked arrangement](index.html#sec5sec3) of data is written * directly to memory. The thread block writes items in a parallel "raking" fashion: * threadi writes the ith segment of consecutive elements. * @@ -356,7 +356,7 @@ enum BlockStoreAlgorithm /** * \par Overview * - * A [blocked arrangement](index.html#sec4sec3) of data is written directly + * A [blocked arrangement](index.html#sec5sec3) of data is written directly * to memory using CUDA's built-in vectorized stores as a coalescing optimization. * The thread block writes items in a parallel "raking" fashion: threadi uses vector stores to * write the ith segment of consecutive elements. @@ -377,11 +377,11 @@ enum BlockStoreAlgorithm /** * \par Overview - * A [blocked arrangement](index.html#sec4sec3) is locally - * transposed into a [striped arrangement](index.html#sec4sec3) + * A [blocked arrangement](index.html#sec5sec3) is locally + * transposed into a [striped arrangement](index.html#sec5sec3) * which is then written to memory. More specifically, cub::BlockExchange * used to locally reorder the items into a - * [striped arrangement](index.html#sec4sec3), after which the + * [striped arrangement](index.html#sec5sec3), after which the * thread block writes items in a parallel "strip-mining" fashion: consecutive * items owned by threadi are written to memory with * stride \p BLOCK_THREADS between them. @@ -396,11 +396,11 @@ enum BlockStoreAlgorithm /** * \par Overview - * A [blocked arrangement](index.html#sec4sec3) is locally - * transposed into a [warp-striped arrangement](index.html#sec4sec3) + * A [blocked arrangement](index.html#sec5sec3) is locally + * transposed into a [warp-striped arrangement](index.html#sec5sec3) * which is then written to memory. More specifically, cub::BlockExchange used * to locally reorder the items into a - * [warp-striped arrangement](index.html#sec4sec3), after which + * [warp-striped arrangement](index.html#sec5sec3), after which * each warp writes its own contiguous segment in a parallel "strip-mining" fashion: * consecutive items owned by lanei are written to memory * with stride \p WARP_THREADS between them. @@ -416,7 +416,7 @@ enum BlockStoreAlgorithm /** - * \brief The BlockStore class provides [collective](index.html#sec0) data movement methods for writing a [blocked arrangement](index.html#sec4sec3) of items partitioned across a CUDA thread block to a linear segment of memory. ![](block_store_logo.png) + * \brief The BlockStore class provides [collective](index.html#sec0) data movement methods for writing a [blocked arrangement](index.html#sec5sec3) of items partitioned across a CUDA thread block to a linear segment of memory. ![](block_store_logo.png) * \ingroup BlockModule * \ingroup UtilIo * @@ -431,16 +431,16 @@ enum BlockStoreAlgorithm * to implement different cub::BlockStoreAlgorithm strategies. This facilitates different * performance policies for different architectures, data types, granularity sizes, etc. * - BlockStore can be optionally specialized by different data movement strategies: - * -# cub::BLOCK_STORE_DIRECT. A [blocked arrangement](index.html#sec4sec3) of data is written + * -# cub::BLOCK_STORE_DIRECT. A [blocked arrangement](index.html#sec5sec3) of data is written * directly to memory. [More...](\ref cub::BlockStoreAlgorithm) - * -# cub::BLOCK_STORE_VECTORIZE. A [blocked arrangement](index.html#sec4sec3) + * -# cub::BLOCK_STORE_VECTORIZE. A [blocked arrangement](index.html#sec5sec3) * of data is written directly to memory using CUDA's built-in vectorized stores as a * coalescing optimization. [More...](\ref cub::BlockStoreAlgorithm) - * -# cub::BLOCK_STORE_TRANSPOSE. A [blocked arrangement](index.html#sec4sec3) - * is locally transposed into a [striped arrangement](index.html#sec4sec3) which is + * -# cub::BLOCK_STORE_TRANSPOSE. A [blocked arrangement](index.html#sec5sec3) + * is locally transposed into a [striped arrangement](index.html#sec5sec3) which is * then written to memory. [More...](\ref cub::BlockStoreAlgorithm) - * -# cub::BLOCK_STORE_WARP_TRANSPOSE. A [blocked arrangement](index.html#sec4sec3) - * is locally transposed into a [warp-striped arrangement](index.html#sec4sec3) which is + * -# cub::BLOCK_STORE_WARP_TRANSPOSE. A [blocked arrangement](index.html#sec5sec3) + * is locally transposed into a [warp-striped arrangement](index.html#sec5sec3) which is * then written to memory. [More...](\ref cub::BlockStoreAlgorithm) * * \par A Simple Example diff --git a/cub/block/specializations/block_histogram_atomic.cuh b/cub/block/specializations/block_histogram_atomic.cuh index ecc980098c..3e18ddd6de 100644 --- a/cub/block/specializations/block_histogram_atomic.cuh +++ b/cub/block/specializations/block_histogram_atomic.cuh @@ -1,6 +1,6 @@ /****************************************************************************** * Copyright (c) 2011, Duane Merrill. All rights reserved. - * Copyright (c) 2011-2013, NVIDIA CORPORATION. All rights reserved. + * Copyright (c) 2011-2014, NVIDIA CORPORATION. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: diff --git a/cub/block/specializations/block_histogram_sort.cuh b/cub/block/specializations/block_histogram_sort.cuh index e81edec6c3..d380cdb9ba 100644 --- a/cub/block/specializations/block_histogram_sort.cuh +++ b/cub/block/specializations/block_histogram_sort.cuh @@ -1,6 +1,6 @@ /****************************************************************************** * Copyright (c) 2011, Duane Merrill. All rights reserved. - * Copyright (c) 2011-2013, NVIDIA CORPORATION. All rights reserved. + * Copyright (c) 2011-2014, NVIDIA CORPORATION. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: diff --git a/cub/block/specializations/block_reduce_raking.cuh b/cub/block/specializations/block_reduce_raking.cuh index d70736964c..50cca72d9e 100644 --- a/cub/block/specializations/block_reduce_raking.cuh +++ b/cub/block/specializations/block_reduce_raking.cuh @@ -1,6 +1,6 @@ /****************************************************************************** * Copyright (c) 2011, Duane Merrill. All rights reserved. - * Copyright (c) 2011-2013, NVIDIA CORPORATION. All rights reserved. + * Copyright (c) 2011-2014, NVIDIA CORPORATION. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: diff --git a/cub/block/specializations/block_reduce_warp_reductions.cuh b/cub/block/specializations/block_reduce_warp_reductions.cuh index 68180307d0..876e33b447 100644 --- a/cub/block/specializations/block_reduce_warp_reductions.cuh +++ b/cub/block/specializations/block_reduce_warp_reductions.cuh @@ -1,6 +1,6 @@ /****************************************************************************** * Copyright (c) 2011, Duane Merrill. All rights reserved. - * Copyright (c) 2011-2013, NVIDIA CORPORATION. All rights reserved. + * Copyright (c) 2011-2014, NVIDIA CORPORATION. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: diff --git a/cub/block/specializations/block_scan_raking.cuh b/cub/block/specializations/block_scan_raking.cuh index 5a46fbce5a..8870015a9d 100644 --- a/cub/block/specializations/block_scan_raking.cuh +++ b/cub/block/specializations/block_scan_raking.cuh @@ -1,6 +1,6 @@ /****************************************************************************** * Copyright (c) 2011, Duane Merrill. All rights reserved. - * Copyright (c) 2011-2013, NVIDIA CORPORATION. All rights reserved. + * Copyright (c) 2011-2014, NVIDIA CORPORATION. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: diff --git a/cub/block/specializations/block_scan_warp_scans.cuh b/cub/block/specializations/block_scan_warp_scans.cuh index b671ec3243..aed114c690 100644 --- a/cub/block/specializations/block_scan_warp_scans.cuh +++ b/cub/block/specializations/block_scan_warp_scans.cuh @@ -1,6 +1,6 @@ /****************************************************************************** * Copyright (c) 2011, Duane Merrill. All rights reserved. - * Copyright (c) 2011-2013, NVIDIA CORPORATION. All rights reserved. + * Copyright (c) 2011-2014, NVIDIA CORPORATION. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: diff --git a/cub/cub.cuh b/cub/cub.cuh index c92b80cbed..a0902ba854 100644 --- a/cub/cub.cuh +++ b/cub/cub.cuh @@ -1,6 +1,6 @@ /****************************************************************************** * Copyright (c) 2011, Duane Merrill. All rights reserved. - * Copyright (c) 2011-2013, NVIDIA CORPORATION. All rights reserved. + * Copyright (c) 2011-2014, NVIDIA CORPORATION. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: diff --git a/cub/device/device_histogram.cuh b/cub/device/device_histogram.cuh index 49b4b6c234..0044a958c1 100644 --- a/cub/device/device_histogram.cuh +++ b/cub/device/device_histogram.cuh @@ -1,7 +1,7 @@ /****************************************************************************** * Copyright (c) 2011, Duane Merrill. All rights reserved. - * Copyright (c) 2011-2013, NVIDIA CORPORATION. All rights reserved. + * Copyright (c) 2011-2014, NVIDIA CORPORATION. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: @@ -585,7 +585,7 @@ struct DeviceHistogram * - \devicestorage * - \cdp * - * \par + * \par Snippet * The code snippet below illustrates the computation of a 8-bin histogram of * single-channel unsigned char samples. * \par @@ -673,7 +673,7 @@ struct DeviceHistogram * - \devicestorage * - \cdp * - * \par + * \par Snippet * The code snippet below illustrates the computation of a 8-bin histogram of * single-channel unsigned char samples. * \par @@ -761,7 +761,7 @@ struct DeviceHistogram * - \devicestorage * - \cdp * - * \par + * \par Snippet * The code snippet below illustrates the computation of a 8-bin histogram of * single-channel unsigned char samples. * \par @@ -857,7 +857,7 @@ struct DeviceHistogram * - \devicestorage * - \cdp * - * \par + * \par Snippet * The code snippet below illustrates the computation of three 256-bin histograms from * an input sequence of quad-channel (interleaved) unsigned char samples. * (E.g., RGB histograms from RGBA pixel samples.) @@ -956,7 +956,7 @@ struct DeviceHistogram * - \devicestorage * - \cdp * - * \par + * \par Snippet * The code snippet below illustrates the computation of three 256-bin histograms from * an input sequence of quad-channel (interleaved) unsigned char samples. * (E.g., RGB histograms from RGBA pixel samples.) @@ -1054,7 +1054,7 @@ struct DeviceHistogram * - \devicestorage * - \cdp * - * \par + * \par Snippet * The code snippet below illustrates the computation of three 256-bin histograms from * an input sequence of quad-channel (interleaved) unsigned char samples. * (E.g., RGB histograms from RGBA pixel samples.) diff --git a/cub/device/device_partition.cuh b/cub/device/device_partition.cuh index e43b570199..bc043acf2d 100644 --- a/cub/device/device_partition.cuh +++ b/cub/device/device_partition.cuh @@ -1,7 +1,7 @@ /****************************************************************************** * Copyright (c) 2011, Duane Merrill. All rights reserved. - * Copyright (c) 2011-2013, NVIDIA CORPORATION. All rights reserved. + * Copyright (c) 2011-2014, NVIDIA CORPORATION. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: @@ -63,6 +63,15 @@ namespace cub { * \cdp_class{DevicePartition} * * \par Performance + * \linear_performance{partition} + * + * \par + * The following chart illustrates DevicePartition::If + * performance across different CUDA architectures for \p int32 items, + * where 50% of the items are randomly selected for the first partition. + * \plots_below + * + * \image html partition_if_int32_50_percent.png * */ struct DevicePartition @@ -78,7 +87,7 @@ struct DevicePartition * - \devicestorage * - \cdp * - * \par + * \par Snippet * The code snippet below illustrates the compaction of items selected from an \p int device vector. * \par * \code @@ -159,19 +168,37 @@ struct DevicePartition * - \devicestorage * - \cdp * + * \par Performance + * The following charts illustrate saturated partition-if performance across different + * CUDA architectures for \p int32 and \p int64 items, respectively. Items are + * selected for the first partition with 50% probability. + * + * \image html partition_if_int32_50_percent.png + * \image html partition_if_int64_50_percent.png + * * \par + * The following charts are similar, but 5% selection probability for the first partition: + * + * \image html partition_if_int32_5_percent.png + * \image html partition_if_int64_5_percent.png + * + * \par Snippet * The code snippet below illustrates the compaction of items selected from an \p int device vector. * \par * \code * #include // or equivalently * - * // Functor for selecting values that are multiples of three - * struct IsTriple + * // Functor type for selecting values less than some criteria + * struct LessThan * { - * template + * int compare; + * * __host__ __device__ __forceinline__ - * bool operator()(const T &a) const { - * return (a % 3 == 0); + * LessThan(int compare) : compare(compare) {} + * + * __host__ __device__ __forceinline__ + * bool operator()(const int &a) const { + * return (a < compare); * } * }; * @@ -180,7 +207,7 @@ struct DevicePartition * int *d_in; // e.g., [0, 2, 3, 9, 5, 2, 81, 8] * int *d_out; // e.g., [ , , , , , , , ] * int *d_num_selected; // e.g., [ ] - * IsTriple select_op; + * LessThan select_op(7); * ... * * // Determine temporary device storage requirements @@ -194,8 +221,8 @@ struct DevicePartition * // Run selection * cub::DeviceSelect::If(d_temp_storage, temp_storage_bytes, d_in, d_out, d_num_selected, num_items, select_op); * - * // d_out <-- [0, 3, 9, 81, 8, 2, 5, 2] - * // d_num_selected <-- [4] + * // d_out <-- [0, 2, 3, 5, 2, 8, 81, 9] + * // d_num_selected <-- [5] * * \endcode * diff --git a/cub/device/device_radix_sort.cuh b/cub/device/device_radix_sort.cuh index 56ba1df6db..bdfcab91c0 100644 --- a/cub/device/device_radix_sort.cuh +++ b/cub/device/device_radix_sort.cuh @@ -1,7 +1,7 @@ /****************************************************************************** * Copyright (c) 2011, Duane Merrill. All rights reserved. - * Copyright (c) 2011-2013, NVIDIA CORPORATION. All rights reserved. + * Copyright (c) 2011-2014, NVIDIA CORPORATION. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: @@ -956,8 +956,11 @@ struct DeviceRadixSortDispatch * \cdp_class{DeviceRadixSort} * * \par Performance + * \linear_performance{radix sort} The following chart illustrates DeviceRadixSort::SortKeys + * performance across different CUDA architectures for uniform-random \p uint32 keys. + * \plots_below * - * \image html lsd_sort_perf.png + * \image html lsb_radix_sort_int32_keys.png * */ struct DeviceRadixSort @@ -973,7 +976,15 @@ struct DeviceRadixSort * - \devicestorage * - \cdp * - * \par + * \par Performance + * The following charts illustrate saturated sorting performance across different + * CUDA architectures for uniform-random uint32,uint32 and + * uint64,uint64 pairs, respectively. + * + * \image html lsb_radix_sort_int32_pairs.png + * \image html lsb_radix_sort_int64_pairs.png + * + * \par Snippet * The code snippet below illustrates the sorting of a device vector of \p int keys * with associated vector of \p int values. * \par @@ -1053,7 +1064,10 @@ struct DeviceRadixSort * - \devicestorage * - \cdp * - * \par + * \par Performance + * Performance is similar to DeviceRadixSort::SortPairs. + * + * \par Snippet * The code snippet below illustrates the sorting of a device vector of \p int keys * with associated vector of \p int values. * \par @@ -1133,7 +1147,14 @@ struct DeviceRadixSort * - \devicestorage * - \cdp * - * \par + * \par Performance + * The following charts illustrate saturated sorting performance across different + * CUDA architectures for uniform-random \p uint32 and \p uint64 keys, respectively. + * + * \image html lsb_radix_sort_int32_keys.png + * \image html lsb_radix_sort_int64_keys.png + * + * \par Snippet * The code snippet below illustrates the sorting of a device vector of \p int keys. * \par * \code @@ -1207,7 +1228,10 @@ struct DeviceRadixSort * - \devicestorage * - \cdp * - * \par + * \par Performance + * Performance is similar to DeviceRadixSort::SortKeys. + * + * \par Snippet * The code snippet below illustrates the sorting of a device vector of \p int keys. * \par * \code diff --git a/cub/device/device_reduce.cuh b/cub/device/device_reduce.cuh index 116da91f75..029d5d13c5 100644 --- a/cub/device/device_reduce.cuh +++ b/cub/device/device_reduce.cuh @@ -1,7 +1,7 @@ /****************************************************************************** * Copyright (c) 2011, Duane Merrill. All rights reserved. - * Copyright (c) 2011-2013, NVIDIA CORPORATION. All rights reserved. + * Copyright (c) 2011-2014, NVIDIA CORPORATION. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: @@ -752,8 +752,31 @@ struct DeviceReduceDispatch * \cdp_class{DeviceReduce} * * \par Performance + * \linear_performance{reduction, reduce-by-key, and run-length encode} + * + * \par + * The following chart illustrates DeviceReduce::Sum + * performance across different CUDA architectures for \p int32 keys. + * + * \image html reduce_int32.png + * + * \par + * The following chart illustrates DeviceReduce::ReduceByKey (summation) + * performance across different CUDA architectures for \p fp32 + * values. Segments are identified by \p int32 keys, and have lengths uniformly sampled from [1,1000]. + * + * \image html reduce_by_key_fp32_len_500.png + * + * \par + * The following chart illustrates DeviceReduce::RunLengthEncode performance across + * different CUDA architectures for \p int32 items. + * Segments have lengths uniformly sampled from [1,1000]. + * + * \image html rle_int32_len_500.png + * + * \par + * \plots_below * - * \image html reduction_perf.png * */ struct DeviceReduce @@ -766,7 +789,10 @@ struct DeviceReduce * - \devicestorage * - \cdp * - * \par + * \par Performance + * Performance is typically similar to DeviceReduce::Sum. + * + * \par Snippet * The code snippet below illustrates a custom min reduction of a device vector of \p int items. * \par * \code @@ -849,7 +875,14 @@ struct DeviceReduce * - \devicestorage * - \cdp * - * \par + * \par Performance + * The following charts illustrate saturated reduction (sum) performance across different + * CUDA architectures for \p int32 and \p int64 items, respectively. + * + * \image html reduce_int32.png + * \image html reduce_int64.png + * + * \par Snippet * The code snippet below illustrates the sum reduction of a device vector of \p int items. * \par * \code @@ -918,7 +951,10 @@ struct DeviceReduce * - \devicestorage * - \cdp * - * \par + * \par Performance + * Performance is typically similar to DeviceReduce::Sum. + * + * \par Snippet * The code snippet below illustrates the min-reduction of a device vector of \p int items. * \par * \code @@ -992,7 +1028,10 @@ struct DeviceReduce * - \devicestorage * - \cdp * - * \par + * \par Performance + * Performance is typically similar to DeviceReduce::Sum. + * + * \par Snippet * The code snippet below illustrates the argmin-reduction of a device vector of \p int items. * \par * \code @@ -1065,7 +1104,10 @@ struct DeviceReduce * - \devicestorage * - \cdp * - * \par + * \par Performance + * Performance is typically similar to DeviceReduce::Sum. + * + * \par Snippet * The code snippet below illustrates the max-reduction of a device vector of \p int items. * \par * \code @@ -1139,7 +1181,10 @@ struct DeviceReduce * - \devicestorage * - \cdp * - * \par + * \par Performance + * Performance is typically similar to DeviceReduce::Sum. + * + * \par Snippet * The code snippet below illustrates the argmax-reduction of a device vector of \p int items. * \par * \code @@ -1220,7 +1265,21 @@ struct DeviceReduce * - \devicestorage * - \cdp * + * \par Performance + * The following chart illustrates reduction-by-key (sum) performance across + * different CUDA architectures for \p fp32 and \p fp64 values, respectively. Segments + * are identified by \p int32 keys, and have lengths uniformly sampled from [1,1000]. + * + * \image html reduce_by_key_fp32_len_500.png + * \image html reduce_by_key_fp64_len_500.png + * * \par + * The following charts are similar, but with segment lengths uniformly sampled from [1,10]: + * + * \image html reduce_by_key_fp32_len_5.png + * \image html reduce_by_key_fp64_len_5.png + * + * \par Snippet * The code snippet below illustrates the segmented reduction of \p int values grouped * by runs of associated \p int keys. * \par @@ -1329,7 +1388,21 @@ struct DeviceReduce * - \devicestorage * - \cdp * + * \par Performance + * The following charts illustrate saturated encode performance across different + * CUDA architectures for \p int32 and \p int64 items, respectively. Segments have + * lengths uniformly sampled from [1,1000]. + * + * \image html rle_int32_len_500.png + * \image html rle_int64_len_500.png + * * \par + * The following charts are similar, but with segment lengths uniformly sampled from [1,10]: + * + * \image html rle_int32_len_5.png + * \image html rle_int64_len_5.png + * + * \par Snippet * The code snippet below illustrates the run-length encoding of a sequence of \p int values. * \par * \code diff --git a/cub/device/device_reduce_by_key.cuh b/cub/device/device_reduce_by_key.cuh index 8face1b961..ee859211e1 100644 --- a/cub/device/device_reduce_by_key.cuh +++ b/cub/device/device_reduce_by_key.cuh @@ -1,7 +1,7 @@ /****************************************************************************** * Copyright (c) 2011, Duane Merrill. All rights reserved. - * Copyright (c) 2011-2013, NVIDIA CORPORATION. All rights reserved. + * Copyright (c) 2011-2014, NVIDIA CORPORATION. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: diff --git a/cub/device/device_scan.cuh b/cub/device/device_scan.cuh index 83b7d005fd..208e86777a 100644 --- a/cub/device/device_scan.cuh +++ b/cub/device/device_scan.cuh @@ -1,7 +1,7 @@ /****************************************************************************** * Copyright (c) 2011, Duane Merrill. All rights reserved. - * Copyright (c) 2011-2013, NVIDIA CORPORATION. All rights reserved. + * Copyright (c) 2011-2014, NVIDIA CORPORATION. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: @@ -581,8 +581,14 @@ struct DeviceScanDispatch * \cdp_class{DeviceScan} * * \par Performance + * \linear_performance{prefix scan} * - * \image html scan_perf.png + * \par + * The following chart illustrates DeviceScan::ExclusiveSum + * performance across different CUDA architectures for \p int32 keys. + * \plots_below + * + * \image html scan_int32.png * */ struct DeviceScan @@ -600,7 +606,14 @@ struct DeviceScan * - \devicestorage * - \cdp * - * \par + * \par Performance + * The following charts illustrate saturated exclusive sum performance across different + * CUDA architectures for \p int32 and \p int64 items, respectively. + * + * \image html scan_int32.png + * \image html scan_int64.png + * + * \par Snippet * The code snippet below illustrates the exclusive prefix sum of an \p int device vector. * \par * \code @@ -670,7 +683,10 @@ struct DeviceScan * - \devicestorage * - \cdp * - * \par + * \par Performance + * Performance is typically similar to DeviceScan::ExclusiveSum. + * + * \par Snippet * The code snippet below illustrates the exclusive prefix min-scan of an \p int device vector * \par * \code @@ -761,7 +777,10 @@ struct DeviceScan * - \devicestorage * - \cdp * - * \par + * \par Performance + * Performance is typically similar to DeviceScan::ExclusiveSum. + * + * \par Snippet * The code snippet below illustrates the inclusive prefix sum of an \p int device vector. * \par * \code @@ -828,7 +847,10 @@ struct DeviceScan * - \devicestorage * - \cdp * - * \par + * \par Performance + * Performance is typically similar to DeviceScan::ExclusiveSum. + * + * \par Snippet * The code snippet below illustrates the inclusive prefix min-scan of an \p int device vector. * \par * \code diff --git a/cub/device/device_select.cuh b/cub/device/device_select.cuh index edf5b647e2..168a386588 100644 --- a/cub/device/device_select.cuh +++ b/cub/device/device_select.cuh @@ -1,7 +1,7 @@ /****************************************************************************** * Copyright (c) 2011, Duane Merrill. All rights reserved. - * Copyright (c) 2011-2013, NVIDIA CORPORATION. All rights reserved. + * Copyright (c) 2011-2014, NVIDIA CORPORATION. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: @@ -566,17 +566,35 @@ struct DeviceSelectDispatch *****************************************************************************/ /** - * \brief DeviceSelect provides device-wide, parallel operations for selecting items from sequences of data items residing within global memory. ![](select_logo.png) + * \brief DeviceSelect provides device-wide, parallel operations for compacting selected items from sequences of data items residing within global memory. ![](select_logo.png) * \ingroup DeviceModule * * \par Overview * These operations apply a selection criterion to selectively copy - * items from a specified input sequence to a corresponding output sequence. + * items from a specified input sequence to a compact output sequence. * * \par Usage Considerations * \cdp_class{DeviceSelect} * * \par Performance + * \linear_performance{select-flagged, select-if, and select-unique} + * + * \par + * The following chart illustrates DeviceSelect::If + * performance across different CUDA architectures for \p int32 items, + * where 50% of the items are randomly selected. + * + * \image html select_if_int32_50_percent.png + * + * \par + * The following chart illustrates DeviceSelect::Unique + * performance across different CUDA architectures for \p int32 items + * where segments have lengths uniformly sampled from [1,1000]. + * + * \image html select_unique_int32_len_500.png + * + * \par + * \plots_below * */ struct DeviceSelect @@ -590,7 +608,7 @@ struct DeviceSelect * - \devicestorage * - \cdp * - * \par + * \par Snippet * The code snippet below illustrates the compaction of items selected from an \p int device vector. * \par * \code @@ -669,19 +687,37 @@ struct DeviceSelect * - \devicestorage * - \cdp * + * \par Performance + * The following charts illustrate saturated select-if performance across different + * CUDA architectures for \p int32 and \p int64 items, respectively. Items are + * selected with 50% probability. + * + * \image html select_if_int32_50_percent.png + * \image html select_if_int64_50_percent.png + * * \par + * The following charts are similar, but 5% selection probability: + * + * \image html select_if_int32_5_percent.png + * \image html select_if_int64_5_percent.png + * + * \par Snippet * The code snippet below illustrates the compaction of items selected from an \p int device vector. * \par * \code * #include // or equivalently * - * // Functor for selecting values that are multiples of three - * struct IsTriple + * // Functor type for selecting values less than some criteria + * struct LessThan * { - * template + * int compare; + * + * __host__ __device__ __forceinline__ + * LessThan(int compare) : compare(compare) {} + * * __host__ __device__ __forceinline__ - * bool operator()(const T &a) const { - * return (a % 3 == 0); + * bool operator()(const int &a) const { + * return (a < compare); * } * }; * @@ -690,7 +726,7 @@ struct DeviceSelect * int *d_in; // e.g., [0, 2, 3, 9, 5, 2, 81, 8] * int *d_out; // e.g., [ , , , , , , , ] * int *d_num_selected; // e.g., [ ] - * IsTriple select_op; + * LessThan select_op(7); * ... * * // Determine temporary device storage requirements @@ -704,8 +740,8 @@ struct DeviceSelect * // Run selection * cub::DeviceSelect::If(d_temp_storage, temp_storage_bytes, d_in, d_out, d_num_selected, num_items, select_op); * - * // d_out <-- [0, 3, 9, 81] - * // d_num_selected <-- [4] + * // d_out <-- [0, 2, 3, 5, 2] + * // d_num_selected <-- [5] * * \endcode * @@ -759,7 +795,21 @@ struct DeviceSelect * - \devicestorage * - \cdp * + * \par Performance + * The following charts illustrate saturated select-unique performance across different + * CUDA architectures for \p int32 and \p int64 items, respectively. Segments have + * lengths uniformly sampled from [1,1000]. + * + * \image html select_unique_int32_len_500.png + * \image html select_unique_int64_len_500.png + * * \par + * The following charts are similar, but with segment lengths uniformly sampled from [1,10]: + * + * \image html select_unique_int32_len_5.png + * \image html select_unique_int64_len_5.png + * + * \par Snippet * The code snippet below illustrates the compaction of items selected from an \p int device vector. * \par * \code diff --git a/cub/device/region/block_histo_region.cuh b/cub/device/region/block_histo_region.cuh index 08bd907ddf..64e3b20e4f 100644 --- a/cub/device/region/block_histo_region.cuh +++ b/cub/device/region/block_histo_region.cuh @@ -1,6 +1,6 @@ /****************************************************************************** * Copyright (c) 2011, Duane Merrill. All rights reserved. - * Copyright (c) 2011-2013, NVIDIA CORPORATION. All rights reserved. + * Copyright (c) 2011-2014, NVIDIA CORPORATION. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: diff --git a/cub/device/region/block_radix_sort_downsweep_region.cuh b/cub/device/region/block_radix_sort_downsweep_region.cuh index 0585581090..89c4c69c0c 100644 --- a/cub/device/region/block_radix_sort_downsweep_region.cuh +++ b/cub/device/region/block_radix_sort_downsweep_region.cuh @@ -1,6 +1,6 @@ /****************************************************************************** * Copyright (c) 2011, Duane Merrill. All rights reserved. - * Copyright (c) 2011-2013, NVIDIA CORPORATION. All rights reserved. + * Copyright (c) 2011-2014, NVIDIA CORPORATION. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: diff --git a/cub/device/region/block_radix_sort_upsweep_region.cuh b/cub/device/region/block_radix_sort_upsweep_region.cuh index 20ccae2e70..7f1e92ed41 100644 --- a/cub/device/region/block_radix_sort_upsweep_region.cuh +++ b/cub/device/region/block_radix_sort_upsweep_region.cuh @@ -1,6 +1,6 @@ /****************************************************************************** * Copyright (c) 2011, Duane Merrill. All rights reserved. - * Copyright (c) 2011-2013, NVIDIA CORPORATION. All rights reserved. + * Copyright (c) 2011-2014, NVIDIA CORPORATION. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: diff --git a/cub/device/region/block_reduce_by_key_region.cuh b/cub/device/region/block_reduce_by_key_region.cuh index e059afa841..247db193e0 100644 --- a/cub/device/region/block_reduce_by_key_region.cuh +++ b/cub/device/region/block_reduce_by_key_region.cuh @@ -1,6 +1,6 @@ /****************************************************************************** * Copyright (c) 2011, Duane Merrill. All rights reserved. - * Copyright (c) 2011-2013, NVIDIA CORPORATION. All rights reserved. + * Copyright (c) 2011-2014, NVIDIA CORPORATION. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: diff --git a/cub/device/region/block_reduce_region.cuh b/cub/device/region/block_reduce_region.cuh index e2a976190c..a5cf89d38a 100644 --- a/cub/device/region/block_reduce_region.cuh +++ b/cub/device/region/block_reduce_region.cuh @@ -1,6 +1,6 @@ /****************************************************************************** * Copyright (c) 2011, Duane Merrill. All rights reserved. - * Copyright (c) 2011-2013, NVIDIA CORPORATION. All rights reserved. + * Copyright (c) 2011-2014, NVIDIA CORPORATION. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: diff --git a/cub/device/region/block_scan_region.cuh b/cub/device/region/block_scan_region.cuh index a44741e25a..308f7c2920 100644 --- a/cub/device/region/block_scan_region.cuh +++ b/cub/device/region/block_scan_region.cuh @@ -1,6 +1,6 @@ /****************************************************************************** * Copyright (c) 2011, Duane Merrill. All rights reserved. - * Copyright (c) 2011-2013, NVIDIA CORPORATION. All rights reserved. + * Copyright (c) 2011-2014, NVIDIA CORPORATION. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: diff --git a/cub/device/region/block_select_region.cuh b/cub/device/region/block_select_region.cuh index f4aa0e25c9..6bbf430a96 100644 --- a/cub/device/region/block_select_region.cuh +++ b/cub/device/region/block_select_region.cuh @@ -1,6 +1,6 @@ /****************************************************************************** * Copyright (c) 2011, Duane Merrill. All rights reserved. - * Copyright (c) 2011-2013, NVIDIA CORPORATION. All rights reserved. + * Copyright (c) 2011-2014, NVIDIA CORPORATION. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: diff --git a/cub/device/region/device_scan_types.cuh b/cub/device/region/device_scan_types.cuh index db058dd894..95889f6001 100644 --- a/cub/device/region/device_scan_types.cuh +++ b/cub/device/region/device_scan_types.cuh @@ -1,6 +1,6 @@ /****************************************************************************** * Copyright (c) 2011, Duane Merrill. All rights reserved. - * Copyright (c) 2011-2013, NVIDIA CORPORATION. All rights reserved. + * Copyright (c) 2011-2014, NVIDIA CORPORATION. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: diff --git a/cub/device/region/specializations/block_histo_region_gatomic.cuh b/cub/device/region/specializations/block_histo_region_gatomic.cuh index 84eeaa0274..fdffb872bf 100644 --- a/cub/device/region/specializations/block_histo_region_gatomic.cuh +++ b/cub/device/region/specializations/block_histo_region_gatomic.cuh @@ -1,6 +1,6 @@ /****************************************************************************** * Copyright (c) 2011, Duane Merrill. All rights reserved. - * Copyright (c) 2011-2013, NVIDIA CORPORATION. All rights reserved. + * Copyright (c) 2011-2014, NVIDIA CORPORATION. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: diff --git a/cub/device/region/specializations/block_histo_region_satomic.cuh b/cub/device/region/specializations/block_histo_region_satomic.cuh index 1f5fdfe1a7..d496e7dcba 100644 --- a/cub/device/region/specializations/block_histo_region_satomic.cuh +++ b/cub/device/region/specializations/block_histo_region_satomic.cuh @@ -1,6 +1,6 @@ /****************************************************************************** * Copyright (c) 2011, Duane Merrill. All rights reserved. - * Copyright (c) 2011-2013, NVIDIA CORPORATION. All rights reserved. + * Copyright (c) 2011-2014, NVIDIA CORPORATION. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: diff --git a/cub/device/region/specializations/block_histo_region_sort.cuh b/cub/device/region/specializations/block_histo_region_sort.cuh index 11a9530833..ab8bd03424 100644 --- a/cub/device/region/specializations/block_histo_region_sort.cuh +++ b/cub/device/region/specializations/block_histo_region_sort.cuh @@ -1,6 +1,6 @@ /****************************************************************************** * Copyright (c) 2011, Duane Merrill. All rights reserved. - * Copyright (c) 2011-2013, NVIDIA CORPORATION. All rights reserved. + * Copyright (c) 2011-2014, NVIDIA CORPORATION. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: diff --git a/cub/grid/grid_barrier.cuh b/cub/grid/grid_barrier.cuh index ebdc4b552a..eab5b518ec 100644 --- a/cub/grid/grid_barrier.cuh +++ b/cub/grid/grid_barrier.cuh @@ -1,6 +1,6 @@ /****************************************************************************** * Copyright (c) 2011, Duane Merrill. All rights reserved. - * Copyright (c) 2011-2013, NVIDIA CORPORATION. All rights reserved. + * Copyright (c) 2011-2014, NVIDIA CORPORATION. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: diff --git a/cub/grid/grid_even_share.cuh b/cub/grid/grid_even_share.cuh index 48b761dcf1..e331d0d86a 100644 --- a/cub/grid/grid_even_share.cuh +++ b/cub/grid/grid_even_share.cuh @@ -1,6 +1,6 @@ /****************************************************************************** * Copyright (c) 2011, Duane Merrill. All rights reserved. - * Copyright (c) 2011-2013, NVIDIA CORPORATION. All rights reserved. + * Copyright (c) 2011-2014, NVIDIA CORPORATION. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: diff --git a/cub/grid/grid_mapping.cuh b/cub/grid/grid_mapping.cuh index 419f9ac0e0..ff6679b9b7 100644 --- a/cub/grid/grid_mapping.cuh +++ b/cub/grid/grid_mapping.cuh @@ -1,6 +1,6 @@ /****************************************************************************** * Copyright (c) 2011, Duane Merrill. All rights reserved. - * Copyright (c) 2011-2013, NVIDIA CORPORATION. All rights reserved. + * Copyright (c) 2011-2014, NVIDIA CORPORATION. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: diff --git a/cub/grid/grid_queue.cuh b/cub/grid/grid_queue.cuh index 5189cc4010..eab13fc4ae 100644 --- a/cub/grid/grid_queue.cuh +++ b/cub/grid/grid_queue.cuh @@ -1,6 +1,6 @@ /****************************************************************************** * Copyright (c) 2011, Duane Merrill. All rights reserved. - * Copyright (c) 2011-2013, NVIDIA CORPORATION. All rights reserved. + * Copyright (c) 2011-2014, NVIDIA CORPORATION. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: diff --git a/cub/host/spinlock.cuh b/cub/host/spinlock.cuh index 5621b6f1a3..6e4b47c7dd 100644 --- a/cub/host/spinlock.cuh +++ b/cub/host/spinlock.cuh @@ -1,6 +1,6 @@ /****************************************************************************** * Copyright (c) 2011, Duane Merrill. All rights reserved. - * Copyright (c) 2011-2013, NVIDIA CORPORATION. All rights reserved. + * Copyright (c) 2011-2014, NVIDIA CORPORATION. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: diff --git a/cub/iterator/arg_index_input_iterator.cuh b/cub/iterator/arg_index_input_iterator.cuh index 0371894717..e2d095a4c9 100644 --- a/cub/iterator/arg_index_input_iterator.cuh +++ b/cub/iterator/arg_index_input_iterator.cuh @@ -1,6 +1,6 @@ /****************************************************************************** * Copyright (c) 2011, Duane Merrill. All rights reserved. - * Copyright (c) 2011-2013, NVIDIA CORPORATION. All rights reserved. + * Copyright (c) 2011-2014, NVIDIA CORPORATION. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: diff --git a/cub/iterator/cache_modified_input_iterator.cuh b/cub/iterator/cache_modified_input_iterator.cuh index 510658c42c..b9ce48a0ff 100644 --- a/cub/iterator/cache_modified_input_iterator.cuh +++ b/cub/iterator/cache_modified_input_iterator.cuh @@ -1,6 +1,6 @@ /****************************************************************************** * Copyright (c) 2011, Duane Merrill. All rights reserved. - * Copyright (c) 2011-2013, NVIDIA CORPORATION. All rights reserved. + * Copyright (c) 2011-2014, NVIDIA CORPORATION. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: diff --git a/cub/iterator/cache_modified_output_iterator.cuh b/cub/iterator/cache_modified_output_iterator.cuh index b24247ddc5..e91b2aef98 100644 --- a/cub/iterator/cache_modified_output_iterator.cuh +++ b/cub/iterator/cache_modified_output_iterator.cuh @@ -1,6 +1,6 @@ /****************************************************************************** * Copyright (c) 2011, Duane Merrill. All rights reserved. - * Copyright (c) 2011-2013, NVIDIA CORPORATION. All rights reserved. + * Copyright (c) 2011-2014, NVIDIA CORPORATION. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: diff --git a/cub/iterator/constant_input_iterator.cuh b/cub/iterator/constant_input_iterator.cuh index 5a923bf548..f2c247fd5c 100644 --- a/cub/iterator/constant_input_iterator.cuh +++ b/cub/iterator/constant_input_iterator.cuh @@ -1,6 +1,6 @@ /****************************************************************************** * Copyright (c) 2011, Duane Merrill. All rights reserved. - * Copyright (c) 2011-2013, NVIDIA CORPORATION. All rights reserved. + * Copyright (c) 2011-2014, NVIDIA CORPORATION. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: diff --git a/cub/iterator/counting_input_iterator.cuh b/cub/iterator/counting_input_iterator.cuh index 24b7573b38..02791f4113 100644 --- a/cub/iterator/counting_input_iterator.cuh +++ b/cub/iterator/counting_input_iterator.cuh @@ -1,6 +1,6 @@ /****************************************************************************** * Copyright (c) 2011, Duane Merrill. All rights reserved. - * Copyright (c) 2011-2013, NVIDIA CORPORATION. All rights reserved. + * Copyright (c) 2011-2014, NVIDIA CORPORATION. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: diff --git a/cub/iterator/tex_obj_input_iterator.cuh b/cub/iterator/tex_obj_input_iterator.cuh index 466ec0e47f..e448a46732 100644 --- a/cub/iterator/tex_obj_input_iterator.cuh +++ b/cub/iterator/tex_obj_input_iterator.cuh @@ -1,6 +1,6 @@ /****************************************************************************** * Copyright (c) 2011, Duane Merrill. All rights reserved. - * Copyright (c) 2011-2013, NVIDIA CORPORATION. All rights reserved. + * Copyright (c) 2011-2014, NVIDIA CORPORATION. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: diff --git a/cub/iterator/tex_ref_input_iterator.cuh b/cub/iterator/tex_ref_input_iterator.cuh index 5e1055ff6c..f3f6dca317 100644 --- a/cub/iterator/tex_ref_input_iterator.cuh +++ b/cub/iterator/tex_ref_input_iterator.cuh @@ -1,6 +1,6 @@ /****************************************************************************** * Copyright (c) 2011, Duane Merrill. All rights reserved. - * Copyright (c) 2011-2013, NVIDIA CORPORATION. All rights reserved. + * Copyright (c) 2011-2014, NVIDIA CORPORATION. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: diff --git a/cub/iterator/transform_input_iterator.cuh b/cub/iterator/transform_input_iterator.cuh index feb020c301..1e86d4507b 100644 --- a/cub/iterator/transform_input_iterator.cuh +++ b/cub/iterator/transform_input_iterator.cuh @@ -1,6 +1,6 @@ /****************************************************************************** * Copyright (c) 2011, Duane Merrill. All rights reserved. - * Copyright (c) 2011-2013, NVIDIA CORPORATION. All rights reserved. + * Copyright (c) 2011-2014, NVIDIA CORPORATION. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: diff --git a/cub/thread/thread_load.cuh b/cub/thread/thread_load.cuh index 5d838fc2e1..3142524681 100644 --- a/cub/thread/thread_load.cuh +++ b/cub/thread/thread_load.cuh @@ -1,6 +1,6 @@ /****************************************************************************** * Copyright (c) 2011, Duane Merrill. All rights reserved. - * Copyright (c) 2011-2013, NVIDIA CORPORATION. All rights reserved. + * Copyright (c) 2011-2014, NVIDIA CORPORATION. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: diff --git a/cub/thread/thread_operators.cuh b/cub/thread/thread_operators.cuh index 3e97611505..75c962731a 100644 --- a/cub/thread/thread_operators.cuh +++ b/cub/thread/thread_operators.cuh @@ -1,6 +1,6 @@ /****************************************************************************** * Copyright (c) 2011, Duane Merrill. All rights reserved. - * Copyright (c) 2011-2013, NVIDIA CORPORATION. All rights reserved. + * Copyright (c) 2011-2014, NVIDIA CORPORATION. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: diff --git a/cub/thread/thread_reduce.cuh b/cub/thread/thread_reduce.cuh index e1188523ff..29bc8ce0c0 100644 --- a/cub/thread/thread_reduce.cuh +++ b/cub/thread/thread_reduce.cuh @@ -1,6 +1,6 @@ /****************************************************************************** * Copyright (c) 2011, Duane Merrill. All rights reserved. - * Copyright (c) 2011-2013, NVIDIA CORPORATION. All rights reserved. + * Copyright (c) 2011-2014, NVIDIA CORPORATION. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: diff --git a/cub/thread/thread_scan.cuh b/cub/thread/thread_scan.cuh index 0fa4d746c7..0eefed95a5 100644 --- a/cub/thread/thread_scan.cuh +++ b/cub/thread/thread_scan.cuh @@ -1,6 +1,6 @@ /****************************************************************************** * Copyright (c) 2011, Duane Merrill. All rights reserved. - * Copyright (c) 2011-2013, NVIDIA CORPORATION. All rights reserved. + * Copyright (c) 2011-2014, NVIDIA CORPORATION. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: diff --git a/cub/thread/thread_store.cuh b/cub/thread/thread_store.cuh index 5463a912c5..e9e2b86edb 100644 --- a/cub/thread/thread_store.cuh +++ b/cub/thread/thread_store.cuh @@ -1,6 +1,6 @@ /****************************************************************************** * Copyright (c) 2011, Duane Merrill. All rights reserved. - * Copyright (c) 2011-2013, NVIDIA CORPORATION. All rights reserved. + * Copyright (c) 2011-2014, NVIDIA CORPORATION. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: diff --git a/cub/util_allocator.cuh b/cub/util_allocator.cuh index c154acf97e..919d048315 100644 --- a/cub/util_allocator.cuh +++ b/cub/util_allocator.cuh @@ -1,6 +1,6 @@ /****************************************************************************** * Copyright (c) 2011, Duane Merrill. All rights reserved. - * Copyright (c) 2011-2013, NVIDIA CORPORATION. All rights reserved. + * Copyright (c) 2011-2014, NVIDIA CORPORATION. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: diff --git a/cub/util_arch.cuh b/cub/util_arch.cuh index 53bbc38f96..574a6a5b5f 100644 --- a/cub/util_arch.cuh +++ b/cub/util_arch.cuh @@ -1,6 +1,6 @@ /****************************************************************************** * Copyright (c) 2011, Duane Merrill. All rights reserved. - * Copyright (c) 2011-2013, NVIDIA CORPORATION. All rights reserved. + * Copyright (c) 2011-2014, NVIDIA CORPORATION. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: diff --git a/cub/util_debug.cuh b/cub/util_debug.cuh index 0f936e1cb8..b4eca8a582 100644 --- a/cub/util_debug.cuh +++ b/cub/util_debug.cuh @@ -1,6 +1,6 @@ /****************************************************************************** * Copyright (c) 2011, Duane Merrill. All rights reserved. - * Copyright (c) 2011-2013, NVIDIA CORPORATION. All rights reserved. + * Copyright (c) 2011-2014, NVIDIA CORPORATION. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: diff --git a/cub/util_device.cuh b/cub/util_device.cuh index a021dc620b..361297ae57 100644 --- a/cub/util_device.cuh +++ b/cub/util_device.cuh @@ -1,6 +1,6 @@ /****************************************************************************** * Copyright (c) 2011, Duane Merrill. All rights reserved. - * Copyright (c) 2011-2013, NVIDIA CORPORATION. All rights reserved. + * Copyright (c) 2011-2014, NVIDIA CORPORATION. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: diff --git a/cub/util_macro.cuh b/cub/util_macro.cuh index acce3c8404..a94031a4cb 100644 --- a/cub/util_macro.cuh +++ b/cub/util_macro.cuh @@ -1,6 +1,6 @@ /****************************************************************************** * Copyright (c) 2011, Duane Merrill. All rights reserved. - * Copyright (c) 2011-2013, NVIDIA CORPORATION. All rights reserved. + * Copyright (c) 2011-2014, NVIDIA CORPORATION. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: diff --git a/cub/util_namespace.cuh b/cub/util_namespace.cuh index 869ecc613a..39603644ec 100644 --- a/cub/util_namespace.cuh +++ b/cub/util_namespace.cuh @@ -1,6 +1,6 @@ /****************************************************************************** * Copyright (c) 2011, Duane Merrill. All rights reserved. - * Copyright (c) 2011-2013, NVIDIA CORPORATION. All rights reserved. + * Copyright (c) 2011-2014, NVIDIA CORPORATION. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: diff --git a/cub/util_ptx.cuh b/cub/util_ptx.cuh index ad25615f99..59ef23b4fd 100644 --- a/cub/util_ptx.cuh +++ b/cub/util_ptx.cuh @@ -1,6 +1,6 @@ /****************************************************************************** * Copyright (c) 2011, Duane Merrill. All rights reserved. - * Copyright (c) 2011-2013, NVIDIA CORPORATION. All rights reserved. + * Copyright (c) 2011-2014, NVIDIA CORPORATION. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: diff --git a/cub/util_type.cuh b/cub/util_type.cuh index a57b41e246..225f0deb9e 100644 --- a/cub/util_type.cuh +++ b/cub/util_type.cuh @@ -1,6 +1,6 @@ /****************************************************************************** * Copyright (c) 2011, Duane Merrill. All rights reserved. - * Copyright (c) 2011-2013, NVIDIA CORPORATION. All rights reserved. + * Copyright (c) 2011-2014, NVIDIA CORPORATION. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: diff --git a/cub/warp/specializations/warp_reduce_shfl.cuh b/cub/warp/specializations/warp_reduce_shfl.cuh index 2c967d7de3..33d74aecf4 100644 --- a/cub/warp/specializations/warp_reduce_shfl.cuh +++ b/cub/warp/specializations/warp_reduce_shfl.cuh @@ -1,6 +1,6 @@ /****************************************************************************** * Copyright (c) 2011, Duane Merrill. All rights reserved. - * Copyright (c) 2011-2013, NVIDIA CORPORATION. All rights reserved. + * Copyright (c) 2011-2014, NVIDIA CORPORATION. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: diff --git a/cub/warp/specializations/warp_reduce_smem.cuh b/cub/warp/specializations/warp_reduce_smem.cuh index b8cffbf74f..4b210fd162 100644 --- a/cub/warp/specializations/warp_reduce_smem.cuh +++ b/cub/warp/specializations/warp_reduce_smem.cuh @@ -1,6 +1,6 @@ /****************************************************************************** * Copyright (c) 2011, Duane Merrill. All rights reserved. - * Copyright (c) 2011-2013, NVIDIA CORPORATION. All rights reserved. + * Copyright (c) 2011-2014, NVIDIA CORPORATION. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: diff --git a/cub/warp/specializations/warp_scan_shfl.cuh b/cub/warp/specializations/warp_scan_shfl.cuh index d15ceeb67a..c25d195a0b 100644 --- a/cub/warp/specializations/warp_scan_shfl.cuh +++ b/cub/warp/specializations/warp_scan_shfl.cuh @@ -1,6 +1,6 @@ /****************************************************************************** * Copyright (c) 2011, Duane Merrill. All rights reserved. - * Copyright (c) 2011-2013, NVIDIA CORPORATION. All rights reserved. + * Copyright (c) 2011-2014, NVIDIA CORPORATION. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: diff --git a/cub/warp/specializations/warp_scan_smem.cuh b/cub/warp/specializations/warp_scan_smem.cuh index 9617b10b7f..4e292d8a52 100644 --- a/cub/warp/specializations/warp_scan_smem.cuh +++ b/cub/warp/specializations/warp_scan_smem.cuh @@ -1,6 +1,6 @@ /****************************************************************************** * Copyright (c) 2011, Duane Merrill. All rights reserved. - * Copyright (c) 2011-2013, NVIDIA CORPORATION. All rights reserved. + * Copyright (c) 2011-2014, NVIDIA CORPORATION. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: diff --git a/cub/warp/warp_reduce.cuh b/cub/warp/warp_reduce.cuh index aff53a0855..bae40da28c 100644 --- a/cub/warp/warp_reduce.cuh +++ b/cub/warp/warp_reduce.cuh @@ -1,6 +1,6 @@ /****************************************************************************** * Copyright (c) 2011, Duane Merrill. All rights reserved. - * Copyright (c) 2011-2013, NVIDIA CORPORATION. All rights reserved. + * Copyright (c) 2011-2014, NVIDIA CORPORATION. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: diff --git a/cub/warp/warp_scan.cuh b/cub/warp/warp_scan.cuh index 9dca865154..4c79682b85 100644 --- a/cub/warp/warp_scan.cuh +++ b/cub/warp/warp_scan.cuh @@ -1,6 +1,6 @@ /****************************************************************************** * Copyright (c) 2011, Duane Merrill. All rights reserved. - * Copyright (c) 2011-2013, NVIDIA CORPORATION. All rights reserved. + * Copyright (c) 2011-2014, NVIDIA CORPORATION. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: diff --git a/docs/Doxyfile b/docs/Doxyfile index e17ded3a7c..55b41d73fd 100644 --- a/docs/Doxyfile +++ b/docs/Doxyfile @@ -212,6 +212,9 @@ ALIASES += blocked="Assumes a [blocked arrangement](inde ALIASES += striped="Assumes a [striped arrangement](index.html#sec4sec3) of elements across threads, where the items owned by each thread have a ranked distance of \p BLOCK_THREADS between them." ALIASES += warpstriped="Assumes a warp-striped arrangement of elements across threads, where each warp owns a segment of (\p WARP_THREADS * \p ITEMS_PER_THREAD) consecutively ranked items, and the items owned by each thread have a ranked distance of \p WARP_THREADS between them." +ALIASES += linear_performance{1}="The work-complexity of \1 as a function of input size is linear, resulting in performance throughput that plateaus with problem sizes large enough to saturate the GPU." +ALIASES += plots_below="Performance plots for other scenarios can be found in the detailed method descriptions below." + # This tag can be used to specify a number of word-keyword mappings (TCL only). # A mapping has the form "name=value". For example adding # "class=itcl::class" will allow you to use the command class in the @@ -784,6 +787,7 @@ EXAMPLE_RECURSIVE = NO # the \image command). IMAGE_PATH = images +IMAGE_PATH += images\performance # The INPUT_FILTER tag can be used to specify a program that doxygen should # invoke to filter for each input file. Doxygen will invoke the filter program diff --git a/docs/device_perf.xls.REMOVED.git-id b/docs/device_perf.xls.REMOVED.git-id index 26d37d283c..1bbe64b5b8 100644 --- a/docs/device_perf.xls.REMOVED.git-id +++ b/docs/device_perf.xls.REMOVED.git-id @@ -1 +1 @@ -2a322a3b9d7726282a4d8bf675a3ecb0e191b7c1 \ No newline at end of file +e800a0bf952280fd94e932b0bfa1a40cd0420446 \ No newline at end of file diff --git a/docs/download_cub.html b/docs/download_cub.html index 5748bb5008..fd5eef826d 100644 --- a/docs/download_cub.html +++ b/docs/download_cub.html @@ -37,14 +37,14 @@
If your download doesn't start in 3s:

- -Download CUB! + +Download CUB!
diff --git a/docs/images/cub_overview.png b/docs/images/cub_overview.png index a8d8c34ec720ab34a70613468cabf3d22329b21f..d75e1f7b4fe919fd5dbb2e4852190e9f29856e0d 100644 GIT binary patch delta 26266 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 Bu3i8D delta 25208 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 diff --git a/docs/images/performance/lsb_radix_sort_int32_keys.png b/docs/images/performance/lsb_radix_sort_int32_keys.png index 631d04276fc64eecbd4899a053dfc043392f8a66..a8ce4aec70d2c6c75b4780fa23ff7735d905ca5b 100644 GIT binary patch literal 10480 zcmbt)Ra_fi)a?Mp-K~@s3+|K>oI-JTcXxLwRw!1(B|uAYcc-{hBsj(0CAi$Q|L^|p z!+rc7a*~-GpMBO|d#{OBQIf{SpuhkC09#f@QVjqQh2g&!&=BDzx@-Lk{0qTdO`?Db9qlv!JCnMZ2xy2 ztMjw63GgO4em5Hs!j&}FFveRQ7f8zp#SmagPo||hi^cj|b=Llnl&xBNZn$@PqUE{P zqVGEtS4_ZU7>Y5_Yv;f1k0XATf%mry*Jb!p2nzXMytihIB4_0=4+lFlR^f0rL*3ndy<89+> z(9?x=(Bi!`Q^3cDO}&vJQhz75k<$$$72u3Xz!bme3v=m!DpO@mPg^RlyuJNg%q6kM z@jbxFSv7*Zx|BJ|SgbWyI9jRFa!Kl1jEOo!aXe$hna*4^ir-(o6v1dF2vCatSK9TT8wK+ zBwPz;zqaT|_Ykaqn|Q@)yx6bX;|2@sx2JuW}u$9_GJ({6oqA1bMzXs`ym8)Cn2FU-?ZfBzFDE31PNE z3L$(tj*`C{C?iA!V)>?(N}Sz{x_FDT+mKDVNRZdp;RaO$5j*@7abCE*;OA;)78=>3 z=)~0l!XaHF34tG%*n~cg%;4b5(C52<_&=g@1nqJ#sbq4i+@goG8-ShxAx4WWzUL&~ zS4T_y%K_)5^?$w)Mh*))?Uwn6mr=Yd9%~Zq*5`H4!Yx1qI%LWF6YHqmi0Yk|+X9dO z2!GT+P?|X@U-j)~!w@2#&P#BteUFFTEkdu0}+Skf1SAtimZab5YnaQu)~W**~%z;i4GT6@VB;ge@=oZ6<0fl~`e{uS^xH zCkUNIJx7S*0H2AT674@Xi1$9G>=ExKY^s}?uTWoZnTukM$wgKhp#Sim7e{?N| z+R+mTd+xqub_90|yt9vhbtPUl)HXN!ySRuUX>1K8bHqpj0NESxnX#U4$yftyzx_fA zLj&xTDeUj%=H}+(YVYNxg>~J{Mms$2msKuuDuKg>j7<+N)y6^9+}JijDcyj$ksBg02Sra zMhP?kSQ+DRf?^O3Sjx9-;{8GafX)t(6O>sC7R0kK>s*N!nM{oUh@oBA4HZz=5uB6w zKinI9e1i8)R%*Ur`Mk-v1qT2)!F_c@j80Y4@82(2!Z91`tMZ~<;tZy=y#B}pMchg> z3jm-YK^i=#WH_u!=3ngN)~6O_8^TA6&02mam9jTAGt0?p?Jv^vtQmrPj`8#6cKR$L zD`ltJ%b29Sb9BIDv1V|;%p0SM=vNSjx<5NvHswd-#VY!wx|0az3h)6;w0qVddBc{LezT ztlA;b5p)#aMZqKZd9#_Eyrz_O>uV(W<&V2mEA!9dlz|>&Lj#fbZxeDfc6huM3$oMi!PB)6dOuNx0hu{R3C zs$B$`@vDI@!1^%ADJNKhj8BLV32?kWa*n>_-htq~>wzi6mRXwmKO?jLHE&7Rv=8|t zJiF4?UiQN4rA;E*3!xXEU4;q1>gZV}0}QkF3hp*E&pOIJ1OW9f%YfuNwI8S<57KJju{0}fgAl`dxe^1Xuh zgFl*rmnWWZk^Y{)sfa6Uj{ei5!0$dMjm5?S?pwofZw)60jqck&^YcLm)5E7M}E%gBw^k~>T-O$(CQ~8}~&nRp~eL0s|?brNHVIM(} zhiZlUOg+i#9+S2`-Q)SCCE+)3vJo)8By$*(L<0cr>1u+AT%~mUMYtW^6HN3G9V*&y z8;`;$j8)72-${lbs_h0Her?WelS*WByF8f7nXb38w(bd0Ui|X;=i6_moA~v-L9bk) z&RGpgXaMcib>8_yUn$4K5k$2i_j{w5v@iJQ2Rf&oGjPs9P>eUGGRpPFDaCv!LdTni zfu*)UeFL@w1LY9*>spWnc8d-nhtW2M-fr&RRJWv?Z+b1JKF5qrEUHk}a1I+85F4Xk z@3aKpnWLpUl$9rv-1dq^6jhTAGJtpZ5zf>+_;wj2{q!wm!mr)Oxd( zj;8m}oO2DWcSucCYvpd(4+s8q$1fq>_=bGKUjT(piw!de9iqpP5E%*uLPcwa$fyHF zXb88q&0p@JOt72ZX+Pa?-VEI1G-ur0L)LRL}(2etU!y-iFrPB?jwZFu><)ltUCbZIpdgmDZ zC@-ry*szElwF9Uj!%Lw1eSee_~8sW%GW3%{w7R}8zGBdX3sOu9z6-&8a*>6v| z?||5{QH?mb;({oEoD*&1>sVM$v74k# zv)Y;~A3ZqeL|Xer(A~nai135{auSoIkZj&qj^X#f(^!2QRBG~~Buh9fk{ID4;k`S4 zxGukcJ2N`xmDjy)C#P}0l5oxuRB=0RU%qs&Zogg3&0ISusFfIj=ZbSkaro7_84Klb zr7JA6g4Lmlzq{fqnh}c6?@NvoCXa>|Amf=;wyS+?#g*J=oKKw@wkUsI3?P2*8D`n*Zkl(R1`S6E*HITC-+0>q5>B9;)UKa zvworX3GbbnVf8m_ZAruL52sQ3Em=~g%+)FEM=>Uex=aIK;S7Ig&|mbA4R87gCBIWi zYXVMwvT)hAhO(cMg9-QDeI>!e^OgpT9IYoBows%4zYe=4NA*-)=g1Bdq!-s*KlAnB z{erL|Xj)FjG@QU=6~~~1eB;2x+M(+ac~-jCF`L;Ll4R5~JN$$ODOcB4hr%tgdm2+W zUw^`5L6pD#DN3J+RGadCPSZ65@E-}!(~=o9QcTOc zMWoSoQ5L=1SWh0EYzJjE{q7RIZSeVp+9Zz};zQ=MXy#cH7vm;rPc?mBoJ%FUX69A; zw4K-2_p7$|uA0>E(fjajxpiolU*nYrLI$Vn;4H2H?Fs|057hd%v4h*xK^xT^0a92o6386$T(DA2d+|$#S}i-2V3QJI zUeySDP|vp5^ykIarjPG?pR(O)z-cjrG#`!DDqaMzkiY0=Lo4O%E?vI4 z;Ab)zzf|akeGxxw{5uB6QnKh%rl9vx6ahXnQ{H4q|H}9Chtlo1N}K&3By%Vblly_ zxMzKd zq5bC8`sw6t?Tm5o!!#u3s+fC^_3hR8^WEe!#BOY=-_d39zuTBW-N-$q>HN-WCeyAg zGUS14Ne>q;R^N4tz6W>OG(Q%>a;}8CBflKiwe24)w%2JZL~CP8UgZ^+2R?i~_S?z% zU}ZJTAF)6zciNwAPxNww(E$Bd!tS^P{t(tMH|)*h3_48zR%%}&ivAMC@y5l_qV=-x zM)bDh5w<@Qd=0ux?<}-v>@AvIn1kBQFpBMr=NL${(x{t<(NaB!#cq&YM~15kNCDJERg^_aX4l4IwCkmPi_YjXluRf{_{vk zU7cli$o&Tf%|GCeu-20E3^H|jzue&-hbYE-Q#+)iz;98_Gr!8lhxO01T($MhTi!?N zrcYg2OC65$VE~^u2R!!MVIP_bZpLiI~Y!m<)1J8%7n#c%^f4(gtu016V}sxXA+7& zMNTpS#lA6oX5&6pVNpEQ_{~>7haF6>>90_#qPwWG5r*@=Gs})g1A4__VsO*V7C0O~ zXbP5DIUVdm7BrRQmjT}II(2uuqn5hSZ$A7msi*+47!cjA`CnqaheuvZSt=fBt0KQY zD1PdgWWq(S+m@`Sq`S$Ggurn)<3ee2p2N$pH-y2lsx?}anry>m4a2{vvsMTF;TKxu zdgPjSus!|4thKa#>Z0?Z^ zJ!P@SwThrRU%QrD>mZ}d?Btf3y&GEZaLF2e{Y75Q2Dhm2$6-$ij`v8)+Wt!6EwJg< zZAft0cJPc*U|y@V9nJO&ZnHT*T5AMhHE&3_`T_5|&$4*}%6^&3P442IS%C&?-#JHx z){?+eJepn{A7HnHkNe@`hzZJBFa6^iI$xwaeL`#+h;~XpUTT)skI2AdFmpeY?tkmH zNJV{luuhOWJ-dIO^*Fu@6Mi7lAbGuetXC+jFB+#wGFR)8Wwlux;O@O;N+=OGJ=(vV z_mIvJa0rjNtw%H92=5m{xiZvw7eIVFR6A2B!6fbH_P8o7^5FbLiLF8|mGg{?xL23# z&m?5wp61ZcdMqn5HC4d-=sC86k`j&uA$C{g<`CpbsZ{IxTMS}FA{A;Qi=Q|FYt#KW zr>(uEWEfp_uwuwHH`S!Ae{P_apI=(;O!npTiS3-6u?c+U6;hG&d=0UA{bv+EFW!H{ zp}}??T1Hz>f}>-jMizgM`tb_Qy1OeDudBO!3&XY|?5B$W8_5Nwc8_pNN+Qn7AoxhC z-$$RS_6J7@Voc#~o@Qn?=dD1rtG`4bl5#tfff5j+au%(h+Ea6yA|)(S?Hct8zxY`y z5eFQQ2|VSf>euwtLVQl5^-BbBp%vH2of~d`T!bYN4b2}gqHDXq<}Q}KSo_dP%(ef` z4bemP-cR@w1QiX=xGH6;`JHQo6DjI7bLQFUk#=D{smi)b! zdc8EvGO(08hT+x%ao&y~%PzKw51N>)L^qY$*K}zVVHs zC~35~->tm5OC z2>qa&u;(RPoKUY8kX)7V43k!{q*H)oMuA* z|INzO{QgH_`flfftM4DQ+d9}|k6`{LKz)Q|h)5UXs3jCNMsUbvsuOz%AL z3Ke+HSntX_`7d+a4?VqHOPYOydVOI*7SGmxH7Dx7o0lxPNKoJ*@?Qezx%#r1xRq}@ z?h9>s0>;_HA3i1fL=bQ|&s%L+DQ5;@G^#fG!&*2BN|otn_+?HTa@M;xR|37jn?>r0 z&zW_yt_q;A`8$>6vzg%C$kRnG^9xO~mo}e=-|?}5O{@=jUT+QV=jy(aVo740(0vMa z&80SgVi#^c1IW1NVNOd;^e-s;{_r!P1gjMac3EgLlU(_9@E~RzYqF#X2^!!%p@!t- zW-1+cH+e>80H>Rz^>(+PSuVb;#?U08={2=QWTLKEL`6kBIF(#?m+IxQ8xzO!$KDd+ zV_F9QAmszsP=(M2Os`DNYPBM5yaq7-9abnjS&j}j`P4)QRhY8R6kZ(0FU(G2pd(&>Zvms-EG~_iCb>BrJ z054esj-7RL+ha2lyF4Y}DJkUkJAIZp6lZ0|+wPvfcgTbj8uH3<8It*LSY%x?;oWz3 z(mK&6X`S0wNiW%D5$M?a{7Z6jo-``;?kz?5#<+ z0(UR~h-ot%Ew^)^qULBCEvGLNC~n!lvEGy%>Q>tQxwNzt7KTKTl0tT(2A^s`g}xG! z#z?VsQhFXAi}7ak5A~*G<-k34H^%riLvSdR)K({OocJzIozeqNAK?ae8)bIL`Om;^ zvRSCc;L?kjGRiWJ(N)E-vS(G=-UBZ;Wv*aw3OShb=A-v6nwIeoQ<#+Y0lyNq_ZRqb zVl4|C!>q8 zry&I4W3N}GV_#v;_mFqH!?L}{oCOnc@{3ht-MjTmvXz99Rs+mO^?I9Bdb(!^;+wfb z4#eEWw%dLfc|OVU-EARUs&GApbnd+}RsJl(aP1&BB~(b%(pX@sxKOv~xPq2~ikQDt zN=~PwKsKNUy#2Dxp3cmmlbo zYg$MA59u~RWh4OM$eqAe%vM~-@ zqdgLcRr${j?n_91HekHTm)p+JsEAYnUld~kpnS^~iPuT+r_V{24hJSqvyz|;R;$db zfHk;1Vqs3z|21cozmg-P_~QR7$-^4*DC8FcV^4^nbn41UOl(V)KZaLF@z{?h8hbM_ zofAA+gUH6YKSr4Ezr(sAsSX5ZkoiBYvUEMS)Dac4ldskW&A4VZ@gI&m6$_L8ZoPLz z=2cT_3TY)SVxtV^-K6tsZ0KXVCD-((h4LO3ga_GO8YBeZ{5p!0yy#YAp^MRd5NnV| zxy<=}!npKm-ztKwq_#!doh=|vxO7a~a<$VCEG5DxVIS{#I{*ngWn(CnoEbv|g$Ma+ z_mwy<(Kwg%v&DJwHG&)C_cco2&SM$qAERBUi*29Ple$<4nvX@;4JDZ_0Vf|~K0H{V zJO;XIj_5a?n-S)n8>hjna`UT)yFV{yiaYz5{x0;u(w|oI-`$W)9>`(OjDuZj@sUEe zG!>cyT&lp%5>;Iy?;X8vTDEU3x(%l4WP@RCgY`?QWlKRAJ4Qj?2+%h(H!&#X$F)`# zU&DCi4K?^m5=x;$__BxR7|hc!Hm}^QRz}Fm>k1y~KTn}^j_CAy3z8z6Y(<@ASX*6d zv@?Ysyb<2sja%kH6u~oQwG|_ zw}~Hkd|69lPE|jw_$&JkmxmuWNd|`RxurT%-PW{7F5xM3!A{kTBd3pfh(Sdv!Ufq1 zerpJhl)w!TW!wTsdgP)r#M*L)QY8M&+dPte#>%SWy(`) zPAyAb3yW7vK;Gy+t0#835Hv5h9~rg6RpZ}pGrdMRriIam@Mm)>NaB5 z#ptYaPOJl%VE1L7-%MTs$iLzB`A+#B0_M%B)HZHaMhlH)!eC7CR)kL45d};E9p8F) zxHEc_kMvK9o$&~c=k7B-r$!gI{`M5^?+QCEOD`g&$}w_-1N5lfQW*BxMvN-AD9jn> zQgELNKAYC;*E}J9%s4_!lf6|3<@HIpdc8JRA>lVpM7n3-h5S7KEhf4tDXI+D$>_~b z?%@hsHyT{D|4-%rUz8plM)(^6GhY63XmQ&TSqg=;rwd;6LG%>3>!kIwNkz{V%;xS6 z$ols8*Ltl{w>A?zSHsR02s$rWuw8tW+H4LeH>V4N-2KrPnd}nkl2tazR=BC#$tWPd zkF~2)UuJtT7+G__yB@Nd6*ReSHbrbfiriK|PKoB$I*Z?grS6;}U5_%?1=NREI5Hp^ zWW6F8@qb&TzIpejhvq~)vGc5eh(d>lq>?R%zqblm7t4`TbOtZ@f{bjv!4m7#F}#|; zHy}%S>uGyqi@9&!{Ve%MCFzgo-J7C87JiYt?~ah#`hZ$Gx5ZWyhTChs!l_-sMdM#r z=I<5H49F6tf9z2837c?yt4$i4tk8Qcf-B&lM*V4W5p#gS`*F!;*igYA#SMq`mjNaX zBy;3}>ngv6bRlv1!Bv)YR77Q76mMvtZ%TSr!DiM-<|<+Rz9j6P6`P#eIXx%KIDeC? z0=Ia1gc0Jedr>k~f6`9#wN>S#F!kx-Wy1sdn4_9KBtIoO1(N$!(yK0d)|jylw2c}| zUK~1$bpN)uH+xViR%(3N)?V3d)F5C!D>JJxtyGUugjQ)-aSUZXr;YwKS!LiG{#T77 zWD5ytNB1RZgM^2=F&VeCX<5`yC8I|&Ij?TJ-rc118CX~)?dXtY4SmktS`{GN))w6Q z397{;q(%{w!s}|^&#P6q3z*w7Lba6Z>z9i>A@`-&aPPaHU7@Mh-Y3rAkI|}pK3;XExPP_n!#CDkbcPEJd;3%d5qlM%MA|7`*;1}L zn?DXz!HGIlF;q!3{^l+n%$6TB+Uw4BXb;~EVfDgdzR~S!-9laIIL9K23hGR3yfFjTLN>K~$G@w-mQ^M@sHd0Hhyot44`~s4>ytIOF zsnUJ5MS{Xb)Qle-zw@2mzademXWBh4b1uhRr-#3lk#FeYTrML`d7dJ~Do!d={mZ=p z2L;sCC{P$ONm3`|X|x_70_&PL6>e|%qW9fg?{`>@yKl=yi|iC`X8WN_kQct-rnhQ% zZCEHnkR^#+;F>Z7ku|crOu&g_`@p!PR<`Dl@B5;`chtj`9$z8BIAIb|1T*VKEqh2^ z{fn`^+1(%fZFFY&1;iM&m&oP|uk*c#+j#eWv?lksv&Nb`akGUC(;SATr(eX4syqME zEXWG#!oi%rNv11x%UR5wwD2W6y7Widnwj%q@3nX5#wi@FfNoM)Pu5c=Mkc12SC?or zd(M18)_-BVr|k$y%&DtyY1Jy4aBgmGu^w$6gJiBk@L^aO*lR?JtVrd$(-?bl=;SqBD0$2>l+`|Z3)sh8mflt z>0k(g`7&JY6y%2%f~vvamg2nvV)ny?5>oOXvGB-3%pw)+cAk(r`{zc+Gj z1=^Yy&Z9oBo-jB2hzhfeUyQvDx34R6-j*FT+as@e__Bq11Aw-cE?aNadl6F>Z(7d_ z%U4CSgw1>I3;HDHQ6x147}Lqijp`J+E}GtKUTpJfX?;s*fL(7!K*{Cg$s fe^-96dHd+)us07{i25_+!!pf$tPD^1_U&!)1`ZGGR_5(SMR^@v!?z6owC=*4>{1t2^ zjG+a67u-dhCXAHlUrFfayo?HJ_kW(mGW#Mf=5^GKoQJJ1D^qiI&lgSuiv&l)l|8~D zVbSI~OTy>w2He}QhM!Ns>wUk@ML2{80u_N!q?mYK*;F&6Oop&P$iTrhH48-8^wE-E zV4I?MMMA|XB_H%`90C=wO@kLAJ1;%FrfRe+!O9i?=uzsWr2momi{mALE%Qd3T8S7k zAYhf6_TPdc#wbSIL~G#}hP2|_cW5a7o6kq1YK`!5k%b}jn}{#HyT7cht--cb9$G4X z`^PJJQXDT2Jjr&FOLPi#DSyCYk&3)W@lRl?JWvYBgJblYAzVfg>*28uFe=pZrN2AB>w{Sa5$qPH`*>S7`Vh&qoGHP8I`) z(O!Y5m}KWgkt8kx<3<#W1rLWHYoKfeIaE+Q!QX*V?Y_GjApQko*e$i?i4kh+iEucrL_hfI|5#mpRbqqZy%fYGS%?h7)g z(D&k%in2$gmPB1ycu&FTlES_V9I-zu`eXBKl1<%RQ*Nl*)9dCgVgP5&q{3%SLE;2t z$iRe2=%8$X<&;<^pBQoc&`3Y$yVMhO^l{$W8giXAAhk3=B7Q4U_Ydi7-LUSV)I)=s zx~{^H9z=L#VR5#|-B;X9dED-Dg*MHiSYI}LvE;3>nOKS}@%-#6=eQo@5-$%u1XWW` zhB@yRsZ4c%<(AyTq$0edvVC_`RKp)P=||kBM1H-f$Cvh6TPNU{ikJ~QG3ga#eLqg| zS@M2IK?=6RQy=|U)OJ4Xwq0Xa9j;9{qlFr{&( zt%r5`h~UtpON>RYz=d)|4emfiP#WbM-PRhVwHN?lN`4^@LB*m8%3>C^)ZE!7l)?ej<5T#=(8LMkxqe(h9Vn6lyfGayah!dxStSY9~%u(6oQ+2LHlGh8PrpO zm^($3G{;{yJIG~-4T9xc_Y=-0ra!W^5T;qKnviuHZ_pLeirX|hJYTzG_oP7?j<6EX z**;1G_1|V*A6R4=t9)&z&WuR(5hV&;iaQ`qR=vy@PCPyNZB^*R3Ha(=D8Sd*3q)T) zA;Si?Ct#drN>7PP8ORtKlo9D`nu7s+kRDik78@BE`TOt5(Xd-iYiVlj1MKj$qJ76r zu3q@j6Wnfgu^Yl&4QOg^o<2ySra910axIEjHP#ow2UGOn2{SV@d#fLUKljJ~`lO@W zKBhe@AY+8&EVLBOA0F^e_x|!biuU=0xLI5N&pCWwIRUg-MbKhF2s?k{jDB=fSXc~mv6*k3z9qA+YOLLv5KW`{S6-j?;TQz zU+`Siy8O6pXTLBnTuocsB7###MMZ^zLI}iP5D+)Ble7W5_&j0Vgu`8uir?FEo!I;L z?~Y%HB27sS>@C+g;)`F~I>ptBO|YSrR$p`c?FcH9~^D_5Jqt_V@2nK~GVO zT!0IrXFYj7R$ke4qKk91#G;zYH3Axhd}vQd?Zj;IX$DeIBn`5#@UQ{*E)5qVYJFBr zDo`+84K&A@FiAOsgT#i|y%a3&12hmE7-V7P;R0$l2A4lQQ(S}L2`s&|K4fHYR4m0E zL&V&CacE&|+4)rLydnQDaM<%A4MQfjV8?FmbS^fNzOp%;6><766 zBa?v&BFeAGRwo$FRa1fcR-$-+l=n2ec$@tmL15jM98jxDal-l`>$Qjz(2G8lWbi?0 zGGD_Y_pBlwHxx!VE=9435*JA0%s~&HCZ46f7DlQLq=re4`ZGW0f53bxe0_Hl_zDAMSlwEOjbnGf;H;{-UIJvn*OQ7$~Pn=Tcr z>h>wAfK%{R=I|@)ju!FcwcZW+Q>Y%3opI(MoMf)rH7_UxM^vquP^wBi@*g*qo71~! zeOE+{<(9tZEOLb+7r2Hm7Q7k%u2?r;Q}E&C@ee3W|0?$$GZcz1_ESj0UL>C{T;jml zTX)fFPA>EFJXmZ8zUd`;9fS>a=ZsDV` zck&0B-`e=|Bx4P8hY@!z585A?> z6^i)1djxoRd|FuOOE@`v7W-RBH(^0Q5;4rMi`2QQ1dKfXM3QZ7yXNONjz#-jyY^lA zKbwVf(`YaebFf_8+yU?_0PyVA*P)SY?sEX{{cRb_Ur2E2%a3<2x@y8vCc=FFlyD( zCI==W-_YYijasDt2r@s-sB;@~nb@G+ufHZshJtx7wCOq{0(+rAu8(|(0QUijYd+fO zE!X)O(^9KxZ!L8TXG8+0!?SxjI)aYzrW3)r%Tu6>Li5|s<$WXb9f;ofzW%X0pn3D; z=r_q!iU%gLzTYL6_l6C*g4l7?CO_#P$Eu!b?z2}b8j3B`3W#Qp8p4`(n*O1 z*gATL2jX95<@FE=AMMou-eL5fn}P=)u|d=`Rqp=2lSUqWQN=#pbY_g0!n~p-{rvfs z6#Ebx*th>k_B`4N`rA}L@6_zM7~qR-R1Fkf(F1n%{8?cJN6lTJ$NBV(-{Bz1HreD^ zAQFQLF};MVsY8{w0Z#JfcEy^OobcXvviXWY(}RUyfMH^T9ytRr8$ z+mEnCumPO~h(`xOtfyH>@4+telbzfM4qf}s-z+of-N3K- z%vU8d16}ay;mSC@4O@RuXE!zOXP3^`b>A~n7JrPnz`U+|Sa+cQ^)`a}_%P@;mWSML z=Nh&CsFD|wu)zue!kfw8qiB+iNey`MrSlK?F?c(zn*irjag1Hj_%l1-0*=YzC@aSg z)XgmsAfCrQfFcP7HM!`CJaSw|L~<K*G@$^DoPnFH_8&BImVKmSrl4496ph#xsN= z%)1ajkznBoDc=&ES163#E^hEP1we^KO**{`feTwXWM4>pK6cQ9K=@-Q#jl=fE9`$^ z5D2niFujF$goC$_0*rT`SN5i;u;_FF;P>^V+-?$>qL2ZkE>83GP8fMhOc@7~;6`BV zTS8&JkmRblK>Ri1w<1s?2^?)Q9~hx{$4%tQ-h*5A4;K8DBd;z#5y3lpMOJMsu7s=( z{S8aS9$(F3iw6TnK4!qEQB~)mrL5O##`A*UC5jOFJ8jg+k$alRWsz{9)qzUEzmvbW z3_>Oh=pC7G+e#g1hEp)GPN{u{@phwrRoMUA&Pka$0eV zOFK?zh#W_!M_+Fs1bt~;cf+TyY!*bsKO>KgnF^#jzR3WdqBm>mle_Lc3(F}QX7Jwp zQ1O)th_1$zT?qb!3(v+X_9dQP+Ix75haO27_DoY=JVQ%OVAARalCU>3!_})%q^({S+FDj9p ziJN%5^|CVIPr}u19 z#BwS6+mmtkuI3c}o1H?&8ssjC+sdeE-(J-d(NXm3*SYxKq}o0E7TY-8+&^Ka=WaMhrLejEKRrtA5?v zUQ%E#S@=0p>rtH=PJs9F$KKl@$7utT#&`Di_L}<-1O5EcN0Hwz?4Wu6V=(sMzVuj} zM5SNTK;2r*=+ZaaR`%wZ{Ni=5U1JkiokA*_A+oyV$ z?x5*1^s^~~@RbDhR>9BF+i8VL7li**ypp$D)C><+Mx!o?eYu3{o#xzg+5S5HmXdG! z&y4mtPn^XMYs8Jn(GOP=t;E@SC@?`Uy;mDl$AVTD`H=)Mz?VCrtz`cm_V2;FqssU{ zss6qjr+ESg`8%|LY{8S17}Al9PZG^jX5t1id}BdVxn+!wH9si&`8=Q%i4#-y002qy z>>DO%SeqbBef7f{14ppm4MKx?Clt4BjaX(lUP&~XAuL^gXZChbKzr{VHsN&Vn&mYA}Q;B`CMz0-W2COrFOvp%IqF31(ICa zcj~h>uU`*7QSPx=?{u6Gyyt$SVb*>w<5NoS>nfF&yIAGxa(_#ew9+!cO!Cm@ zL2tO^BV{V!_8fiA^%Y;Z-*s?>>j>=db%aMGFK@Pl&!(8*$3VTegI7)>eE@}Lf8D<` zESu0gd|n@ie4@3@#0SN55+_i}FK~f_I6h@C5IX&f$Xq`-j0XA7=FJ9p;YoLk!1S05 z;6+k{a~src8M9yC$z7v5p)=b9eQz>$*VVk74s@euQywT5%1PaDFGge5T`wkW&`}fV zkiPgka0ChlCiv+j#Q-h=hXuQdcNKn|Wo5N>o|UasA4w*`J89&^h6~8z+i1x}6ULg` zI^Kb>_8M4jZKc)mb|}fmPvzzPuHUh9Ip^;*aUuVn{vhzv=ZJwE0}NsfiWJ;Em;Vna8Q;L6Xc)h7s$R8O)#)f83`TCY$C z@B)*(p;@{S-$og^E>G>&Y9y?dzVw>QUe9Ra5>oTFRB|jsLH0vX}N=(&7=S9%As%;dQ40Q4c$C>m4`)^CK&NmtUYVTE~GxU zjj{rl0B}{&6{WS?CsUlaUsbctGM_20@>aTM8_L^q{8y{*=+MMuPKxxyR-oySkbg=>}BceL8CnkmJwF(e72uGeH7mUTl6_h7myha@v zuIy%eDjKtMU4!py((q%jKJt?u7+0the}_^4ZqKX%tL$We9gjI(x#iJD2E&07m4|zZ zP<2>;dRe1V%!9AQEvk!%5%I)2(4igbBXlCDBIbwqqkGb!C!3e^wq#^)DUa~?MQw>K zj;=@6MbS*zu^1@}kmPQ@iG9j%r$Wcb0D9Uhq=p)HQP34Gc5WLwv<^UJ>v<`f|Pb@B3g* zQ9R+#&X0lPZHw)QsY8J|=Vi`evHSg0>7{H)f-tUNA-RGFk-_^Qhg_6_h`f=#VSg2o z$dr#IZnJJjuw4y7NISLMG1or~O+MR@&7iagWX_AX2|#+H&WD^8%Rma&4?b=k3K3M-T$a&oAGdz;OM})^!@e{VUzX6q+VE4` z3?j?(`|gp$>FcC|0%6??jO|13gj%!?D9O+EB*(z-&!TBdi0eeS6+%gtjfQH22z$Uh?_kdOb0u{q^kkxO636iz_H;SF)m6o#lpR zMYpA^O^rBLbz5#O7xQUhQ5;?Qr>UA{r zYD0w7*V!;nfUr*-q7dz{)JlNICT=YByr@z?`WXp2w{P|Oa{&TZTwT#2aj~&wWE1$= zrPYkvy~wD^dSAvkdIHr^BpbQ&O}_z(D2?}0clmTcYsp{Yrst#u4Wd^JetWeWk+W?sj--=a|{ zbg~byOLuA-gPCq9=bQBDA)W_!j%h;0O;ER0@Fv1*g226!hv~B3t#N%ClKMOxV42Bv z7e7Js*ms*CSSodxYf5$o^}Dm5COLbtB_r|mfaZH@u{1p>vZlFttD51l@6>%wttBf~ zGdRMS@m)m@;AC@*1$b#cIV^!RR=Z>8^!~y_tHAO}nGubFP?xK}oP`-z$_AKN2zg`YDU66mbG8%b10&hK2u0aiT~3pqov_!V#U)SZ6Ym0g6Ug zuP8Ip@#7^yH>tP4)_s@ojjW2Ytf;KNCGq~n%^=QU=D$LazAsfhK;sPjC{1i&feu_p zT+FaP&R;Ind#Zb`0t&jY20ozcSacYI(q?_!qu1$50sa4(a#Zf( z^}i{p*tTmHOnTp$Rhfo;W_EX;=>3n|%KRIF?bLtVC~?~?Y2%N%C0zc`zn>->Eg%4) z%jV3hq7uV<&lQd^4EMmYlh37zGHa77aG1F0;|0~*K9aB>q0_&d=y{>pAJf)Fio%}b zQobWQ=?0Zh8|JSJn%sY*%b3Gc%PRDo^EnkH6+(S!NR6ph0C{mC>_T(NP-2Uzi@ifE0a zT&0^SeoMhM1KP&QBl@?4^ZNl>tDMvAyqi-~Q(%pHe}8{tW24F>|Ix+hC9H;=mo2ih zTUznTT%)`1pOppQ&p*P?!W#k;^(-&Zce4#fai&Om2n9{@3Wf%G7Gp!3DP?DS>~XwZ zBoqvH0@KOC%ExrnIH)c`m0%}f0*loOWD`5zm%Xnjbf+VqS z;a(Gt`qv-yd`;sp%uuB6I_#mR;^*1X-f}A!T!_!X5&5?P0Q>K+^k12&M>LZPWWLKSyc=3?J?=7Ml-!g z@6*b^d9+x&n>%!#kyQOBdQRCKKEbc=SZx+_s27yQDotBk%tE7G3)>2dv3L~M8GWs^ zGkY$nMuk&BDS{KA{a&JRRh}oik>f%jF6##wWnMM~k>i)D<6E{a{k}QNk(uIMYts*n zbjBVr7nNyKofn?dtx2ev6_}pyYja;MH0!@>eM_hXc?VqslP-uf-{uOfDLfSGjM*H` zFT)xJM=gvd#e2IsYDd@ zN_ewW!^tnB;{-G<#Y|lerx~S_q2Z01RlP_{dMRkr=@1V<(Vbl8DEH#F>x37XbE-OtYy(|N9R(;$txKLJIzVF_a>+&C zfb;VUTIA<~b~|e=uhPDha1F;%QV*ST9D->j{c3 z;t9R=CF;_Gq%4wLp(5St$C1q?35Q2mjzSnIbx6;9N;W(BI;ROevKars)AETEcGg!+ zTC{!MfDaG*=>DGGfz(z%t4~~2jLCkU^g@Sg!bg#-A8w2m#(=(W%$X|M4hI=ee0ITvm9;$KN@^GezI!C3j}1b-i2`MF0V7o?rNR062mkm zi7{PI#1Z8I`P$iUv*idib+@1{tp0eZRfR)}imeAXJKAJkgW;tPRk3vX0JuoDBcJpBKRlahpOS>wnLtNP#A-mZ>-ab_36h*al32Ef(`JjA8$^agx$@1%Xid{~b`nj^$<`5M8IVn6R3c!Feu{8`+}w zp)6B~1S>q#yLD3A2_b@;gsa9NX6YeGT*}%{#S})CRk(yT@6L46l%Bbe>O@V3cLu__ z;Oy?*B%?Seyj=YbxLD#kvmMYorYu7IE-BIq39>CFMR?!A7l!wm4IHu0S#>{`>&92x z+_hJ>y>-t^w$-$`JFe?KwAVa2tQ{Pbz6T!jF;sOg5IFassu?m~lRbCNg#zv;ZuaVy^@tiXoMDj(#6oXxrI1 zFw&Ot+!ZrDMlv?$afMy{?=$RDW-o*!|k`KZ&;fusclDo8cvF$V|jJa>;`E1vQmtJH1pL9fYKewepn zQiKnJVMhcR23=tT-36h*!28srDC7WG;1V-ISN&^c>&`dxaW}|gW6n!xSd~3u$Mrgx zTAHvrw=yl#^r2zMk&iq4b>q)A6o?*WPooa7$D54)Ze;T6${C-bPB{B1PXIzGnR;9ioLAMLt49SA8duc^ z@2?6^$;Xp_F@0U1TQ!4e^QEZ2nNz{#R&33j^XcThO-Xi7p*N<)!Kw2za+BLNWgSN7 zb26mkNj@l=rH55<@L@?N3|)pUn7Vvlp<F3Pr6 z#-Bfbd;-XQE@!+oCFx`|i4_UGcPYJpF%;8ys=i6ZZ>%+XFV93PJ!__4UWJm*r zn}>&ts{bA~Hw+v_aTqE$VxvgjV!E=DLndp*A>(FP(^RMOLH(j?Ifr_(uEeMCh=``V zPxSa$_sw^4%&CsJ}*DoxHZ2ifCsv`e>ifZen$p~6gF~cr>*t3`Hwl>)PJc3bQhlhba zCzsdrb<0tG{=(V;&;MfXT6eB*WySev`!T)**6DML&?y>t{~C!lS=X@hP}diFovg9> z82*@CbRp?vjNUea2TS@k%Xju~nr^|da4a-EH2X8B-&qvm{!;qe*7g?Ik_w_@ zn?&yb9L&VzIXyikYZ>qoe_F&Hp$EE#G<0*T&&vZl%Q*^ z?;hXNo<9uSwck@XufwV)bj$MoKDvjDnQDa<}^?UxlO;D7ibbM?HHANcnV&zTWa zRX=rEj>~o!jtmlL5{dme^&+I(_NX%0wQY56&GR<|Z2PM^E-r3ffwxK^-w7*07p%vC zR{mUlx3dobNf66r5kyB%?`%PxAACM8HM~}O5H=&D7%yiUhXw#=zmiC_)23p%T2KV4 z7zQhv9`Ga`LD>*QR0#~zWodW-gG^iFTA*KdO?RwHnvK4w^z};F5%_Oxc>6o@b1VXO zD2LYsiziWV6-26{L~GDwxC&fwaq?sCpqKc(XZi*-P=cy{X0d2oI1nM@l~ti2V)V$^ zbJ=h%2vn2ms-AID$P*T?#)VGS8ZCJj2JctjtDFH z+4u}|t|#HAR0m|_HekS%c)*Si)}8kDotYz06y_`|-rLB)eYTIk?&z5%OhSqvb|Ulc z0#E?V^`;Br9yH|G{rFg*UHFOaq;-rwMCgs{;2s2`mv-=psY*kmwpU4)0Ut}#4??iN zL{>DeBie|S#mPI=<-wwSg8_kh{WLHu$#pcP#&wwx+#bvhVo1^^5p6<&f3<8w!Y19X z56=h!IZ-%$PCDMl4C$Qpqb+Cua}#Q!Xtar(3Uy#3oJ(bbAPg&9hPZ&vK2}e6d#YQ8 zlf=w{-=HlV>#V!Ev&IrC;?;;zF!Zq@ROl9-eR?XZ4^)m2{FkJ;B`ZIgd5PGlliCL3 zPGB*EV+8xnUPH+g@%Q*vF8l<+R~^+o3=s*xwm55$lIHD&;@~}7z4GwriABp-d{rd} z=YkxGu!tzH1BnrL00z7X}ZuSiUqV#He$-M|6WAE;^1R+4tA=gKG`fXGuBRT zQP!UoARdC&Iw3j?1kcx!&hL~lg<3P z7hU=fw8O#Gy3O^swT`L>oH*iGB2*|>Y#BJsfoPpRSJ z)b(k7PlHE*g|l2XD>zc?NBN=?`T4hPGn%BMRFNpM^hbD0S!Q^E9$0Z1zRV|*I{vkq z-k2}xbj$O-ezcVA^7!K$khDUm$BzH)Z zeg8F;%L8!F?)tX2w)*<|=4Owbfymg{53}!O1eLx3kT|!;&;o>XE5@#7Xm_!WMRQV9 zr~-Vo5|KoRj*iZkS@ON5(PYXJI4Yu>r?gWqS>%LP9WUr>B(?lMVd;UpqBz8SZh4QL z7f=2rf4eZA>6&0+7S*pbB|ZefeU21QxMhiNfj|B*Ht0^=F{99fU1CD*cYE?RZ?vaz`8%XfJ;Sm049SOK&v zpirYTi6a(d5W{h|tMH|L(wRdI3je~RQuDSOvf0h>dXVi{{j$tuFjdNqFH;;{s53@+{sF?!5pk$k5pnq`GXYWy`(?0Hy%xy83d=YXV62{*o+lG3 z=Q3t-2PgUVi#V^v_u+Rg@7s>`aT2E=+u34fyDO1n;tLL?1PguGsPIomC`VvHXwuL^ zXLfQm;OV!JmNPe0+-dv&GXVA95Zin{pWCB3LEGebo_LDLlTR83R(VSPv0?GmL6+O6 zaL7O(`Kk5F&PROKy*xP^oD8+j`Wp^8QRwVN${DNc)z?EN)k{D6XBy9W<`2Y`zFOX0 z5Si>Lfj&f%OCCEY;dHG~H`pH5v#tZ|^VODo_a*H^a=7Iy7sVTjw5(M;?~U*ti#x&6 z?IQd@_2b%WKQI^#Xpj(#{j-d)m-k1StePEx;T`lv$dgT)#j))ESTMs z_47*hy;i1gjA(bZ;r44Br#F3#iEUbtGphccUo9Db8 z-5GXln6p(N1=$d3IHc>!sNk8>OE}LBo$Hx$7|2~ojq2OO00_S2$?#_&nz7y=?`_bZ zt>WW?hPVyZYPzu$)A#araGovU(eKD8#-4)){4ND5RQ8mnTatvJY@!Y8(mjN*U;U3E8>i={@K;_e82hkrP+RMfJA5@j)=F}anm4QG)M^3bu;Ac zPwH+1R&MuQ@-C-7r{5LtgKF-_)MOiKb%mv1N4NcAi|)}WUJ4S{`Qa3ddkI$%CZE>V4pKAjGJ(-|><4*!a$-sa%cp=RGthuN}XQ(*9Z9{sz z#$oX*>Q&A6aJ6Ehw0{Z79gIclnQ9%tF>OHSm0VvfG3IIO=<6n>%^e>t-z_q}*l*=H zutY0#GdWGm6k2Tl+NI|Nr?P6aMCq*kz)#SvdbfvtNtZfa73hEe7|XeF8Ryv{x+=TJ z8}E1F>F}aA-HxJUu94uYPUGRekKO5pHCCm<2t<_9xaTxk6?IsbO7|cLblxD63y?zy zxE_aT=J}jdsP!YTs8yP1GPD>x9_vyrX%?5bdE^tloZxh|+gehZOA5v9I5IEqV-s6i zkA_|SrY3JaXdmwBRGXebbVKSHhrf2ky)hQim(Yb}-c=PtB-ZQLnXzDwR~YW`nbAD1!}_!7c>G;P@LVgxzForhKoz+&;Y5@v zZl9^;p8}Ac&b~kZJ>%siN|&fGDPB=DDoz9kCa*hMB>&uqA43;WKf{sx#3EBjA~+FS zA)co5T6d`L;hlNA8HtMz5$6B=^3D6h2bDc;*X_J7gdG66DzF ze#R;2G1x15ID6s$>wv2cEYX8>@eGB0`>rg2V?5{{5#vViINH-dk5qiZ2ub1W3r<4DLo$9C9-)D>g3Zz#p z`o3$Uw95~~zJD362T!L{qf?*I#6BHhf0DC!lYLZdH8#r3ohJ zXF;MdvZ-%-P2mIyePVE-<>db=k2~2nH#avnCf-8KD-qtb3^!fUHTjo!`Lh^`@B(3N z7QRCixA7?*6(v#4l6NI2=&8Q7l}bL&CAtc!w)5hoX9puR!(P6(=d$NX1VO2xQoZAg z>`qj4HC7$W*p3~;)cKM@KrEht?+Nqy3qORO_{Y~}U6>%lW42t=ozE>=g6<^TgtB*& z@Y0xsR4(BD^PGSK<{8qZ7f%18yC!Qi5m|cymL(z zt&gUHZ`^C?S3TXPi;izZl#&l?mcpr6{FER+g%Xx~YJ2 z2;U<*A))2nHP^**qNc0sY`Y-DmwnSsiHCOlbXpMn5;1#qzSiRD<_3S~UzY2!3Si}O zPth#?i_-=(;QaZXFVU9qn`*%UeUhL4{I1b^+D5wXYR7iZ&U!_h=B-u}-2T;lHJtyq z@(=h|1vdtmGzD4$ZzRe)&*}80C1Ykbif1eoCU>q|)?%FdwN0p@l^3eB&BDO@u4GNX zzx?5(p`=qx%AxaeVJzS8-k78%^g!F^1K*dH0!d+t@h^{d^ZHiIbH1{T8!+RJ=lriZeUoNclOoUBqV2Nx;?xV4xtG0f5mj zf?iVsUO}Vu&fH~&NdL4hkzruGie|p$d>nMG=^t@_ay##$gL#B{NXUEJpM3qYP zk%(z@T|`+CgB3S|BPdWnaRLN7;Barq!uN1U>+E1U@SN0hgW%5svHzCf%SMggZQS_V z>x^%}X>z*%qhP1+_@-gNsVo7HiifZd02EPcUC5@ah2!sgbb|fyENCF143IK>@y4E?xa87jkY`uxw)j|j_f41 zg|)SG?s=(%{@gU{H#Kw@iw3d1L0lQ=EjT@Zo!%V{vxUJWACP7XMU(8MDPcBsbur+3 zGO}F}oKkM;1svx+(i?g?UAhK(%pc*@w4Xn0ddl98#rxR=CN>n@K5v)?l3NI;-X_(( z19e2L@fE(Pd2xZ60*sa(=_>Dy@@8Ui4iFq)XK+7kSi^7jl8815y!~*>V|p07I$zBs zetR4)1_<<@71rT68&cvojO=&&4Fx6`rPn{9xUbTWfO}4YN?jA<^{4 z95cwGPu^kw)>X2Wyl4@9N9J>G7CgS=tdXs|d+J`A&VEt=pj_7P2Z$81y<-h6;9lYL zRypG&DHN}zK?TDGQED$Z>u=)6m|3n!$xeK1?n5rbH_<^s!BluEpLc)@h@fe~w?HU{ zqY4(ei2Ga56$VxCk;ffS8`P_}gi8ips(s|VtL^T~hl&hWWl@9M^rc=w)z)|eo zr@)d7xXvfz3%<^|-SS>?l9hU)vle4gC4Rk_vWN;)-X)Y!IUYyS`OpqwaU75u95MbX zTeH(9ReeZ=sm4wzDvfPQU#@pDVc9eSRbAdiYxbr`&zU_#Cv*00oqwnz1JuaDa1ocn z#_Dg^T-x&-#z0Di)#5D@zG3_&DvQ#M|3XV+vhJ^gbrnxj3J+QAp!5ZuCf=2JkTWs` zs0V!|;C9k(_FOz2JtZm|LSv~Wkk3BFTX;e)4G*{t=-*^ z=^cEc@xaoTMQ~rI170vmSlsolPZf_KLx;o{4j%o*F{?Tr8q*P!hp48=fkd{p<$!RS|Lkvv4F#Kf-wo%Bp9nzI3kv0M`7{{b*a>S>!V})3r zxh*i;zncb;o>&BYj$GFO^s6(Ccr4W?#GcAdu$W0__S~!5Y;$PLB@R=-`-mtU^)D=Ec1Yj>dEs_+6tDq4uf$)7 zj(xEM1LyP9XBW)2K+dnPoEodnxU^f3a?@W_?g2m@P2o&eOohX|RDLL$844h~NbK?` zS|PWruI|ippYi=8{jhq62#X$3YI4yQhs<+;khBGhIEfkM*wR;oG&+GSpbVhu4Alf6 zjb%`#{McIQLf+l2q==|FNR5nv4q6iJdWZFy6uKvDYD&SHhD)(r@gvL6HR#SLIXmsz z5OjH&-fXA2;=%-RQ9GcAU zI2ei6wx*8m#K~!BZldxw2)K?H#pwP;dw7k&nA zWj%C1*L%wP9{au31#;nb9cLM~CnCyrcy?%Llx+cRcjfsNk27PqE?VLJr|72v>T-R3 zy}G&@iAgz-37&fgQj$F?(bd*w?)LF|)(I9l)lItme2Qtc_bSm^eiP2H*hJ*lP29WJ>zbt5uN&m%hrZ`oI3XDNW%jS#*1_N%~^(X z^6Q1sJ2{$Spk z>uKjY%=ynoV*Z*ShDoBlouV3ZFd-%1MlG4g@G3DyOFR@ z2F27?nzrn4iDQxLuQQiuf6<{uHz|6eFae*bNpqjJmdB0>*Uupoewn=%Uss!qJieu4 zswVH2i}3QZ&-6#lr9Z)CafOJR#cnWGJeJRbZDYOr{`|x~NwVl1|IBmH7JK(8Mu`S_ zJNhp#%h3Ze$Gc;%nlu)Cw%0v3SMNkH=MQmTZRg|PKAX8d&sSWo(PgRWm(0U6QvWq* zry*uqKp}ZZDI~K~Zn`iEY>NOkck4f1Q3%(HFea%Ww{QhCdm6eG-x*P5T#e9}!cVr` z-dJWc7kGB>0dZA}*!J<(BZ}Rq`5H04)TCovfU9iGiX=1Bj2^!!O1UbY@X5lB(cs4t z?m#EL2&QFi#?QKkXlb)!`K~nNsS|J!9Rl@8;h|Cpr0FYUY?8u^Ge-^+Q%}`|2_5eg z73L{|jRtN5^>g}G_ZJvQirgQ>C=u>d9$~XCs)TB(8!n# zrkvnq$TSSaamK2(XTY6$!@%8IQ#$@<5_w@wD=wb?vQBtyv-@k4s@y8EWfwGF4UU>e zm_OtjOn?~&&E$Cw`&pOED*UopwTd83L6GldlrWU+u#nkw_5)!f#d` zflQb(D7@*(!$R+0^Lh_H&j{w3gcvH+WO&x6rO)11u-MpUBVUnzxsF!UGl?$@W^;ZY zJ%V47AKT|??M%@{3jabpm%1iw?tk&bFA*I36ddMv*MP~q28M&P%(SB`%{>79}I!d6$j+bbsK zkMBG$$^NfOxbF2&BM?q zQ2ZX*CQE#|BSj(gS+kWC<4L8S<86W;kg_tW?8c;|D|IxMsP$epvjYT8vh(Z&Y77ntbH`Ma*CJ26y`|n zs`4SH-g*yp0sY~L6zd*AD>r(O5Gk3&WR{lVRr7+TrZtvsRffe%v70}nEq6Dd=tR}I zBJ-;>sdz>Gk8Jg|tSIz8YQbs@tBot{(-KLP5yn>e+B{UvE+Y+Hk+@YDlJ0A4QDa@u z&G3#v4}Hj9Kf6Jk$J!h*o+%NT213bK*?3E(zA*~s;{wP8clPbC{kkCho$`!SQSL9W-WXpWArH1^n3 zO23mm486^hmVV?QRrlbBk;pMBt0wA!R0w+KVPX`szWzPPz!o`|b);0JqHktxE91@jj{2#@!YRz%sA*-cOTOHFMyp zF4aA}(S3&8E(=Z1B>0f3QHn{zIGvDiU_>C#A@y$fw?oU?KFwck#8gdrv4%h^8|i6g zZG>V?9B2*HL4@s{RVHjWlkH4?oIO29cn#0=s1(R$a%mn7E7Mc=7oIG|MzK(#ALn~c z8+C3D$gr9tmXal6sI+sfBy~@o9PQBm z#A7>DBwNV|NUmWnJikN6NO8#IvZl$A$5Y~Im0J(VDi{k^Qp`gX%^KBJXDw2j931>? zsmk}Fq8c=WZMBd0k>nhYjklumL_9Nd2e(&FB6D3!2LBO}?LpOeM9Em7@DPaMLHSnq z|F#`KY&Z$J|8Ic#A7an{Tt&HzF1*yxe521NWlK>n0KOk=pwHIu4HsaX#7@@z+2|HU z%kGg!)bHY_-=JK8ar46Ieh^)vB!9W8`oqNMB%j?wQk&q;(xJHL_xJ8u3B)@z6l?5Y z+VP1c=^yWPH^g-+Jtg6m`8#OV2AnCXpat#1bD{dD!>Mtnhs6Z=CmKQ1eNu_ zqrz36SE;4&s>)Jh=4YSCauo-10Pl-02$1sjTBbH6yl{Ex30Ec~gZ;e$DRjIR1(nPc zKb!;FSoZJX=7uCyG%a!z23&+iHUlP*?6>`qF;e?KB!5V(&w|*tiDi$C%_|7f5A-Wf z3S}Z2*Dx)@8Hg1q)_)s!!v@B~PK+}%``~VWxB0nlL?%NJH#qXMEOwY=(&84WIG;ap zV(k^2IGHC;3XS*9l_~uzyd_M7p+)x?_e%5S{Wv*|tAwaE-)HQkwOd&&GBXYg>p-q0 zTlx{(QL{EaMiH!hT_3sH=(|IUv3!1d8k$#zmu`47GMV9Tl92UU0!^+ZY4L!ZFBs_g zaV{9W+E~mER42)I(C;5q3m@fgWO_mwiGk^Pz8rw*uvoKp4f`>U_R6V zpBm!g9GT30loti9OwH(Aa%7@qvL`&jKm*gAmPyAs8Qc#N3<13Zc%TeTW!zI*2?xxT>4(N&+uYRH3!V zOdPn(CqJFjFSG0?jX+Pw){;+fUp3p+Z(+U@_V?I0-_FSI#%pm~RqFMkk_f24L&r^& zk)d(^r07ObHEBs%?mO{`ht-CET_SX_csR<(;l3=3I5qO}GrQBQK@>B`f+M8sX!y4p zrMp(18W`qjSevvdVS!4;l$w&rvPB^_%fy&HJP)P4$m_cYRYgH^~|b{Xg# z@aD?|-|A5;apK~a4h?iBHk-)DW14G5PUPIJEFIJ#tx#Wx(>pn)go8BDN%B}QOBm*Y z$a+P{(0^+Dh>}vlTHaw$!FKf573^RynLT;l@{SL6H*E=h;L~E%9G_I7)t3v|2AwMK z^s9dPVa4-F@sKh`ohHse(c9)$!IyiqfoupP+l}_C6EQ-yRmyLxa~~wTOqx@?HnNFV zX$2A8`QqSsx_M`O=F3cs17i`kE0>(@7_XqT zx)9ahh{|e7R0&P4+R5!whBsboF;pE<8~E>$42|@bx%RSWzi5?4kehtf?CGFWZR>!) zLyAf08zh|jIOD`YxL9Jxz3PIq7RDFzO;um?8|eLu3%I_DvKQV_F~Wf~BLvY(A;vp( zIpv362sw>8rU1$jXG5sPH(I;d)!$ROKUdVy_xPo6!XQ29&WG!o`sOl0c)nhTPEYoa z{j6V>m<>-7q)2P|9YbF=LN5CHjF;(-eswsIx{FS!boSgf z0$2RD~tq)Q+>FuVIXs85%! zvz_R8wX|0j%H%*=WX%j-WXrJC4cV>{i#=(Ms7E*vJ0Hs#)Vq<$V86SwK3>Ts zBvxC@E3h2Yko`RlS`4kK|HugoBZOY7Pi*2*w_3}6Zsk~V+OONwtfuB)NK4$@%+92| z#%|7muI+>=ziUOhLLLhQzM#Y2|Dvn^7f(g_&v$77&@TUBvj2Zoe}(7&3L0@G3nUBG R`~+qINsB9pRf`yX{a+!kCx`$5 literal 10668 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 diff --git a/docs/images/performance/lsb_radix_sort_int64_keys.png b/docs/images/performance/lsb_radix_sort_int64_keys.png index 27c23f3316abd187a5a2cd50c995410562aadd8d..30dd9864a496fb818a56c501e303eb4c9fa12e69 100644 GIT binary patch literal 11147 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 literal 10924 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
|8|VyY2K1G=BR+$N1yay<+g(w;xgA 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 diff --git a/docs/images/performance/lsb_radix_sort_int64_pairs.png b/docs/images/performance/lsb_radix_sort_int64_pairs.png index bafcd85d4298494a60831041e0b0a81d1a1b79ad..0e57653b1d7d2a2790bc0a4f169685ed21c62807 100644 GIT binary patch literal 11480 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 literal 10552 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 diff --git a/docs/images/performance/partition_if_int32_50_percent.png b/docs/images/performance/partition_if_int32_50_percent.png index 08400d4265f3418db17758454f792619e9f189be..319d9f28e4c9d230bb5c734e722959d6dbb636e7 100644 GIT binary patch literal 11552 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 literal 10724 zcmcIq1y>wRumwVJmn`lCmk=ztJHg#ug1fuB!vaATSR8^|aJS$P+%-sW4S7rW-Z}3N zymMyHY|r-e^mJFzV{-)yjqHBx-e-mVO06wun>$ zzXNU7N~#%R9(x9tWD8)$YEb(M`w>^m(hi(ZZM!~~+wP8pq-#5NrTk1txC;VRK^0$z z@9p(>s3Am#Sf_)OJDTHmyp2rUZek!fj zfI@gV0xV!6GpYuhT=PEX3>U<91EuFY=yp+W?hh=TTPNx&Xc1t@pk5B?*wzQIMsp}V zDhldNuX_G|;J*Pv$P~ zR3Im;zQ5N^s`onq*KqygxkW8AqfNW#^Xp>44yXOPhvGu53%cUw_}E&u`ohodT5%84 z2{Q{KKuHo$D!WBR!Pl331MMa9WfbcG^9P!5Vvx4_V_b*bC0=~6Ed^Td(yXQUVkVtc zG|HC;vP(@X+bx)RE2=+@LBC$!P{ zD&to6%4?2L%9*TI+yR*0n?LZ>FB?E+1;d`DLTsNomY?btM&|n`IJL~W=7@Jhh|UN) zIqMe^_-9W~52L4s4iP)4+sRUcA;&f&hUI&Qi=E+R`%Yq0p}YfFOCa3+$WP%PUE?*^ zo6}=ydmjoN@&2SPHefNSD|UjXG%lk;JupXXTix8JI=(MxAGxYD_;EIxbcRuKddE4omi*L3@z>%LeV5amCv)I24}&W%?;gMx zR#sADScZp<-hyraYm)Qu4yAG|r^(-a?DZCWpErMAYm13svu$T+bEcz9Kv_U`rB7yK zoNJwrn>!CxcA?sUt3pFgBjoS`y7Asj3{QRL$7KT|$*(d2)-x=1&1j$qq9N95fZzQ{ zf4t9yFJuY@^b_teDvE#(4nJp}yFHQG$y4Z5pl3B2BXF5O4e=pH{)mzNXI}ycaW@(-T)@)T|lN*3aie0e0GDTSm3txN|OT+HMQvtqF7%%xi*}yihyfpBz zl=pdx)tY&iQiBjT2nqrAy^usS8i8x#AxKF>P9i!Qeg?N0$Vj8iT}>XJuUKywSCCqp z2KAl*5mad=t0b9lU3B8fG%PHRU(Avzf8ph-gIw{wrKME-7yFiXY|IxES@QMR=)5%< z@p3xrH_#Xn5l~u;PPhbXJwxHT=~r*S44`+E=^B4G=0C5hxOye*qMEV)z^7KIt!FIs zJdt8*mtq*@YjhG;lC+G==}A0iLv|h*D6~a&HSzTGKJ-z6$##g^uz~n%A;P3ow1Q*e z)Ye}K?_Hg1$jCh3j`1te6^9ZBa<+@0#dCj9Nd8RY7p%t{V&nOgR1q1LdF4GfHUVNKQ&ZQDQ_&w99_pMt>(Z48F~`7&(|=Y;fo41QJ4UN`|VYS<8IlV z==#Bae1+nUf6l`0&nGBv#anp;&85A?yhS9m)djGHzclx@th@VJ^u&|yQ@*_qtv$|3 zRu16~qRsmS95V|g*<@|wFpChl+$%0e_F)?hGaUo3{HmTp{0{{|+7-*|`MKu1KhV6(`E_&zxjaj#&=POczupIP>6xysT&tfUDk){a9 z1W2{Ir;z3(6R9*4$m*Wm=9m~6$A0{1wEikl&@K9F8!Au=VNztRL*V0sJ(Vj63nL*S z04I8zjw~hlQ28XLKwjxD2uMmAJEfVUO{znlEWSU1KD+NGb5(8EbAlizlDLH;HR zVyzG+si!0hJ*1${CJM90LK)0YeE?84TJypUtUrQ*tDsuF>yDa8a-9vb ziBu5T>oN!I4X>N8g=I(c(kHRCDrcQgu(zj9;?#Rl7gxK#${ z2)I^M7Eu3m-2q)v&U+P%+8)F5#B%@J*D?DanUW=ZggG5$7t4CXkX#22=XtrEi~(9> zrfBbeM!9JQR?Tf@YE*{Q>2)1o$u^8z2}YAe#85NumzMIMPPm2gP@!)IOgi=s&IGNQ zO*g-#!Kl8N!EfQNewV3d2BcEQ!g2S=wi=(=c#t@yVpgW=`^+1- z;SfCxjPS_xec-M`r6RHNgbeTOYC6=79v>ta>K7(B-=vkeG~+>3Nd>HKx)sW0 zsVkE`fP}4<(+T8Mw+14hZn%ueHds<`YKW(I=5y^*jpalsds7q3Mor#Ds06AEjt&(1 zjL^(7V_2sXyX%=|C7X}Wf>)hg@0D$x;SH@;UbsxxArt&;xkS&&5H_pn*!cDcE^r0Q z!2sOd&Z`skZJM=-Di1ONhzSKy!LFoP#mLisq#jArUCZOz)ouvF4NGFD?}L32CQq1o zJ3~)obC6C49VDxBZ*D(7KftiVKz@UkMo_H6_N)J(msIlR!>b6367Mpa?N5s!*EOnX zg|2`5(hZ1E?|^qS-0%&o2p$Nj_(!EEFlgZDO1ml+)Y1pux94(8mFZvV}{TM*-s%7D@e*-Ttsf1&bU z5Oh7lMxJnWb^XfcS=-dqR9syAie&@xCru)^7pEUkuALhY5Ff}GwJ{ZS^brzPK_q9l z;Xk}&`Rz*JQRn#DKkvRJxOy>5*?>kj&yRZA{bht7y2;ZGd=>STVIZQ#zTZ&q6lGRjO-P&KJ^f!$hz554tE_OWP-M_zBzBNnBG{jcpOMd*L5 zH|@>|y@7>=Up&7ia5-66>_=kL+{OAF&C<0dZfg=LjI!&>0q`^K10VK&KCn^?Ott%v z$D~`eqF9Hy+6-epwkn^Eki12xBi>n#7f{g4=HXdK6X~3E!^mKc-%(=Bg0)uZZQEx; zu08Z@`q@b*AeuE=SS6c5_=)ndRpt#Np6W{J`$SmA>kcGn2tR_TyWW|{sB7X-AiWs{ zKgXK~#x-eg^VH&5jvG^$Xt#c6| zi39iIP#9z|%;56I5_v~xoPSOXgMq7hq7^+ft-2A+-r-JSP>Sr{vi5KbpoXqk?cI)cz+Y*`` zIwQNC7}y{rX{h2CauC{l@j9|uXukuooIl~Ul@uBt%YNI9awgvy8RKZy$$L;6`y>BN z7$XI00{1gq%zl+CD379RxIC@>JLY;JCEhrP~S zHt{?--0?G>XZuUx$e;Khnm;&GUs|4n$zyTyaOhALqT9uJRkgkei8ct%z zdBMjaUT6XvqpDF8N?ssyBLJ8k{4?n|kv!^OOa%*jcjQ?Se;YJC?1B%RviZfn$$BM% zWA-m{!hptOivMZZ0!I`^qLu%O#X|29CS_1*W~kqXvFpD{xT3#(GKfeS|uU~qlLp}%cZwaFE;kE&bD=^myb-kNQafNg`eb?vOD=1=5({1i~*&m zX>B=9kS*YC@g}NICsAG|v4kl#U^FDB<|-6Vua-q$DL>mF+)o>mu0lBHo>Ig^=rT^I zURKklryg!Bc^%mxZo)WU6?*ReVunM+fu@aAbsW(QCIoyp2sv4&CbAf z-JjX&Y2koJE>H0X_Z#^0qobp>H4@xB_-lx)@-;xFq52#^1Vm4nP|T$0)bQILnG3gg zK`|xGvRdXu*KF}-UJ53mntsGQsNgkBN zFP650b0%t#j+U&8tCi%NFR?j>h2R5ln7Q83FxZ&*v$m%HknX3@?}8e?LUK&Ze!@8X z@E|zCTv};q^0_Rkwm}8`r`aq4UGT`fT%`J7syZj!A)qlJF6~PQ-r(C5xZ+pUC?!t@ z#0@jHq~mn>7&IM@-!DB*-1DCZdmq3w95}Tp_76M)T@dP*l8&=C#PpmZ{(L)R$E`y8 zXM$ab+-JYaSWtm=x*}4jnZN1nyN1Jm{0ABDq4!&u1-KfN8l^bJHi_eUD&iDW6e6o^ zhd*v#28&sX{L^pCA3q_-VKOkP;QQ~rj>PfAEpBaBon{s~d zzF|QIb98GGk>&_m55WX>xkDqy_n&uYvqIjXLyX?is8**wz2|IVm!Z1zdR}K?ZhIh> zFg!fmCtF=HLXi+wC=U-3f)v{CbIolpHGEm|>b8?!2Ps0#DvuaCqslD=>)spB+gXjj z`I=(J6~fOb-?6ONbzvc{!T||SO7r87dLSHb+JuINHsox1hf+{Rbo~N(5XIN!V)jkx zDbjSzb;<+TS?~F0K08EHWy7w>0c?dhn@H= zpQ3N29H35>af=x}d9?RzYlsSZdA?e11R-CDj2rr0`!ZIqqykk$mq2&EjOY7Zo=tcl zs~}qMMRTSJGW-kdQ%U4CHh-j*kTm?%$Mq9g$Jf|aNuDsSz!G-ItAS0Av5{ANW&@MG z{>`Cu)Vy#W3qqlM9;X_y0ls@mkW+>I8Rzsnj0J`8fYFk2bzI`GF{_A{Di;Dojkke8 zSeA?$@IRKb`F%~WmkTobX)WVfXK%JyQ({wB#nI4PY?u%{kw53Xh}xNx0^CejuC?sz zEC1`Fi#|<*ZcJQtUkH=z1griD9rNZ^Oo~ii6|bUcu249x=p7|fkrkN-VNJ%)N&vyk zmOVjh0>c4^XL-pZo+CQZ1sSj_L}84d(jC9;hVi<3k~O#_&O~QV$D^?*$ciXq;Aw4^ zrX9FuqGUWP$6m>bpW+J;g^9|#6+63ie`*<0v-+Y^^z~B(*Rb8FFx!g_TPk$b_5MDP z0=W}e09r(n4dxt8iN35eD8js81e<)9>uk|uiduEP-11-T<{^MZqsN5>&}G==HqhZk zs!qyn%=vo^@~%y-uC87`+duc*l^ZF7JfPZsxN1>YM#%bzG^QG26-?$gu>W9oDuqiR zSK4-gJQ)%3>EO)E+dH0AaE)AmoLZaG_g2IIGHYE?^EUv_V436hujCZMU`)m=hYxy1 zf#gLMr`qvGq51kXV){~ukAh+lu1`qnf`10G;VZ#)T(5hN>k<|7KNM+F{y7poD*1IE z&rfGFI%C6P%Z5&xG2HJm=iZ2OYA|DrXAO;7^FeFG8(IY7)I*{hlDR69dK0UUDSzl# z1_=(^NFhy9?~Y#|&A%~^-^6K9BG@}txF(6#Cd7Skx9Y-~Hb>%UDzSlRVtf1e2YjvZ zI*W;snN1iOnabZn_hY>Fhu7ZEgc?jg^=8SEu>#kGxYhJ|}P1nd>`BwIk-I z7KLZWqYtyL${+Ls)$VQzCXy>bacht327U_$KDh*E@g&RC2DNu6#=d5@AT;zkQ@!Qf z=G)x1U(>tM&p(u8b31n9=2A60!ar~pz`aP8KzmcW)|{s!WXRB5Y=2}sJD=}JS)NbR z1l04g3~T&9?hNI}Mg^*o-REk0#B~NgKL7;dsAyn{+)yYPwrPjRL#U}OGT>G`9k7Ui|NnzN2v2(2OcXv&tn1^@b+ak|gzkPgc(rz5W z;xwgDFw@1mq}5i>%Ody*;y;U@%4r+Q(sVqn+M-rQ4mng*HQd&a@KTR4 z=R}<&cTAfh$@5r3(x;nv(qlp8pZ<*njm?~7qSkroq<G5eiNniPo5o|e3~fNg#hyUtswd%CcAv~fQlx)1c+;}v;2@u~OzETLya z5DXR__DVe5V!jX!ha_PxN3wB#N!ObZETE&$sqJK}qRxDDs8WUPyS1U|{>3|@{HLU& zo_}KP$U*9J*SL!og*m>nK#Ma@G9(GcA_vlF+`|Mgjp=74&}>HU@MCRBN_XYZ=~gbE zkJ46W_P1UwOmrN!baU)v#&$-2ua5sH^MF-0UJ~t;JfEHd9NvWs4OJFIQM=fqeb*TL z^t(GJC*JS2lZ4)t_04#@?bY8S&Wni0BQ@G=RG5ZRX)}<`tuL>y6~p!&h+gUUf(Cf~ zrqR3eF**E!R||(iz=VghX1sSP*8IVZGiQ6{{_q^(<|@7*-AVecr^zr}vUKH*@cFU& z?8V$Us#%J!^3OA+%A{MeftT9U3d?Q2Q}8RNT9| zrb;Bcz`X2Wyy>3|-G+RK8O%r>#=p*4^`J>I1HJj$`7;9Z3|nFH-1(^k4%rki$5QUg z+g6cj{PX40K|VXlXP2XA{T6=D!S>JS{0E1T6QsH>^}eTVy41g8 zB;d||H~@EL;GLISDrM#p5k+)Ew=TNbr!~K$n z=FLv&4+-}k_CiN_4l9&RT1yHuK76xBii;K@0Tuq5pFMZi@qnzfwi_Ea>-wG~Ttw%l zd6uvAw5YUvxMav(Y>LxSLyf&P+{C>fVx*Rf{lRw$NIt-(L5vifWd14quX5cZxvYMq z4~xL1qDBP1wl8uB`_;mtUrZn5e-aiqO8U4EI##~$0h1iwEM%g_& zn6*uMW_Ipmyo@Wt5VlG88)-DBlMU-;T>5p^T*E&IkAK}JS4-H_N;MGvu&~=?YXv&U zHJ`U^%-Kbmb|wjxb_YC3pnX^nr~hrk^7K2&aZ;mfn6|d!&IUiDinB|k;^_WC@R`?t zg;1rd%#~v@ zBc(dext)g|zB#F!)3ghB(^zz@BESPuubxg{o!wCxaSNiWCq$zNLP)H>OPrGLS~U}LfQ zuw}v>y6J?O8NE=|>#1Nrw}?cchma81tGON!uao_bIB)~Za1i_bp)&WpNx_6yDMNaO z)g4+6u-c!u!#Ciwai13ZAle`ptoLLo0fmEOV}rA=!p4gNFK60MI1_n|+_KF2b# zd|f5OhjQE;%D@@VOX=$u9c5CrhT4VTuW)NRtngg5?q-*&(}QfWe5J(tfNeARHJdHt zh_T;7%B8}}(S)Q7In3D>h=L!z!UuB|($4m_HT)C@S)B|#5&zO(vq3w~_BX^;yDB<| z!0O5^3~{5@dsLY547qcg+Em0VLTQz6RdMzjg<6zUpaNN1f{Tzl!A}p*ozK0I6VK3p ze6~Jz{w>}WerP$HIkSDdyl3(4<8(_$EB2sFW^PV2vl70=3&UxfR4n|CsW+=fSqw8l zPq9tDR->85WP&VWo-7o>^v-7>WxzT~;MRGAlf_)YE#62f(D100i>!4cw1KW&e?*gq zzVsZ+qBDBYHP3Y(p^$A(28~O*no7I6!pJclvI4p%W>U-MRng+7?D3WrawhIN=z`3w=mi@}))Sv#VlM|!fD?0|`)Nu)Yd6Du%0?;yEAnGiKl_px|X~oq1-)%}n z_2Mzc&fhYB;;u0G?j%ZrnoToZhpK{(FI1LCUrzgZh)#JTXkLkTMD9A^8g3J>8&G{O zB?Dow4_YkKLWJGDWC|OI`DJ{lz%eY#y6RCLs;IFMyv5U{swV%(<@FpbHdT$qZ zi_Mc>P7}h|J3^sER}|-ozu1$-uobBXp*4{1Tlq5KaUexU$VjwkfjH`T@8Fr)|7E~2 zB7&jj&-#UNU0D9lTskAcSclaRovjwOkYHyP>BKjWjVNJB*5kh6L{KI5p61htAYUBKuGL zo)zL{!l@KeUoX96_AhHMX*hI>aKc>ds0ztJ_npbo9zr8&FF0YY4cWPH#4p)+^DfE> z=1L5|^5E7U5=Ksas!Mn`y+>Qn)Bw+9tu{g-)#Ub`gEru)qONE@+KKQo>0zm*3wlNJ%mW}DmkC?CMZ5aR*)ibS@C~cZ1j{dfmC>>(nR`}w zK^=ZA!j{Ne;Td9_WaXR&jGp``dXyTf7PJc;yI*+rzk7zNuWNR^m1-pPQt0KB?jEpj zdL&AFGzVC(kw%VhFIRH-ht6|4-U7MDsHkdT|e;ggN-S+=d1_2B|7 zQ(7dT{6H+qo*(n*Ck$>?H|5hSe~fz$w2)68KGSm#O*}EmqX%-U(#AZMUW1H*%pCj~ zpCSkMI%bEdTDuu8_XyDTL>AUnw-4rxjzW-(4sbVhZ#cmbt3W#2Gfw9;KF#ty5S`x5d!?$u)OM2RoPTeme!svl`aiHPq_Uqq%NpdVvR^M~; ztt;(>dZT;Rd6+)q78Kr`V0aR{Xqc2C3BS#uf)AI3N%Ilc1~gthQLmPlK-83>D^Zz0 z*R!>Ee)Rp`@8VFkx4lLSRGoWl?8JH`zy}s}#`}IhV|T&9sb~xY`YKxZ|Lh zR!jq_-ZL-)U^@R^IZ@yd&>+r?EpT)`Zll*$T1?2JO*z0R?yqhliby_djFR$B7fWXW z%Ny%g*yko`6k8%yKlt-w)TP#YiYdy3ow&fBaY8|??uyjA^-8i)d=Xm0CBys^DLNMX z5B6hUN%=@(%xEI;uxZ*O6y@n{QsyezeR?BkYs+9}#tAqUt4w5UX(Rw!-hnH)M&yy1 zSuE6>AN{pH#$f-Aee21_WpSue<8rDEy;*>7DjW0M#{--PGA<)!EhllQ*L#15k)57x z$fOkHSbsmo<%n?4RCB00OcdntiPM0}IwV1Nd2wz9+ZeIANDO2L$AH;Wt5x{118^!i z8Yf#&-yR@J`^V$jt|;hS*Wxx0uP4?vzflU)s+6OK-`_+`*XCrutU-1lvC&SZTvh?bW zZk-YxKC@|+yB{@s9LLJP%crvE)Jv0JJPsY{xc=%&1jgX?>3G^%GCJUqGQ+e#4o}oi zzSqh|>SH}dRV*S%^|Czl>5N7yE2fpDw;3Nxn8Y?Q{z=Rw4&y*~K<7K-Y!;RKgKx74 z|7aE)Fr-O$)o*ELc?i@0>Eb793~PXK_MJKS*y$))!d6y44dm;D2!aSLDXj8BuLWb_ zOS+5#gphvg*|RIlod!`PrcO1!@~3T?%V37u98&EIbLk<9!-A?*%$z=HVkz}9KEQ;! zI8bFhtI=HBbl-8lsu?UB^RcXMvpPFwYsss(RLE41N=!U6M61$R+95yJ(^lODPLOLJOE!>~yau@}MbeGdL?ez!M+5jEp{KqW&;-si&2 zbWRDqslq;Fsz}<>#fAeNPGm|LEl6VUec~-p@#2?)`!;jq@I+A1pj$}NO0+6k;`r$H zm0v#G;+5;pyo*+kf$}!jI8C|mr(qGL1$~3%t&gxcGHZnvEL~7EUfiWZnJMNeMXe7J zmUQ{gnO|Fx-su+|B7@JZ3#69!Wb3J^TJRPTB;kBu|G2i$tq zyMGmxyN03aSKRhiGM3QRe-A$(MG`edT6f^m)39kg8ZrKuRDGAf3*?% zz!e@8m7=KV*L-%L6cm_2qPc|N6^hUxP~@m6{`D1#K41kLMqx6Sy;jvABrT^wq^d;o zO2;vfq_J^GblEGUZIMCE;KHlT{s(xJ5Y)ok1X;hL7B@nd%l~Ef|DQ(&{)PX=iNw#t UXTbpZn!vTef}aDuT{ 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 literal 10722 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 RfL+prlb2SOs**7I^nXt@0@VNj diff --git a/docs/images/performance/partition_if_int64_50_percent.png b/docs/images/performance/partition_if_int64_50_percent.png index 24f7a1cd79db2c176513821bbece2c4501518521..34332a1a522a379ab11634899374c692b6b7f463 100644 GIT binary patch literal 11733 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 literal 11019 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 I!iE9=15KEawg3PC diff --git a/docs/images/performance/partition_if_int64_5_percent.png b/docs/images/performance/partition_if_int64_5_percent.png index b7a5e33302d4dde5258f753746385393cae08cee..3cc68bc2ccb70b487e2c532af5946d7933b5e0d8 100644 GIT binary patch literal 11817 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 literal 10395 zcmcI~1yh_&ur=^5vPf_ihb#_30>L4;B)B^SOM<%v5AGH$NN{&|cXxMphrkB;7PwVk z-5+qPW^4C(W~O(hr~7oznF*4Yl|Vx#M23NZLHi^rst5xE_YwNL6AAA5O=l=B^b7D! zNJa<-raS`WULPL%478Tiu!Dhl)A{^??X}7?f`Oss|0F7;?5um7VrFiv=FmIpOzI(> z?FKIXJu7xi@Q{LSm-KiYC^1@+djdOy0A8N}EX-@S78qJW4}S z>o9qM-_>8`;8T>h@Wt2`VH9ysksXp=pcj4MI1OmL*=!oE|J(HEiP3Ba0!enCfgHP! z@VK5<&+?SDww9)O!5}>sK@X&=EeT~wWH@q|=MpN2l~c&!=oQ~`r_+!DNxFe2gaZh| zJePZnz*YO>ky6K56HQys=5GeSh?uh*Mm$zmSMg7;C>X-wVKHE!#amQdCuI|*Ls+H3 z)wSVE;n?wOe_^aZ!=^`w+Nf`i>w#y5ckUFDjR`!+nUBLM=5C3`xpom#AvHCW{^ zCY)lA^B>^#M^KGjTwJWIB3kzL_UfJ<|4Gf!%M-kesZDaNX3>(@^`_`X1}i6om@TLA zu*Q#(#_p?SVPaxpfB&Z{vKQGfNcg}m0ey8MB6VdB8v2R;GLBW6uPErss{Zk7x!xy8 zFSB2Z7sSeBYGpO)HJrl5Cy@m_PX-RVuY5n_x@<6>8B}MHrr80|)Y3Yw+YI+*4j%M| zK?0CR8ctSMR!&Y&;|hLDhJyhpaA=TFTx|S;aGIIO=tsOAJeeB z_J#GH)dh>uM*y2plFW|Z^{PN<1=;_vU@AqsY3q0WaoW6mE3&#rqhyXzKdmYHwJ0oz zn7L?dwFszpCGex!BX9HL-CWz4UdwZ{GeR`(@1h2T3v8sh)<-{fAP%-az7p$b{5ww< zTr+~sN*Kdy|6(EZ+h|JtU0h}l8AP1FodzYB&$E8pv$BX>Cx&!_dk#wJE-9;Y6%|C#4*d273NG`su5H30E? z3vQ$rF%F&PCkzsfKa8{*j*NzuPLXVXn(7s0jRa2k1{gR~&T5K!JSshbF9rJS|A|O& zz$TmH`{ChXp|p8LGR#84XENu{nLVLX9chK6jb;q|^kN?JF`L+cpHfiG8-+ln0*=cY zE2kHaEvmpi+;85g8p9z}a#S+QlAapE zhPJ{5WyqnB?M(QTBDziGkPnI!GFdwJ2+j?<3P{ZinJ9*XeX8+tQp+ya9BAD^_p?$6 z27oN;b&(nfH;JoISn;ijNAPVg;tg@BJ%d4?kS?JaL(PwDc<9$W>G6o_{lScZQrt1w*FLfdJQiz{bH9h5m>=5mS30#H! zuzeDCcNW`nNMABK5?bbN`A|z$A;gCM#-T)J_%YhLC;sLplUd-&ZWG;oQ^ju6CS_BJ zAM8E67o1@}`nh%hnT_w^!);b8fke!ZBco-031}%kQnjlpa}G2#G8sAefhA^jF&rKI zegqa4<4n$L+0EbB?A+Y$98H#LnZM%{Vx^p{APIu=XS{yf=>l9GQpk?8C^yX`cFqOR2Fws;$>l-VhEa+M2NLXfVuV zERKmb;&T&Q$uv7_^%8ga4%g~2P0mZG<1TkH1X(J^Vzt?CmoW%I4H_0hGSrKZJ?*2~ zv@pULQfNK8Qoa=fX)S^nJ&Uwj7MB9SGY)K}!l1CTl=a=`C!qKfI)72-?uKI?E4{LK zqT3JPNXyzFLgfrw`pZg-feTw_A}WS;?IpMb(3a4tDJ#lBz$svUH!;~i zn#z0z#-{u^3;*0F=$fonv z40ptFe139yNyI1k5ycL1KGk&V@A#ZdCW{Q5*lP%I!?b48;oub6C*3Qw^(Z^g>+{sF zwjV|g5SiW_YyOU;YKTu3j=m_`mLIkUY!m_D2>oy^hF=Qo%bUba8y^HerMEj-G}j0i$4cm?G% zp|uV_6cDp+liOWIneO>KV|4#8G#W+_f=$QbiiRx)R>R?5fL{I!occBGZCrcSZRb65+d|X1gzWaGd1I|GlisnTVIawoz@Bf?AO`WJwwnR;i9G zZ43YF={hGWx*MIH809s7fMI{rWC?FFmd}Vq`x11rt9A|BE7-p0-q_exn_bU~GKgr) zezs2XOMq|p#13$?QcJWWGeFFE^8>7=ReOsw^ozGzAm;8P{ejJt@Wg&*!&_{v&Vti`gQy;-XDN< z4JN2>7_e~%zG~~_I+QFNfca1-&8fACp0zw6>jmx&nfNl59U1ag&u;S#Ar3Y&slV|l z#~9gj{RE|8y{xE-QNsid#w@~%PGDf2;AVg#$RJOcb>wlwSL0!oZZj!1v&+bUUl}gj z!$5mo!DK*DPKYs2{^0kV%MiL;M5d;b`g4*?l-{oI@xX2@U;eZKD90FAfj3g)ATeqTRj=#Y zms1$$@2}TmHHPpZ{{?44mmA;>kOpZ{YT*OUF0e36kVN;74m7m4@d{gt3??I5NM4-&2#~piD?k=SSpU8XxxGEc%|&Y!9iD7S9=)7^N7&U zTQ%fwSz>F`{fiQJz>>6@g({N`EbdFU=j22%vzp1_AFeQ&QQn(5lqQ(R9C`V5}pIM;K5D z;)V2RB`}7fvCt!UgE7+j&NCueOEOCy{Tkl#8aa@dybT$?Q>7>1I#F;u7tvcjn!2BT8Z!@aLoY>jLb!# zMy*_tj6{Edoi<4?K6dk*LM1u)AfSjn=(R5@R-3Or0uem;8E0USK7hS|B3J0Ib;+2} zx)DOujc0){NORKhEmZRxU-1Vz z8aF#c0I2X2!BW2Ii zG_nt7z$M1+dr28kvTFOk>z8)>%trvm!x<(FrDc3ls7ds)z(TN zjx7%K^+|r67h<7+J&;6KJ#B$*L_Ery?t1QesqxTBc%~K>7RJZNS5{=n_SDK}4r)1w z(c$LboqA3BTU$m5S|IQ| zP(I@Hu$3ZVAJP-Ao5dtc@~}6aIkmsvx!xI|-!L|8E9b?(MSUx(bV|%GczB=BQ&kX- zavM*O^a0h5LV*49r!yihC#wc?LsTZKPTa^^165*=c8+pP(&Dw(L!c{;;y(*nFx+EIqgTQ}rHMf&ksRh&z+F%7b;}eQVmFG+l zzB$GdL& zVW};Fu<6)=ngdCUn@KfJ$!l^!4&*9w2&&G%E(pS`?-+|eD-i63W~fk!k||z=N&YAB zos*9GRk1&mgkWCG8CHlK7F{ImIa+&1W3kX2U0-RvmrQZl@u?~esd3>ig14FyDV4xz z!pkYde*kDgE#4^5t4slkK4(Tn$!`WCSz$$89+J?XcJo7^SrrtU2uOK@22SqtP@7vy z)He*^>)@o-V7_xf0|*Qt8OUdSk-Fk)mD|U9W%sx3{iy)DO2nkkBM_*M&%VvnGlGZ*0=By!QvpR=t*>a7sXFeX~S>9DuhLAlo!FI9;gb zcRi5iNGkT@p;|Az}#bbj$DtBnH40w3huxd6LXRK8Bxe+O&=z4D>|n3NS?a(Ek5eszBM+zXTlqHFPh>0 zn2p+ZRxRb7@kVLOSwWInVzT=ku7%*&b6c_UErCyA5@<^OV@AVtQV-E1vM2uFf}k}n8Gx9|cip@!grR40o+FzYegY0Y+Z@=d^CeJ&b{ z>+)#fln){la?yBMxSYF2r98m|TP@TULi^o@ayTI_$Ny7RNIsczJjh7CdhI&YvJ=3-{-v=w#|7ij!T_JrGA(_+`uuHF_xY z!6E@#Q1&$KDfk|om`S*8vo>iadmjxFbslu|O03)pF56&l67PS}V<#OcIq;7R1+}Y? zbN_djumo9j8sUG;h?`FMkToi^-k8L60UUDz$NX_a9z{(k$vKWs`48@|GtK0*NJyy^Ua#y`~$13&M zv9O{zyzY>2rbVvi@}r}bJXBgjYi%c5mR8Gdj1QAC4w~zfFXr;|))vwvH1!fZ2j+Ry z9P*2km9zSa@IG$qJwfj8F3DWh%Tja8$MlgUH4M+h4;E$ADxm3wyQ`8uh01cLJb=1` z-UUl86oAJaBmdv*bEw=Z3*ivQMgEWH<0^GV95*mA> za?NX)0#PY(v$Ad^Jr%~(MtCHRKssqWu2LdMuyb1=f(W!Rd`}*L7{k(@TjOS&|j4kPOLemIsO1PJXwr$i8zA=8%B~Hs;Ia z7WMVDWUMqING$rj=}sNfV_^);?lm8U58z}Nk)!x6`+*B&guv%SWvebX*InyGe z$L{;?h>zEH(og73U{bSzzUUyasf7TAw`ZEO6rPU`>v`SHRSSEU?LLT%qwg^t)bgbM zC|$7_k+Ll+g}E7b)SGZInNe5I?6(Rie4YL>`ao86f@C*+F+daHcAIo{rz1DRN#o3+ zNT28={WHn`X+*JvEe~bX(E?vWH_?FuZF4it6~Dle(5UA~?yPR{V<@t>%q*z)DX3nx zpgUxv~4lJ9kr!95G_>JR?yxa9oNd-Jrh zt>fb%d#4nf`SAlCJ?t^2@__YsF$2cR@JE6f0a2i3N>x>VpKYQ`u#$!J zjnig3lxq9+x9CfpR64F~l(tG1LTh9o(Ir$ zsgl)CWKdJfNS<^SD54oX!ReDj={yD$`3LwiU@XtbPiZNOMSlR+Lb!=s`~XTR({>1!??X zGz)KP)M*7wi^B9Jsx~x_3VXIX2eB3=9feJWHJuW2_-x+>Oy=?Mmonr~k z4oCW&HD9SqK`n8ibgKbju3z2OfJ%OqZpq*7OL%Ap(oyLz1@{fi!D;*aQaZPKNjsF# zPLYqK-9M)e@QI3VVJCm44fJs@XvPyeAs}m~VCs;Iivox{Ew~VN0{4Dms@Po?x1Qgs zktN^%`$zLw^R)TLeY7vr^J+Z6^XW07b+fDg1VJEzk0WomF|d&wY*V2tlc@mm3n?9? z!_K^H#K8-GnrN*1?6QNRNo<%I`}T`w_+m`)+4*9%GN(m2(NOLlY!4ZeT4ZNQ`ZQ{9 z1lGmA$ zXEW0a?Vg}pw*YX)IH?4r-gPbE@1KBz-tN9l$aQsjTwHrMnNpK=O-uWO zd9gRQqIn!XlME&>w4}zkOiOg!p+o*JORkIXZ^o=9nqR4Gm*uoopbzh#4$IfJ`TdEI zRdPOkaq_S?t{dUGXKGgirz$%oTMdCLj_Cxh?PT^Te4Nh?f|8!QIRbs_wrJR0PzX~Vg86n-KB9l|I z6}|aAV;RffhIZW<1iViw55{4wmE&zn53CSfka1Ycj!Gz^1RdaD0Kpql1Lj;)Yrth( z#%0tT6#OslD6C;@go7EK^v43Ww$^pOxKbCBU!Y{#vE{qYJTqI{3i6S2echQUf6phS zcjWL|2S#{2G_aF>4ErH+VUdOt-@eI(dY-SucwSnThJT7cM78-WShhJBszYwtfA#QK~ z*yYi8>ueAF1%D$ir3`McKS3i9`(!u4U>y;0veGXj1I^})<@ZXE>ifq(Ly%&;6A#ip_8v7veW1SY6J!22sdbe9 zx;^w53`Q-ouYy1JF!IY;SnX8~g0g0>!+Z0-9NU_xHl9n-U&b?+(*dcdjL_l{Hzq zLTHR_)B?dR0@Zg=n~7N7MQoSwJ`-y?jdwvk!-@S}OKT@OkTr=ZlzV4nd z`L)Ra$C#pMT5iUsV#pqb_Wyl+e@&D5=W!G9=^(|ETjtJ6@$s zUM{9iDDVDma!Fs|uLJx7NGvJihsE zK_W{=FbVmF9ac9rrMTw?GpNRIzvJe<%C#iokTXzU(v`sFR#r6wMOU3j>9Bb6r0<@` zb53t&E$J|Gb$!ek37?`AF>ov24+lBYnv&GdpfvV|J$e~Sp9{M0_@`pyJq93TG%ri5 z{1MbMP)2LYdhfQoW_>ynPB_U^MGaK@GLPfu;_rL6X&Vms34fVY`F-du#}3glUK9Gl z#o>ivXuEeKmqe{f8~a@wA?v7E^%jpqc1@H|dqebAI1ca~P-8^VKEm74hBD}Jl%M|H^d%@%h`#TMW9w!Z?LAqOFNmz*u8PfgL)99(+EK!vH-YINvNg(4F zro$_7W0WYE>8`W$R>4SBTnc_>YV|QE$#Q^|m$_nF$FFHn&f?eq7MWUG(@m-ARlxP8 zt}jyTYjYFdl@03u5P@7+k_(*}!!L*H(5=T?V4EK^rC{=#S5p52Y=8m?WeR8baWgBn z{rZ*Y9uS1V_BZ}+y!Ub}?FU{nXt+u{*QBIH?LwYDlYikZFQn4yGMV@Vo6B0yU1M*(Uy)E`4!US(&H3v z)fY(u{vk1`V>It-Ddcxl{b`5Fz(gN3{jc_86RVaTj)s3#|A9XUU2{s6E`)q}A<>N` zR?uUnc;ZN`o5X>8xeOBW(^*9+fW5~_sZ*XNS|zN&TNVXQ7S?}Jr|n4TWlcB=|)yJ&vA7 zu7u%4Gwpvij~h7N@Sm0S&}iK~Xh8hT<%|8LIqt91 zjW>t`rt<2(0K)0oy|0)A3tbtY~Ap_|N`=&!YzeBx;<kMbhk@IlF{8A9qQX&o z7~IiOod33}c=>CHCE#u>*Tg<9Ag{KuBe1M;8r*8II}j1v{IA=0yb|vMB1_NJH@c%? zj_%E+OdED@a+84tWfw`M^|}nr^xWPDS)O&9EC=|=q!(Hh*w`PkI0*Z(Tn$(=xe_Ub zE+^7i9CIkyQ|yVkj?g2s!Sd^*^t4vk)iY+zUsqc!lHi~#wQ8!X?2Y4o7!c5_Oiv3C zM9nt87_227m%};~dyjTksaWhnD4!&TX_b=m3HMm?&VqTECr>FX-}FCR(P(0v2!Qlm zun~yk`kvcCRYCPTS393g-&4uM^o20!a(G=1r4o6;H$}#S+c;0o-o@zPsm!+D>WF4$ ze>dR=CY(_B*@PecE5WouDW3uCt@&aAxLAc{!#BD(d1Z*PpW{K#56l& z#T2yS0bxt639||pyxjjb2yP(7u@c!QDZJCug76=eeo^6a&`?Y6tqU2> zrHBXL`YEn#^7iHy;0UA)`>IjrDWNk*l`HOrcz3VVQw7^?l@oo}hY7RUI98wEzK!v( z&E|^Ba7PAad~yOwVpV3D&Kd|^(j{bKB85!nt?ZBYnfc*pdQ>`py$itk=fhAjLZ)fk zNNE%`r7$bpD!I{x7#&gw2954yuy(H|anNX2T-KSYDNY)PvK3TdmL`X83@nsP!bUkn zVc~!Uk(og6_Vc36mp+~7IlwqV}$V8-Hy!wDK zYW9Q6^#~yx)9{!tQQ->(?|Bwx{EWEHcvcq*Wsrhmv)Op9Ic^V-%}U_mPukBkL&C277fo!C1pqD z3y|ziFC=npStuu==+RW!6;J1>E^l8+LVH_CA%-K1r8En!ze>BH$Dk|f9nbTe?&vSo zmBSqc3wTNelD(-cjrW01Ak|S@0L|Oz{6T%I(fjsdm@|fS2m7@4SplV0$|Fq*%j}{o9Q~=@Zz*QVh zi}3j}$eXI%fl*|KwI;12u3>7!)1})k0ExbJQpen4%-QN7Eqd^dbn|y?0|y=a%%6Hw zBfAj9;L$2Kq}IcyYUFQF&JtR(KBpyM`{#qZyZ;B7s9+{>nf0b#BQ6Fv^sZH3REF>? zOgRJF?7Ig+)vw2RqOwpVvdwzF2lRZ9t_!`fb$%gs3=P}R5{2!xA52U~|9YDuFdm9% uO>PRjuZXqKbpZ^b{>rQ(B diff --git a/docs/images/performance/reduce_by_key_fp32_len_500.png b/docs/images/performance/reduce_by_key_fp32_len_500.png index 56f7860573db6f0e7195d37fe42efec82d55d971..5043a840eeabdc52473a4ab8cb1c934e6c9669e5 100644 GIT binary patch literal 11504 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ɪ= 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 literal 10544 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 I{1W`X09bq&8~^|S literal 10277 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 RB@+zvk(E@Es1Y*>`5%(%uSx&_ diff --git a/docs/images/performance/reduce_by_key_fp64_len_500.png b/docs/images/performance/reduce_by_key_fp64_len_500.png index 7c600f3338af8b98fd4fa13c3ac5a86dc99705da..69f64229d6b7460d27abfaae6371fca825278f33 100644 GIT binary patch literal 11074 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 literal 10810 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 P0sfMeRFZ&-83q48C+YZy diff --git a/docs/images/performance/rle_int32_len_5.png b/docs/images/performance/rle_int32_len_5.png index 59e5a8c6b9c1da673090250eb6ce2d08824b12c5..dbadb5e1ddd69146e3c65f9598d37c81ba2a3ed8 100644 GIT binary patch literal 11551 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 Cuj_aK literal 10672 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 U&v%3!xrCFI{7(WRX7u_00Mb(2$N&HU diff --git a/docs/images/performance/rle_int32_len_500.png b/docs/images/performance/rle_int32_len_500.png index 2334b919f4827acdd61eda40f15e455883045a64..ec886fa6d02c839f3aa21b1368b06d8705f9f1b5 100644 GIT binary patch literal 11396 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 aXWvg-5;8-%k}iO)gFZ_rh*yak1^h34j(NQR literal 11120 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 diff --git a/docs/images/performance/scan_int64.png b/docs/images/performance/scan_int64.png index 1b33e3a79b524c61ae4247f48a4df183c9f25835..5512241028b14013e5e7ff639118697dd6f8a550 100644 GIT binary patch literal 11359 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 H7N7q&_w9m1 literal 10591 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
0d*SF6i<@26ax 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 ZA6(;JzugnQdY!rl@)tn zl&Bl5CYcR=ADL0fkmt^`X>%t>++1?M4(DtxVJv}R!PqWmB3%#L0?c>`YO-H+{Hpmo z=}Mu)5{N*sWZ)|n>;t?%U2ZsNI`GWt;S7lDIH8iD*_*9cltqQcXIS5lf7N4^%> zH!v)OzJpf&G=lx17g-eRlclw+vtG6sJzM0asL!`g)e3F=V@A6Zl3rN1!BELYw@{~Pi1r`nu^-9?ZZN6bL%DQUZd z_QLfif2rF}7CT4Bi?g%Dt?hwmia*^*A#~90#=*)02#OV1Bgtb3H0q!mJ>mk@9nZGQ z8AWz^sDR&b)C>F(r52X+7xoX!^;UKCW8=C9QT7<9I1LmIQbF}ibJvZ(>>}d`p?#+~ zQ}<@_QXI~snl>NznZT_j6%I|8)tYRDgjr@*f$!2FNt{*@R1)^n0+Ptk1<`NxR2*cf zsKm<1Yz3~P;P_;)%y}w|Oh;EuSAKv80I=zf2aficE)1IV=bmF|07OJOQ~-VHzAGe|5iG}%NR(-4sh3{5k&>-$ zYUgW;=7I)5V^9NxP>egmK=%_jK@Ylc`S800(068lX@#mIrGmJ_|C;*xfLxXx-_F@e ze71Y%0_N-PeD%{LwktJ{nQD8w*R38llmxIR7W*Yz)^2NSYv)R>ZeHvoYniI9@R2^R z9t|=Wd+)$#F-zha;{y~0TcYIA&&La#E)z(3;`TC+9{6MC+ zHweNL7BEX>5!}0SXrhYeTv}TCd5(M1cqDS`8eOlgyP>N>MzOZ84+DVh6D+?yR8RGJ z6KQz*V}Lo2upMw@1`v0^2=BMEX#i5P|57WNpNo0CoLm|15gc2dTkF4;tM?amTi)?DVqUAG}#3TB7dt5U;kF=fgM~!Ak>8=eTXi$a9SguuV{|!X4w1nRc?{-02O6>I$hRmozYa1 z?WOl8Ch0C&s#zt(JvM@MjZE=?iB$B0R+>~;749-_*)^3ms|geO78i`Bg`lbi%96|# z{03vm96`Niw)DmeCoBLmb9i_-ZJWdTFL|;WAt39z4!ma(+QdzHpOe$ z(wxYF*MUPb{&Cljmev=1XaQcwb7c)yzjJo71YGxbM}D|PuQc^e)FK;F2sfoI%d>?E z_U?K8#3GMDOJ?BMLZ=3IUY6A)L8v3$w|YZw4u1at(6rJGniUrGcpYSWhEQETvX0?$ z0_Pf@;YI&hjB9v-RWmZsOiup`{OU%2r`G!L>SqF)_M`oB#ox9*K0c0)@#wTG3yX`P zMSMs|NZ-hUsU%;k(uv=mt6?GpKMTJmT>M=aqX6FB9?j0p=Km#d-XAAE_K#eTa{EX` zTNgql-b(kOIZF`>VxCSG^Df9a5Ep?yOJWd(PxSAzq=UgPuf*MjF&w( z@ZB4gSwrjL0hjTMFQ8JZrOB#$hY?l5T<=djH5MlsJVOZlm~>&|7JMMfqV%dGd55~n z9Ea+!aaaj-`E5jh5@7+~|6IlODmtXof_R_Sydc#YKYWK=SevqH8cznSdDrDs-}#a! zF`tuuTn=*|Jz*V7`+4fbsx|Ef1Gt@_lPQ6izUEVDFh>?uCb)5rDA_D5IpS#zxI>|~ zXXeRkw%U%ErTv{^MH%iY*dbUU_b+wT5_YnNREyEhi!ku`X-z7Ex@YJ^hkt?^`cTIP(1^)u!2rETOpebJ&IIyJi*%Fwk{>Jbf#N1b8$< zXTpD;<&VoXJC+%m5kLDVe{N5gGRMuH7QbHdy7S8n03bqB6T3+Jp|jHB`TKW^Ne6!} z_fjp6Srylhs-k`bz1%<(YUmVy53NP02o3Fsbtp(a&0CUTo>*B&PvSszF#^l}gxuGE z!1?3rS+zLDZ8K($R1gw15&$4vchTdheLbN$Z4Qp-p7+dPJVU(=4Tt0}0Bk8D278?d z2w?%@!-jI;r2y^R1b}t+%k)9 z6q3JJ33^kXk)MJCvPBaO0od%g4P{wV)4-{@(d(7=B2vBLK~G^*mWqHlJtX#Tp35%y z=sHLgtU18@tBwj~;50Xu@MS?)$D^!y+P1BE)f*hP#h*!Shi#IG()%n!OK-wI_-mDH z<>}Sl&h`Ox<`sz4b(o!etvp{T!TF(GK`KQr@%|4OTu{pmisE@?N8e@x7_&(Gy@7NR zB#g`GkwZ=vYc^V(cc5$o?6B76dN8@x?#XG44B#jD?M|#z#Fxl-P20hNil$E_J)__5 zadvr`P`EffJ$<$c4u!n$mjZOtZnm;X<{9xW2&vk|mTgR{Bl=ZOa^xN7pCCz~_j?dM)D6JZAsNNLOTv)W z=F`9Jv2A+(R1A6Vr1X0afVc1GI&UGgbbo)pzD`ao*Z3dP!geWr5pKP{H0!+W3ApZC z{qQ+Q*yp}dmD2AV(#mZ$Db6e$!O+=-5F{FIG;)z8=pNMx#ZtDZw_Db!MTy*CH%_J; zuP3SvHLpjS8dSeaJcOWp4t>ANR5k-##NVz;N+_Q$`^*Yktsr{~oL0as(jUkYdk51c zOF<04HExYjG0(k+5J*0?ii@IeMS>n>{-3`D$WNraVpsS>RFr0kdTL@r{q;=2(=}7n zj~{ttOdVZ;-ZoWVw8Qh2lv8JbEaTAq+r%Pl9YDae`iXF&l?Sf-Xk}<3Kn1PeXc=Zz z-#p|YMz1V}K63c$524HpdhxcVs0pIxX+ybs_aEmJJ(#Lsq&1V^25%j$__+*g2h4TJ zHDrKs{gr-d&s0I!p(BE9M;hM@0&u!|SJ8TXq>5Ni;ZvF2w-mG^gmElb06h^_tA+J; zK@C2O>vC+7t~D=aMi`zlw|oJx`wZ_c`wOlq8h~TkYnZiMjP=0L#LecVky&q$Ny`lS zUlOS3&$_h5`vmGm22_>%TBDO7F=W)WF`Ele%q}{3N7ah?OqN*;0O&`7b}jj`)d|yXm^z=)=BAAp5y&6#)eu|$Pp+D$rJe93lxsc`<1$4=X z-kqOt6_$P}A!9C&*1^Dn21=yA3Y=2)a4VuD5JUbk|0^f?Ek-c3@AriN#Q<)pdS|2W z2~41M$i(L^(e@&iwi^d2yVs2UOP#bu-}*F25S$OgvZQW9Z=o{M13X&?2+SKt(y=%l*f|6=l|kIw<%U_HQB%FWFoN)Ium4%;lgQKD-g?08TsD*fy0q+?%2B`o zC>Pu)J}8YByWGsn=zh2lP~iOGw+!8~bw|8H%Z`3Y!P%woda05BMgp&YtN&hHY_z$b z93CFtpRG!Mm%o4#gLALSv9z(TyiWMcXA;sAP&mtI5l^P)06+%xDKe_bDTWFbyzf}+?~V7=@8Ml%@vaDP86ZtCLaXP`4k zqVV!To4ok%k6-8Mj-Y%0*I6SW=k5M7^^(aP5g#aZdxQ^9?|Q_rt7tIeGJXy0v~HU~@Xu`&kn#igaYEA$)Z! z)md%wr~ptjkP`|F&TiMs2m;w?0aCk35}PGd*?ObkLjLlZ2$<*M!fd6<=Hn-@VHD~@Mk-zuh%<*NlBex5>ne%GPxd|Tqwe^m3*{U2YUiXTH_<*{tpRMUT zLsQEqM`1)wkq=iVj($5uV$ZDw1vFYmt4x2MRJb)0_MK)spDv8NLLR`dBcf3I_c)$n zL;}R%HoF!Nl2}x^S{k125N*RhI~}vrk@n)iqp#oAV9>N2NEyp)A(bu_eNsq4?*bD+t#R=2 z5C7J$o{t0(+_vf4{DW?;JcIA_A0}Rw&^BgLI+K^r*1p7H)K47nrk3;>r5F9(N`3E} zbt&?R{`=`og5I4?90o^296^z;4d=^Vzx#}%F*K6xU%zq11p;-5ptb(~Byx$EPl@jrc6VyPSjOnP!X5xn%`e%T-i>F+3Em zGy;L0LqiM@%5z4<=ps*>!q=Vq3(ap8Zs5!i3sJlSl_A?85k zAA;w{=1IEnmd7K13b-|Dyl@P}K1iD)WW|KZdkf{dBmd1gojbm{5qIILv|jp_+wSQ& z7M%m!45xTWiGRT)X4r)_+2?C_8GqEP+#eg}ZuvC$Z4VSvT;;8;h9!6nr}gB~>i!oR z%ofz#BE`V&5={L|3i)VfUguM=i6y*DY%h*dm_p@jYthPUI)HNMB50k5BHjJi~MicbqrC8Prr*dUh)dS?pGo>cA0 zKZ~OT{h2qL+s&0;Sr-&>>bOa)VEAS!!Ia?dmI?3B-i#02)lN``U)FwS6I~ICL_n?$ zj^6IAJV(T@@TW`OfY}#sXz!yTPd!-v;(;Zo%9N&51}$5yn4LXu^^etBt*Q=dwsc@$ zEX*JJsv$1fLrPpU%6K~{3r8s8czKA=u_S!ZR7P36TF0BL_Fjihz%&$S@I0gbKod3n zfxg$D3R^tRG9nNxC((&`zU?9i*VwR04)`+E|5%_tg2De!vdnoq{^ zX5Rs@Ic_->ey~g5`MJ5>67G?T!R+q7PK?v~PE&7FpKBaN+r%b-X<$QhGsvh>JFfReBfEb^TyiT%ILJ;W;4C?);V?I+dRjReie`D<|<-^c+o{yBo^}r9Qm% zVD5^AesvG^1*|#Eq;g<*6Sn(>%}w1$66Ny;S*$2?T)!`gUuM(+;_!Knx^pW(?gc!x zEYxB;&*g53{4d-u_mg5ITbt^Wi9R7^J}&FKTi^dLksBzz`t;ORd%Fn@5vi$Y*`KyD zi#oKy<)-g%=E~G>#hg!-jImX>#agdx<8@U3i>$wN=ESpvJRS5;xDX>@i-cvipg>EF z>Q^;J>s+4Eex{zH|5cZBN$lXP4MBU8Xz#r9lERlVa}EAz|62 zDh_ULFcDMCC|LZD;oN1k*t2c0uXOgGYHdH+EwJd#P))~uM)hbvF8AVTyW3F`$8BRk zw722SU@ZtY2{K9otclZ$KS4p#^}8Kl_l>RxeF?{nuGgh~xAxvoBEXI41ck9g#xlNh zhJphX&-iNOQSUQ@ejNW|zIaDVbFNZK4E~MOEb~#E?w6tWprS_mI{pek&^r2IJ0*?= z=pT<}63(YoTayj7VR0Gr#PijDqL>&Rq!{pKh;|vO)65z61p_8W?M7gZGCx~$bo z1={%&DvF4T5ZoF0vSjrM3kz%DnC942oiGKJl1I^V_jlbQ27|{^RSJj@ekpAA&34dSv0StFb<4*FZTVv3afy6dPwz{$kw$1iTIzKE^=jX? zj7lhWZz!p~Mp!i`cgiGnleKMAD~t+d)e0IKa9djwTAxOrT7#fI-Di3H^JfY_NJOI=Cx*YCw z{ShkpoGa>i4gsow=}JVnKnyRL2c8T|cz@7HIp4F@!%5?9AVgkPCEx#G_m4!^a6!J3 ziQjXj=jfVWe9>}riB=v*ERL-Y{<*h6$+Pe1w;#{Q!>Ej~!*mFB+8QjRDV-NOF?6V1 zFL~^!)3(_mCBG8b#Nmk*i{40TeD!=MOZYWH5FhiYz%Mc;Ehk+2S~GM-xtBi~7pRnl zO+Kr`p`ntu>(I8+80JR3`>+^AM4){#=79+|H>$hEW#+tb?Q_b)ICDy6fify z!EOyAAK-w)hPMM^rRsTCC$n6+hk!is$XzN7^(%;M$bKE@pTkSwD%O0%E+PeBtKA;N zAc!VzCiO}=Owh(A)OeG@wMC%ig?_;lcgtHS0Z1}`^%|}U-Y@=&iH4W&RFE9ZL4#U? zwR`gp&M{!rF+HJ~^46KGQ)QSVUW&*rtF~igp;q z?PpHu9LfGK35$Q@%e?;8MRoQ@PpUwRqcFG1C2T|-%h3CX&N_-ELXt=vuU8yBU!0Og zGW3LhOW))0c;leHDVfN}{DixfEUSe$Mur}QmuyqU#z`}!T*|NTD%%Oq%wDjhj} z_n-K+ClCS+N3rQB|2;{g{P&a#pk1wxgE-6ztx}_o+X*S&2L_f@mwR)@44Dp6qDl*! z;>c7oUSu5K<^K};sOiwRzr?^mNQKcwd0dBVD-l%y!956V8YM0R_1UJn`gA2`kX@6X zP+`$>9k-DLObij4qx_ObXZ!&*wMwRy#is(CqNdmg)Z}#$=yx{NwZq5nHF;_U`x38Nnsn_M z9rb2@X*$?xdSqro54x%ujHLGlbeF+CxI`V&CTz?prC&HwqZevEm%+eOlRaVb&) zFT$&zI*6mgrpkq0D)K@J2>P(UiP?o~J!#EL68e7rV~lrGo`ZnM7N}<%2SH0%r(%%U zD+r&I++T4sk~72z8#-nEzbVNM|1zg1KLN{#6D_1!n|`TVHPP0nmnGDaRN8ZPR1Q`Q zDnqrapN3%Cgg$*lbGa5>ioTP3Z$j9)n_f?g5F`6iP$**Z6fMdyzx!BD_G&Y*#D~m6 zo}=v&EuTEviLfwjlvUxwyiTqjBcJqVkh_IuiDyn^fD2ucNL>Q27uru~1`y(Ey4(L> zC8EMrB;i?z-5Zb2Blj6?5H^Xm3RSr&E2}bR7Am;z^{@E0B!ZGap8wNUNp^F@!b%r6 zp5G5SqjZQGf`IZ2)mWSYdx3D?HmJa6RGlX%FaXYwySWlY>t{FB-3VEhLByy39@qY_ z_&-i<`_&xE=oX3za2yH<431Z4imNnb6$n+3%({sYhMGh|_B9vz<1kPokYN-pOs-=T z5B!|aL>G(WMp>RABL|y zywx~5kTaPLEU;4@6-qAkD3zJ49+o{UNL(JFAa$A86{00CQY=Emmm3&O|``yfzcF{H~&tL$|nbuT)gkMpH|!IDLA!fW$qRY8;np2 zAx20~nel#6<1jg1v{|@JYZ(}bfj>mCHFRxIuxr~SzFm|hZNqG;UB(g~pBBmvn6c;qhs}@)@+WiqYyRohGengRs!eW8Pu}U1d zLZzz>x8^T_?Rp8}F1bBgB}`uvuMYl?grYk6VLwQI!-c}?U0LK= z;KHy8f;>|hsSlo#4sL3*eq%!GQ0U(aT+huo8LXbUTQ0hN$c#;tZmCvnLpMp7?Xr_* z{wS696UtSmzSMq+n^5jfZi2rlhi_#HCY)X1zAh#PI= zSqS2RlWF`8Ha!cYJhQ5}#$D>(<>)i*QmkP!;1;hraWoMLM2i9x3M9=fb z;jI^j1$r*mGN|owXpfE`*B@DC#CO**?}Napk01K?da;i_&=QQ#4A>g#*`$@m(>eJL z2GPJS<3!{5ZTin{xLLlJC%VRZ{wZb4>q=93Xh^~NPte04JMAcM@w=bu1dYs(dvnL- zY#nXsdDxhcudY4YxCl(Gr;2V&d5z(>$nW4RU`hNgKi!%LiWvTN&qM$7+%MFc#gg@0V#Ju;xtK`HEtPh)VStLy+55R-R<0po-zK)A_V_+RW{9b*y`(wny z@Z{FD(CMMx1h}B&JBnppy!wR0Z3fq4B{yE*M`;@^_M#RIcV_Q|PL8%ULyT6D;%`&> z2VG#u&60DJAKzxC`$O}i$XOV=p9~_D%=`mO{_~B0C~5RRl>9F;!u~tQ6;J;De*ozJ z&n9UK571-AneVPjCN@`kAi8}eO(NNMxK@1ArSQVTvtS$Tg%(?P7JrtjQX{VyGqOj+ zD<%{Z#iG0rtJ1`41rcmmN^mcx&`_J^q#fHqe5(H0+6;XFrO*d^YK2_ojn>l+9}-0r z-~flcBqZt_{eFtbP@c$}5-!F)-i;C0vfK2AY=B_6iXkCQnRw9h=6g&zU1_KAJqAJa zEyZ(yH*l82iHQrv8g4$7j|~Ytlp)#H6+J90#|(7)#mB z^iUqc5TV)h8_omu^B#|unpMRhNf|byB!c1;uLPqq*|c19UbrJA(&q-=-3Ie|;q|S& z>z}q>m1$~?NP~N4+2G_@uZ|`+-Oae+8@4i}-hL76uQmvyl*=1jF-oli_GzIlC3eZ# zPF7ux0a|N&pyI{eB7fa1>TG9b1hC0(XTEK+m893EwsT+h0EI3sVf&e* z_4#aRMw9oCXf2jd)MQEgodl!;yA*cCll1-aWvYx#;M4BlFFt7C)!X-8ybY3U`h(R$Lxx$& z-ACAZ)o#C?&p(@Wb#5@QRMT?PqNc}7dU=^)#ShX&wzZghLFzdxzo34CUZqOjJo8$J z5g}MdGOp4W7=lQJZo%48xA#fSELq{pb?8)jBF4;flhQc>ziG@ae!jE|tb3$C^EP%! zgx6-1b<}q+`%Rj7of2jMyC6ar=~1L({Q<;V=ydYXA=0)u*}@#A=ZqUoLOV|+h@D#yv|#7hWVFRSh|m6)`E)EY?ha_&{*KZ*-rR(Uu- zpR@JaPA6xsjBkUVaXXD6+49Awa=0NOD46eqimB?*)HGY9$WQD+;xnv?M;G^fY!{ zEB@~rafre8Yv{%ecH--C(P=VP@RS4Mo|IsElwxpmvTo2WefKk95w zFC?-tkKU4D-Ndx+Rko^@oI2l9Qq3Y8$jFns`#6KZwc6st%DBFSglWi29*T8~^;*~g zkBEv68oa)W#f?;Ot1=b5#vVGP(T|d6U5g}ZbzWThI;yASC)#DPCAX;t4T|K}`#%qs z+6#VR!WEz>QaD~^FPbQ5VhbNSDq|94ySnPu34kgnwntS`FlIx{)h04j2$N?>tBu*R z_ZJA1UxXaT;CF~Y9LH9|ahMGGVMSPSU+s97%i+_((vjgxVygkX@Xnp`YKxnmT z<&&6oTcTmwInmn2w}JV0IEWUepkD1)t*t5V*+*V9LFte)0rz-lc*3>!Rr~j?*)f%a z8RDpAZ5k;S*Si4K^*zvjUvCjz1pPwE$0w2OK((AS$EkG}=4TO;<0lV~RhuD5?GR~= znq%FDX+Wsv5DHCmNedacPNZnf3G23i^8RNR4`*#ooG2PiU1LvumnLtiyKQq`nXE*1 zc}A0B&s^>osb)U+b%Wn4hX=6+Td!29v&>#CUWD>)A6f^sj=MRTvB*xiq<@XB>aRQ7 zS1|Jd&1?lU$4C}tnL4iIP$QS$_Bs&e_fD@WiIJWd=L3)Y5o7(?1F9wl$&+%{&*gR< zfYNU3^@kMa-o0{Q4HtUH#bg*xco*Az9G=vvlnI+(kEA@hXZXmT)OaBjdhZ^@u^ewd z@zzA{+yU;rM3F15H4@C{t=?VJ>X*pdSj1*q1oJ(F-rqUrhfk93c=QS17s&<*n7{+D zpxTS57@WKtniaJvD|g9ACVJERxx}201zElz10s5K61%p^`X)-xNg8fcE8e0qRVu(I zIy<O^Ob%}0TkavnW#}tFriQUFtP>@Du6Els5W}8>HJ{dVSnt0FTj4hyw2bO(p@rw@|@=YWbI{>*75#kzjI{wfNU z(vB4a+w-TkXHekN^Mx literal 10808 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 Ef0>IC`v3p{ diff --git a/docs/images/performance/select_if_int32_5_percent.png b/docs/images/performance/select_if_int32_5_percent.png index ff89c6f44c155865e60ca87f76de8ad54412f39a..16ece60b04c8a8e4410e3d7efe97a2c1b4ab2502 100644 GIT binary patch literal 11988 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 CR0%Ku literal 11178 zcmd5?1y@^5v;~?LcXyZKE~U7;6sNcscZcE>_ux{bNO5;QG<J;_gn77wCKc;jJ}U zN$#CHcjnBQz4tjYKa>@vkP!$FprD|TWu(Pbp`c&{A-{XzU|z5EL}5d|02U$&B2ZA( zv51dG?;-!;9i+9Lp`cKDUO&(S_Qj@9Pz>@i;v#Au`o~%RHq@G~0|S4TT9f1Mf;2{B z6@qgR`%A@3=+B7~LRGumplGpZt*99Hb_D2T9z|OVm(r
uD^j)H?f!%i{_af2o{ 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 diff --git a/docs/images/performance/select_if_int64_50_percent.png b/docs/images/performance/select_if_int64_50_percent.png index 374a1b76e09cf6b5e57432f5a0e1a737c6af632c..8dd2a2faf49b848fe99f20c4624c58b615344412 100644 GIT binary patch literal 11514 zcmb_?Wn7y?atR$fY6%hUKc8z-7> z!FR*P-M^^fLw7B7-O(-RZBG@GH2pFQyqvM5I9TrwS8e8E<_H}6V!2aCg;n{yE^k<7 znu2X;$C8{@a;6wE=Xla(t}P z5!5el%nYU?6)1dUOWJx+w=Y=YVt@p?os%Vs^e@O z!kkLnW!6MlOJV$Yz-^M@zj@TR^<_2UZAmGgZDr+0?6F`$kVl1%wu+nA<*MuCFddAf zL{mt4`4H#iff7$dQ5XRUM2OWX89NZ0KSBc4@28d zdBgp8BsNKGh3hJ3oHsIUY?3|5NXM>ntN?%y468QDYSCzTXlP1?Cpw< zM@$dsGSTGyT&_>wxA}V8?dtT?B&(d<)r_C zW^MvQr(wJ2`NQ?$1!BNd7N7H0APQw110X;z;S2P7gr%l^o8lDqKLq(5dca+w=c(e79j1FE@l~uS6E4}BP9EmzWo-L-K>Pt> zQgKt>p#4BVmtyKNgb(7hVZD;X&o!k^P_=qc?wnwRq^`L0i$Nt*)Fpm_@pHplRrd1%jXVDL@zCLx5#v-x(B9`^+UMf~ zQAlRG3mJWMVz_|xFy$8$MMW{nsrtdm^1;Eu5iM^+aprrE z)WlFRaZWTVAi;6IYhI2kBY1zC3V=&hZ3uNaUgn``m2-@YNp1h60h93)(vk+FvQ*{) zFRu(P0iUX5xMW4HA`_`RL!*eApiQi(TM8V~DrF|mk$HH2x6y43LDtWMroO(}t%{X1 z#o&rvV#}I(Xj9r@?rP6BIDk3YFe^=~RB9A6lFOUd*c9g_aA9zj*E~iZ(cQWRYp z3b;_=dA}r=DCXtp^fcC$=o!XaO)ABlubswSci>m=NDB2D$+v@AY4US#%><_@GM5l0 zDb-Y^;Z>k=knW8+{Tlm~FW*+Jz!q&r%xEf}C94qu7*4P80oNg>Bm336$RW&q<0f`- zm9&xW2eVB0M)cis(O@;l&x4IQQ#qb{t!Fy`q;H%k zpU&r&*4;3(6mHpG0Rb)fdyV;-OZZX?8~LQNpgK%-t6N@g{FRq^AHSz;-RgE4RleI* z*8}@kX^_78c=*CgPjbbpYR=aa=%Z7I;iIM(Jl|iZKqdwyfBWZ+XSQodX^Hf6mCp%u zuRoFi?;28jN&+BDV&vHE*LO7P{H9NCy1@yvvxr}7{-65n1fA0=_d(PPz=YZA_nt$n zb+0p)P*x9eG$VJIrg!&~SW^hC#J{^1l^Xed_}j$ydTvGCjskgR&nvQV$F4bJH9+N->KzN*U<{*{AW}We}aVbn#bZrHOo&C zaSgxth8xW0&3l{1qrhnVeK%C~q)}#!#%7r&qqX8_2{V%wV^3kIZ(xKZZ7*z$yjfsL z;qVazvU6hX_5E%nOJ}M^Gir5RN?v_hEE$8%Ux?WCZ&9T@@`(df_tvbG#C}?z$#;=( zM=~%gMnYqDB=a&o=_g(}+7iy~@(8@eHswtq6E$3}Fyd>_Sv_^~?I$Q%JxDNLHx;G< z0F*)sYZw|U=ZzV-otkc!{!+dYARl}NkJ_@PA%2n2WN$TNAh)P#HAoLG;s*q9Tp6X- z{VYs%dy8)D`dP7QrAa~`_#oYpERxamUAufFal)g>7=QF@rSfzArTtha>p0p9GCV+u z+jqfgc2sE@(J(bnkDbUWdqBK|#dl|6KI-yfaoGtt&Cyj*z$R!Yh!J052nQ%6p@K?N z6fgTZKL@Z|{UjB`C0*JySPU#y1c-h8wlnW12#JGa0KfF_QMU!x33D*Erp`gtAhUnm z#|?EH4-fzWfV*)gR=v>lbP2`iyG9NMxNoKw0Z1anO1@=E&gsb%ou@S#W3^FD#m42F zE5?IjGyrN2ze}LGUbwQ1*QZRlTJ_XUW>Fll2EI-1 zu7Q&IPzg`B4%qAc!G4Eao(n8zEi^##D(^4eZ$B1N!-jQVB?8HX9r?yeX%aP?*M_Ve zbnGexZ5z?!49h|~)_)Aa2K}J&yMf36(AcXH*O!ggGE9gcJ(7Tv?$@;z2_JHV9`6Pe z9lW?WN>2SBoxVJYxOeUAUG)vXb)f>%Fy$c@5*MM@QT=zuLzL5gK9ZE`rw$?vv0}{B zdD2L}iyK8|hv1Ki zF*i+g)()psQu4cmkXmiMww<)v?808bH~VG{j!e7kSgR2 zXYIfVOk5;GttA*r(+DJW7O>R{#gde<@tIlPtuA^XDxdxFPmv{57Qer_kL8ES0!hLj z9pQ?B6lH6Xg=NWD7HScf3aBO<@zf+dARwUjWv-sHAeUd$&RO&Km#R;w-%b1#KNSA9 z+e8~;hrNt^@Fh8goK8EZAly{$+fGWBnB{oT0ox!N91J362(kkC)O{7e{!JeW%vsIM z+)cmzL<5=|A)mVDwZY(WUz`cI$MepD-nPjxO0UNcfT7OaHRQ{MB6uDfkr*aW^3FBA zPJZ@fTDi$p~zn0Anv=pQd9vhKWoen4UYACF*Vcb93l*E^I3JEhflVD7(Zk0iKH+d)ND) z@ zDA4G3Ig;<_1i?_B7(wy$>uJ{`GeyKj4W8~#d5vR=6>AHb&onX)1Pn4fH>d!>XK|93 zPOr;9FkL9kpeH^T{W~b>xZiYolYxosVFU*d(}Llh-GjM`g&GrHY2vef5QR|Ys)4!y zdY&$f`QG>%({WSyE{A7lY9w%}#A3u2KolI90yB7Lsg1Hq7$c|%?WROh@<{o^uxNfz zKcVyCeAP$Ps;>KGZYS@VNCJi!^7~}bR29q)Pg+afAz8*fS+o6NptfZLv+b7v$z|MjX*S$(eUZe`=nflNvJ;k<_4mFgY;Juo9CoY$R8C%#7&Tog&sEPFzKU3HJZ=oe zTtuA3s`CcVgm#E>f0>VRqVIwS^hM+rp=y(?rhY6gM|t{tLmyma!-)ZLrsN}Y4X&%K z)RZn2`UL{h)0r)c)SE|JVc)1DQnJW1c*6ZN|Kl_W0DuU=Dia?9lT^;z?A<2W*?DGb z-rQIMqRQQ`BMd@2I)29!E}0Md<#X&jMrz8;l-RU|1Kuswn;TEd-piRPaF}6y+p4@$s#3GI=0n)&Vjpr= zL~kY-URE-!tTZ_`)|{$uJnXFhhk1U;G>ItS^Y4|+*X_FGpF5HAt`#|<(7U=N&b(IL zbk2RN5eyHyMAT%eMKEFj>JuyO6@S(%lwF}9O851S*W`Y4_x5=s^=0?mc0UNl$OXQPz@f47o0#%|3}ytIcKd;jb^P7Ig9`2-Gg;Kp zrGdD|ey#z9GB%_?vFvs?(JkMMw{dUjJ;y`vJ zJB%;4J^n^81Dw1RLthRKE;6?k>ZNpH5f^iWqfT>yUU$75IZb3gh6ue)yWA6f+)aJC zfT`rwoTfRF(zkmZ_?L9rTg)S!DiJG!^LXHwmAF#Y3wsnW(G`IVhCMZ+G;+Kx<-=k!i!L?}4v4Cr700yZ9bl%L%&DD5 zig*qXtVewr4^&!8te<9=#poIGx;WaNxUtqd{slu8u8G{HHc=$Eg;XSj`JuhYplfn>nHfyh}=AZRf^D>{5`5ct!6voR6r{?^I9rnXx6#vo`v*uSCv zgz`IF8&jRMR8HL9^I1Ib(Ls@v)3TVZE{DZBuAjEF%YAz=*C9*5{ps#p^xMKr>`>JA ziO|+$%r$za=UQdUmNE&SQmlE`9zi-9~Nl9Ms_EH>c1PlfnQp27gmMOV@1ek+v~4 zwi=2eCi+I}HRyH!w#y#|8bHV7WzW#|k#_)dza2ATVI zavPn#o+qmeVb4YnCl#|UyI@`Zx$(;n&-tUWjy#}|-5}c&wFY4b$M=UxV<3(Mt%2U3 zAGNO55eCJZN8jK%fowWKDM`XB}7InT8ss%&&_*j(9Z*mS7cZ(R6 zZnNyB$G;RXPs*soCZqbw5CyFfBHWFdwcj-5dR=C2e7ju(y*eBi3ioPC#XCBdfxzF}CI- zCA?_lyv6!@c7N)7>Z9d>GjK&z6hX^6BW>!3N}mQj`Yy!ft^Z}cIW_;Zzga5S`T4;e zTCK;F`NPTBSdm@i0c~G8>UfX^96aSth4jAC>-rN7H)&fu+o;`!-??&Z&bBPob5)o3 zW=9y>CzPHObSx`Bl7cANSW3c?=ZHiGRZ2k*rP7;(oI!~pder9-2?jD)z=Gu)FM5|} zVj;WNbuQqWb|vq({cB;;;9~UX)u{7kj=1aoc7j=So1=x~2}ljka{IWW$-W>jO?2g2(D)RC6y0zp`Ijj-iyTLI0)+x!bw2yiijbe)Ew8zfo!?w(FU-z{eq! zl!5&FeqEPzx@gmONKfS$UWxzjp3B@92Las3xrhqWWoIn3lPLKBejZIcGhw2Co5HF0 zwN_TakF~26p4bk_5OJ}m6?43PhvdSd$HY+j<8{yf^=Fa>^Afzkdr$-$hdwoA@IB<) zA4ut1Z_i8aq9oN=?T}#NFky9?dd;)4w+jFuxk(54Q?Ff}tG4u;wib><=PTStaH6CV zcfrg^RyzQY2LCT+Ya4j2Zwf%cdf$g#pBZOZ_uJui--XHZ7RpF6mG42~ z>BHCiQ~$r)u}}R=;YJy}MqM^JzM^y2`K=6$rSv)v5`qBt=El{azX}9fp~#ZRa2nu^ zC!);Xjr|{r7qRLZiT54fBmIFqa4iqh9LSH3_HoD4KV{l9$504*@NU@3NBsKAIf|4p z`hTSLo}FI7;0rbWMPJ!J|^QC_vY30-hW_3Xv+-+&Vp+_cNxX8_NF23~D ziSH5I-UfcP#~&ujKJ%DSth_xmZSL9!?bmemeV}8EqGTj2E17J?JTQ)w==L^B-}2TH z9G4A<-s1>q=gfo?qZu zNJa&b8A;3tZH3h{(%bR!VN*V7NU9d~Ddp>kY)P%UL@IGkEcQ zq{}xfO)U?>nFo+`PmoS7;P=#G@51<%`F%o&jsHWGxu4>Zk)ZPy;vY!seo=3Rhz&#p zjbWYlJO9ZLb6_`8Bx-Ybw#c5z%MyEJ!epn7dpA2WjS@ab7ticdN{#UvEC@fqCl^n* z>Zx-$dY&V|W`qo8bs<`v*L0mRBxNR*1aa&Jr^yw)UcMgjmg!{)c}-VdA(X(ouryyK z0DVQRYsena+iH~xr~RQ1qGdap!@uGl@4Ap^zv9=j^&yc_sQEyYtWE;|emS)a4Ln{o zf7e5nZd5GIBz_^`V(J7}K+6=~kI6&8OJsAOqbN|pv(%n^mqx*CgA(Wn*0EJa=WJw@ zAs$EyYzJ&9=e{pD`^aTjHvVQo>d}F%Eg|#v*l~cgs*DC2b>98v$GmC8Y0AX>#SP@> zmdOXT{msgRU$CSLhKXA}$?X)nFFZ695wcSHP16RWiaSn22r*}K-X=uUIpT%LcXrqa zD42b<0{ZZVB~~un#m1+}T-!VO+3c7ic8QI_`Q^#R|BuD%d5giU*elhcS*oiT<7Mz$ zIjqDGRgvoi75HBu#-&{OcW{p}nlitGq!4rT^CtC`u+{ZxRdR&9V2Q@=L`eeqUTEx7 zxk_)DIti94xWj_2MHL$00SZZ&+FO7_06CG|Jf3qjMB>I-0S1~t36>h^UOYQ=vig3gU?!6{r>Agc z_pdaBwpS0s9X$3GD=7woQEd2tNU?9VJ#pdyT*VV@Sa=Ps)Q(l7dJ8ah6Y{z_m(Ar< z?)tfY+x=U#^)O}YlPncx&>Il0r)fKE=<`k3vL7lSg109+V70dM7KRM)Ma|qAYxdR8 z|A7Ph&kRZ$eOkdDhvi?<4KXi#RU>0XmZ#X}V0V0M zZwFQn0&vjh+(5EYATnlx^$i`ZJY8%jr&hw#jb!_TEU@mGD2LSeSh&{3xl16O1;lQc z1BaAF3HjmdUoEJhKZw2`j-Cd)kQxoqSgP`joMEg6Z20Ws=fKM_NV)WYSy={4b>c>g z9CFD-7;pX3eZLOc@V#KHqegQE$VVVB$-xH_2eG3-#v2Me0fz~#=k2n%JriP^vB-N2g=DZCq$%Q=0Mjghb!nbcR$%ZycfTZ z`22(w|Uu-IkpRKQHg`A$MycvU^R=mcEi_o^gC%9pO0(0lB@DSF1` z{CrnJjV2|a5l@oQ6l7J3uifgD#ox8D{xWWfAV;3RSE1E2l|5nfmkee71Vm7}*my?>n%UMASNmaD3#W zce5^)m16#T!}yY}C5A?(?%;A#z3j~quauR_=A=}xkf?3rCkT5ZFRXx){mTb0nb_v@ zc{34 zlg;028a6YQKnqLk`ClAMn>O^!QI3=&7I>UB;t**m%H*h(YL>++_)*Q7#WyNM6K?Vm2g19FntRnKJ1HnyptMLqaJ)7sew5m$fFF~+1Q~s@KZ*pt0 zFISeEnt`_zwK&e|$fM6Xe5l1te*|w29Ahg#FPBdYqQ~8rlXgiPtxf_h)?!LpcM9$u zgSLW{n?JDY32a{d3Z!M~M|OI%HN1Iv+5JyVB}!qb|~NR2L~5^oGGG zd}00hWbN#Ac!Jj*MN6MQO2b>M0oh+H1|F58v;T*!QpGKuqpfvWK_myxe}sG(D$gsY zyhOMg(uMUhHBWoJ%B=YjBIDo^e%LGN?hM<2^zk7rk`WpI;UU^1tRR3^V6m8|%(gE# zASHL|EddZiHxs^I@*d`=NaCB0{~j6mLIg{y(ErZ^4*E~PISFVN*;FMR z(pD;+`cUt-Z#x%19lp|s_?4l@{Ukcicb*$e5KK#J-tD4KeqUVlDDXF!1>smT*y>@5?SGllz)cbeDc) zftb{fHKN*^>7DXoWja;-wj=C|yE)I9jF@>##acyDN>LNhZRp!H@s3d_`TiKKUnn&J zHVlO>BzmdhNIfc2bX31coCvWqsU9DWac`cT-uxJyT>P7ih#aL>Ac%IMt*|%D&=Xc> zvcj`%v7JmLh-XSY1{#mmww^)rKR@X;wXW6wZ)>zf<*83Lbkp`gH$$C5aT}H27DKy3DOgm*Y%I$IaRdT zp>#l)57;yyQyQS(v30<8p@RH9Y86Ub>G>&HLqA1W-Q?o1PS~dr%HyIZo}j?Ykb_8; zGH|Vo!)m$yIq%h{kiygAFHKsyQQ_DaajNT>coPiTuh$EWhLzxJW8Y7MBKDGj7rqKz zpt#mxAOY|BXiZ# zj_lucij(9*MaOifS+NQ@?hP*2!s_pKz$2aXPi&Cz^M(9%`5)}gVa5W4D>?`j-!<`-X)>N;R}Zd9qR7n_OAxo_BPhm;W$YYmc07l?U79^JCeIpEXhdb z@OzD)m28;~sduR4f);*WKI#4vhHTMsX6ELmscgoV0xo?rz8~TVI0(t{hO4!r_YrV1 zUYmIz<3ea&Yj4{ct+_>eBdf9E6WoSbC5bI<+KN%MZriNHZQAP7fX4Ghy1d+PdV_WC z*$jjd#NMU)MmoMrnjraPADVL5p~{R#8h>h7mR`>DZAOF1t5al(xLk(FwGBh3qNi!a z*$v#c$-g>9r&e9RStK>*tArm|md!$x>P4X19sP^1GqV;k2CYxMH4XiO61sU_7oDP3 z78fCRa;p;h_%0@-mXo*rvwUG_(scFc_X^z4#Z=Fw;-*1D(zVtl0TB3OP4B&vJe}4P zfor$7yc6_kOt|q}7Pf{>C`Amph;Y&>gJP8TCDPtW*d8uos%|&KNA;8LFHn~j&=SW< z6L;=DvV!sdzO3-Soag_aE_y2K(Qk8RRM3@oVM;di z7MTZ9?bzLctKT_~BsDN^#NC^9p-xsrqRDr&>_X3FDo;P|l0#Z{r{%V|r={+9DI?(G zfX?Adbt1NvUq0wOC{|B|J|K6Qv9cTCkHjg%GPl`+hXc_<7K?10j?y4mAIs=!`e>m9 zykc)L?>A_I=4JOW8W=k|_(NlRAM6V{RKv^Pm39ie4MZLIc7H=kjiPJvzCC=I6B>Whdts|R8)j=6@i>nOb)(dmKbvy z-ZfA-SnNyqyQwvi@|WT2{gAOG)y-dxw@mffBg=*+E)jbDG3`X!oV@wdIqsVZYBYMu zoJjbg7FjV{6nsqYxMOobMD(6wCEm>@=F%AD!dQUI@f2MRX^LCqy$61F{JE$1?YmuC zN~aVygp)}4(|8|hl~uSpD~JNS+zsS|eUWpwQCe_Iv0+l?*u2%@HFt@C%WeaH*4=E2J4!-fP8RNX%DAW})vUOS|E_ke3f?Et!2=m?+%DPaQS$1;Ls?bi^ zKbjgDUxCBMrvkG?ef#EN;xdrc7HEk8B?MVEOunoid6;Us(yb7_XV{0!e<#Ek6R~eb z!C6j__9OnBR@1OL;rH@#xf9>vPASR9i!aup-#nv@q+=WSm;z_sH4E)O4|?%cb^I}| zXst~$qER1`c+=ZQW%KPLrT%OmL*HIPuzIovhcz`M0nzDagY_2^PpW_>mtFEp0AUzP zW#kc7th{}!Hubnc)e;4#&g9pm?%g_dN5czBy5cEpA_YT2=04;~zY@*R67_^+hM1DcStx z(M)k&#lpfeQPSeL<0qB&Kq=u_y9v=$!z4sn=@O(oh&IJuE_j=6H+N&&U;fyQmn1@< zE2M_wdS@LWXxP)5Gm)J&JPYTxTj)h6`a7bwEvMp?i`I1O=JZ%qILs!8qPDkvjxM3u z2DFTNTY&1EZo+{*4nT>D6}z9CaLlDVx8yU*;?$K-YN36fi?B6>`MiCK8!%)$Z;f6x z82Fkt?rEydq?!Ci8bMHI7?FD1Gz(XW;7f{CH=Za!OiBD-)l4iw?7tuX_eCyT>}GfF zpz(SX^O*ae;%G~gLfAd;YpMqn2*&UQ{875v?&n^8|&*X zyOlwrKp7-RrOCm+Gy2J-D}ME(i$|D5VDG}--1UR5Xn%4xGjTE6u-do*vv%?{d9`V^ z*46}aE6=#MN^uodYxkQ>1+dH0CYx`)QkR3f7ZZyr#gJ)spq$M!sMnV}mSDYDej$`LBg zjoY@4vwCPXmCcN=Jamemg7h@Q1Q)J#`%gS=k#0OiFq7B_dz?49vW8#pSBRs2lNhmAm`Ph=QF@n74S9bzujGuTof&gi6rvR)S0`)wXvXo6j^jhlE1L?NRit ziG~&|?r+l*V`JRYQG{g3qJTLL?z<)C4s3rsSW-S$O;f#Anl3(@tOM1uSK%DSTc$u| z*h)@hA0MDkb=br!)0W_HlQvSjL2+Js&oC)dF6(Zqr z49+5o8usJM292JsCblNI^xl8RcpP~Z8rTu=!J&A7Zvm?rq|wMs@{Ih1J<4)tOcWxQ zy;Yj^7|7+?Y@{7WGSbn^Jud5y;QoRN)!v ztF-w8iIr^<+!u+kT3z$$4FHO262k*jpx4YCKRy(1{D-r}KGs@2JQ|#fy&VU0q*7hN znq`$czIJ}_fHI&$oxHbFD&#jhZF38hXAkuFA0XhBtH7%`$duflt-DLW$NJF~ScGh59$}J`-udE_M zA;sUhY}yP>2b*B}sV_cniQqNSe4tTK+p(E|J2)tha&1kUaZn&*9G6;c3FiOY2fYNs k@K*xj&c7&b$5j87DuxYCVwMMi1lA0YmsXLgmM{(aFW9Ha^#A|> literal 10624 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�*iaG@>!K($vdTi+YnNj0 z(i!kpbpb-{HawDR7XK&`wld!~VIRfHWzj6B$5DNh8LjB`-%(|g!hjE(F^_cQK5r(M zNLZ!MP<@gqzv;{`+m%ZA3BsI|-YK(mOQW@$Ed0ZGAc!}%6UtNA&TGwcZ@ha}0d`YQ z#5bEZ?$$TJ@2#H#S7OCEMZ>>!N-Ri8z2h8YHgt--K`JFRE=IgtJT`S0LdBVHr@+{Y zJ6FLqpW|S*uvEQgSiIy~8?$uhgFA%Hz%cS~uCWqi>`)vCWI$|L?R03zSh#Oc36 z2ZQcPA19Tj>lG`l&vBp;scohlGCKgY?yl;7pH(bAmq$JY?=fcIrlh;$5dUQ0ENwU^ zREqW+O*EI=+A0`xjr$|n_=T@H5OcbTyh|r&F->;>|ui|rokwIt$-;t zN6~bcbxwmW{@b^9;#571rrk|MRWR}4&hqQ&n#!H73Z7w!>-)N7%Z(EV3XAPK40V(*fe zc!eiBbl?5ZuM9)4m0rOwWmn<0%3QCp12F{2HnKuF{(pz;cz%QW`=~Y;3u_iqLJ5$O M`1qkh%)tNu08Dm*{Qv*} diff --git a/docs/images/performance/select_if_int64_5_percent.png b/docs/images/performance/select_if_int64_5_percent.png index cb1afbdf059d66fbf9e733c62fdacb7d38489dff..13c3860df1392559a30dc00e87ad87994720b91c 100644 GIT binary patch literal 11276 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 literal 10913 zcmd6NgX z-~Zu#p2IWDWuMF4=j^@qTKk?zbyWo%ObSdSBqSUq#W$KrNPyRf-+!S4p051*LX7wT z+DN~XMnbBN!@4s=MSRC_Rn&J!Lc;y^^n={zQfi5W#4fA!Mq1m)ct6|EkxBPspG}hE z#j>IzzOqKrh-^KmsXjher`)In17C;muejj%6~?Ie@*mB(0P~V@86iH5(gW^(b%-q6 zF-{CLC9!foN|>?X`y9Xhl)xj=3&x?Ks%>VUG=-K=pQJ?ZPM;&ih_)Xgc!jmcuo1@#a){JeM81G1=hHN%9F%~oqPhK zv)vp5(gPP?Hb==n**=*!0VljchNmj^f;cM1#^hgf(%}Z#RC-iGl8u?W1+K;)D6wxp zBcTT&p%)%PZ%RmtZ^*ZT4L;hA%^0~1AN{_!SUo>~cPfWX`DB6^Z5fDKlANKO1t zM})SA+WamT{SMn~IsQE)4a*M~c>Dgo6B;1XQ`y(hj_kZxq^-xgwL9Fa)|vmkX!h;V z@-Mc`uoY<}pcE3&A2_o=3w5eBsT^re$ZT|TPwE)Lv%EnGD^DumvTy=-V)9Yx<+|dW zqF}+6s!V1OQxF4F*3{Fji>%QoXM^Gn?NzIvnH*!9m|TA)pp#=r(gaGBO?=pgieUCR)#JC{>YZn-|XWx2L&c6nw)E z5{2Cm2X}XO*Rfm6px0=CLEu(>f!ae=zXPbck zHdawNh>b3$K`#QJ8>0s@@GfrNiaV?1O5``A8n)U%a{(z)lK1I`AuU4LCzDGR*D;nV z%TL~Y!F<{!sVVeMPn}9R4ce#GFBL~_f(#11WJiB;REHrxVb@#>{C<@1Wt(nIANs)U10J+OCEh)N+~* zZeCx9w^xsNX*L@q*$-KyVcDQYlI5^u4nWnYbbK1>SSqMY<;m&)P?H8I1Ezay^~ z=Y}0*b@wh1?w!s!oX^_dgBKz#Rx%c{ata(tae)Z$sDiPLNLvKBzC=<^EvY*Ud}(xa zAv^h4Hf*b#X5ht6TKrWL>|5T0AwtUPu9U}~3z zJUOXa?w3H5&n{d%xcV3$uHeu;lMNb_zX-1g@cY??jo(L>z-RgP#+YVgL~;(Io=cpm z>)kH~-0pLxF;1$#XmcCry<7RSU4M9&+>VjhnU;1G*)bWD1Ed~_F?QoSbLH1otTL)O zuA;epn1DZyJ%nK!&i%$Quaw@2Lx2?gHzzi}cU8b)TaeS7h7!hY(^B8;tY-7$ZBp}=AoKad!>YoCkb(K4vuEPS74{!&KhfxCUDILD7Bqh) z^BHuIXQV1}**)J$2>d>R`@0dx#gC6$B}rv>$YFT{^-sQ76v<->>9)-;lH=-w^rf6%~=F3ltfzOohcX2U}o_8k; zpJ9sOj6ak7y<20^(Chr?UP~c!m;ZEi;K1A_Fz;nE=We@=8f^^TAYyGW!yedL?wLt& zEG%NbPFK*oi!*$dwWd_578>@h4+;5F&hn#ehIIJ1)}Cs4HT;9i^kw_K4rlL6L`EH> zU&&60`#t0ZDrPOL!N2x{e-D8ku0>P03o@5)@qSlGpHrZ1DuhgZCMGZpcb$5^Yi_MmNd&LuY>sv zdH=hMi-zBx8GL@h+=F*2q&9@wvK!w8doy>Vjc#L!E#43w?e0PI$GTrX`Go`+$4Kt- zM8zTds>BNjH5=(Tx-8bqGj`_Qnk67$q*-H+R+AyQo$9eTCEK9opm~Kk{ zU!{}!fF6P=J+KOX*?ZMx&%AjbKjAQg!EY2U_ZF;474ZZ3Ey?EH^M zw016}{l@t3PdDu8G@|ylDiS&|44Zql?$Y<{zgb9tW#NTgB{OjYmRH2X+~ew%Jr8$zpQVJ!r-80`2~*`%I*FW%$_yHyhiUA^+s|JX4UCOm6)MW&oYVEyzx*8e3WqUTuX|@LIOJ76V#78UiA+D&IkRKR8WobHXkwsN2N9*juzRlUMDXV&w1`Rt9X*C7>!gF4BMfUVw0QtZ{d0!hzyj)-ku z6d*W9YBpunQz(~_%!Rm3RHW7S$LTI*CdwT_x0*1LK_bQ$ ze$bTF>;#6G5-E)yMyYo$EHt&A(C*}~L%2$97-8)I_Uv z4hVM6C!P-YE9b>wF(~?K%};-}dI~LLSkHl=lLJm_iamk!@VcGqzwm04qT8w*0`oRV zkQsM@^B8ht|6eGE=h^ZiPa`X3hQV0gHKyi)cPBhou!4)y)-MxKD%i~Z;WXc;cb`M*$L#R&dll-6p*sh(WV*ksE5 zFJB*ke6FB_LYDuyu3e1L6W2Ax(y7*oLvk>gss!_^Ga#aIA1Jf#E%0ri%1jZCV5Wzx zrARokBbD)P9}q;x;&v^viDlON7Z;ECEk$K;3Cc*(kz=$W`V-cU$>efUgqcC2G5TDF zUB|C9lxM9l`&sB#-9glUbn~dbA$jD4FFy7kdBQGx>X%4MRB7)i5cvc8&_lceZ(27E zM6mHS;2?y`rAUO_kVHf|QG};)_oU-9DnXy2?n!LA6~=jsi?%zcs`cojn}M#e?>Yj_ zw@v1no)1m+WJlZr8SLp~6hT@bgZmiBSLwz%BI+&6}s-8Z?7Tl=Gx zHFIm2gz*rVL4-(C-N%`xml9I?FDNnp?9<()xaeCIXQtzK|L8U%91xHw|ig1Z0T8yjJ?HuePbuUc^2v&6m5v9Ly ziUeRY=zRi#(}L!IgVO-^xBxo545{>8dzT9G_wC#cMK~&c(K!E=6*|6PynQ+nq@aw4 zexlD_d!n$EQV%NZCxDVrF?9%-=Iw*btwy_#);>O^@#2;~JD8nj1DZ9zcVUYA4Er2U zfem5XCZ8MVYWq>Ee=&xW>KnzL01&$Sce!#XV5$gNwsmf2BlZM==Im-g(`1#kcuubr zDKp;#5L?}A&NNep%Q35+Rzc+gIpu4#w6b3h>iVxn3L*Phskh9M(eA=PV6`+D+uL7} zyhe6pl}uB-IE`+1J8PXQO>ER~XGmO^@43gJ?7DRB9B?nM9AkBf$d~)3-`RKX?>Gse zbtjH`^ZhIINz>;vSQe?FhMBuDa}JSle-{@w_GLP} z`(ZsNIWvhA1D31X+6}vWg`6PJ`Dz}ON&YTNLs1&(AeVN=y`GXdvZp zDxYg{$kGjj-kme>oZ6@dyhyst$I?&RJ;A%cAu~WGKKpiL=z(6TI{k`WMLNGyKZnZK z!S{ocEuL0d%Jyj~`cpz%zM=b!kU(yCon3=?@6;xGy99XuWNL`5^8belF95G$J=S=3 zH%hCCmW^)y9j_EJEDtJV-UXHY)2ZDIOYWf2G7g91l>2Wv$iIB1&0PLhqFf1cePXbm zVN3rLJWufWg^>7@r0Z^v)q zd9E9jkdAA;T~AT3lWd>MlgtWA)EpM)U7h(l9 zWpPk#cZr=bV3S=O$%U06hzC(*=M!7Ykr<*TyL-Qxdfdz{LNg{H8ZCT5fBsH-B;Fqxblw=*qx{y>b`yVqUHv{}IRX$=M*N)wrx-3W^lf3*v!-i~`>ekMKK)D4 zPP|jYBSVm%Y`R;k&}O6=BT3w5gZj@}fmeZ;TE+16YQkK_RQhd zD$SUdk6M$JcS$+%(FueOvk%O67zg(cwnSxKft<#(r$F^VZ#^Dq zfwZL>Q&mBC2(2wq;N6_bVM`~&4A@0$({J-=-qE}IYJ8e~a#8Bb6{;!-6F@nzA&@Ux{msXA`2+#9{iBOC|V+2FV4JKRVtH0g@5> zf&{=ocND+A-K*S<`*t14YPm)iH&#FvzJ^H}tdjWo6@4a;-{_UjC*|caXP`W;AZ%oL zPQxP1_#MXm8hcDV#fEos0U=7|0{Y4!;$GMIP1l_r4>z#0>GOiy2Ym{`e5E*R!^x<{ zAWzV~^+LvaBBOw9S9$fPm+g+=&tt26-&9$TS#IH@kCF2I#rUoyh_LzyOs7KiBd|e! z9zAqH)oy={><+qvG*7q^>$BMSiqOS_&Rd0X{{!^ge4z2;UcGgCZ%g3STJ71Nk-nJT z-fKMqxh*E$0(6|oAK#9+FpR~wbnBw?3=j_}$9R-f73jLTKk+63{WnKX;Yha0O}&Vz zt(@J_2L^?|pwE&6ue*Lkv;hSXVlYT50ljtlPGdjFG9E8bZtP`AV)(9GjehFNb)Moq zc>`j<&X9s(IeOPeu-8<28kmyC@VBBG+Q=cZEs&{!;O!Ufwis9~>|>wRQ4x-{0T=xP ztd5cbceu5_vf6J;7%Hg@&3k5)J0+o=rx6JaKYMDijUue}rvkIC3)0&TPs^!FA}YCa9Kp$*W?GgY6%08yYLc81HGepm*eIrElLUsWAqw6O=r! zftDn%?s~&Zi>L2sRWj#6ATwukd|v}y8^z|qud^OK2!0wTdED&{nIXHuMjbPNL@TYs z!boC1Q<&So>isl%PK3N(9@GLEWbI4ZlW-Du!Rla>+k1w8$w*5w>uGmlq>Y?f;sB1B zDm2V+1%du%LT^v1XJ#Sep zi_;<;e;8KbskdXYFG07CXPf->^NL)q_6@(P1sVoy#IAG#HlZ_amYS1Gm=x2+7C+)) zgZgR3Rc}#^Q$*IzwkKWM&Zqz3@e>6~u&qxf7C)XpIehJ<%l0mOoNnwdklW+|(Sp*t z61lD=^jOW`?+V2twv16 z8+;XO{$T?@Oyf(}>ksH-LnHzsPNdF~GAkTwy~gA>FESr$8ei=0Hv@T^8^urd;ddKC zHlwX~{go!3=HFTN6=ywEEDyl(YvHgBM6hfHpAZH9& zL2v}N2I@ZbSyor0N}93X-JFA+*V%g9U3Svq2=DauU-yhcl>_ia2kkBO%6`IdIFg6- zt*NN>tWaLc3pO^NrL^rV+9GRtsaDVN^cUYww!k}M$g-(fDvrsAmN;zdEnUMlX!dq~ z0lO$B*Hcwn*Xsp5heTN9J%8v6f1lXVWa(rForl%enb7c}-)Y`cp^Ed3DyzcUQ7cs5 zBwZPi(sI2OhOJ9jwE3zB#K+mHziye8#XNw0S#qJqnu;AP2?LGJJ?0o<*^zz$1nU7S zgevY;PNY68rBz39ZH>YfTt_B=VlJuwL*?n~G)E6!JyXF!=ST_r>{n zo5ElM1Ie<3QW>alrz_R?1+RMfZ8^o2RdXb(+*Y>uddQ|+pcNYh>-GA}e5YkI3Ukpq z$5Y1lBaNw~F+T%n!?>YC_6l+#*(c6Il6RFR87N_!9Up|mh`+HC)TS~;Oem7$Mez_L z<5N0FcxHeV7kTalFezSt=yFsMSf{LRu0UFK-@HmUJR?nuSSNLFJZk3t3U?F4JeZ*T z+jFD)^#e+wTE|OX|MNE$r-t{XfRO2!iq1m4h#jOQv=Oba9^-zb2^IW&qnk9Y=qyT68;5S&_`*Tk% z7=u4@kBMtcY~=Fe$h&h!%^?x zz068~D|Q}qqho5I!mj**a(&7I{@Cr4#O)h!J^3+6FyOj;0Xb1y`e#5HPZeMQDZz*b z4mdQ`NM2o?h_3D^Xmg->!xu^2-RY+gpsQb>WCVlL80Y6G-=~Ojhmvakdc{>LZUjR# zEHPIu?R7a1k9ovTC5?DYB5=z=ke6UyFD_x^&F_C(Tk2T6(`(UY`-M16`l-sgD!)NK z{SLe#TiD(1DjE9b$CJ3Mx&p1~i0?R>ksJp_!+&nUS-pRZq06!{hs%!fYAZUe4%a~V zMQdMht-!Gb#$ z5eIMwEo88jc(**H@9XqoJ7n&_y`L;=JEH^Ewmg7NL0(v zdxrK*?Z_kh!b~W*=YubW!CSf_@xj2yU@^oi1a&(1U*|%!4sEJvCj+YM88o30eJpaG4tcqPT;(8>)WfurBZJ!S zqEQ&v^?N|e<;W;h226GTBJ_eyJ)s?0mL<09v>oEt$@>m{P!6uxOKGBNhrLC=F>M*&YBDX2{vIIRm;~Gxoqr&fjwINs*BXvh)Qxzk zm~&EgH!9tAi`0wiXOzG{x!E4W^SwWyv=af`&kKUx&uA%x3dU=jBv}GCG#$9VU#>K# z$bCVn$81e|fMgg(s>Tab@{SWR7+bb^9YB3@d|o<|?Me$aHgrX<5^kMM%e|`EFMcWU zvO}&$eIp#~5Gm12?4m_OuM3H~8`PY5E8^vB#nDK4m+EFyIvtEywuSS#Q+cTY2yVbJ zL)`D!fRpc%*H<>qgaZ)K&6dO@klB&Qq2L$qhcQo(O69ZdkLPM5{5}C|c|QXNNeQZs zmfBj@{r`N3JsVmglv}~C`oa;lhBk2)yo_!20`CYq4XTp39AxX^7|)F+^ON#dIB+5x z3c}rmHhtn^J8Y0237k1RpOdOsxfgR8;hCD-lkec`Ufd)|O@%K%mEe^R?~Kj~c(|_x z&_}TW?7*wgVH^K#nO>#}z{@xb88qx{1s)2P!f}~FKbe)5fzY(u5|SpLS215FGmU6G zr`=R{cK!3wpF0@%ha%y8i@3ry8fxYb?ozTFaPcWqdeJAr+a^!0CXX|?SoBgV z$L$ODe#!P~jkABgqOq>_^w&=3CsBA}sH?_=!{(VuE9$`to*>M&r{LceGo!*u`lYQ1 zc6(&_W&d^kPk=qg3~k$CIpciiRIJiSFduHb!K(qyQns{7-X4^gzkkYdO(m!1k~o6* zSbo}Zm*-8FoR-NP%o_i3T`rXZ%$oFn^Isx|#`{jh`}3?ZUeYI=g_!g!g3T|vqbkxX zJ(bl6Hf6pT>v_CjjryY7a>(JGRw8*$f6czbWK{HRGhJx~>ZZiMG?3D%72a+4)&|Z< zAUwF3=Ek&^voD9EJEy>uQLEv1H=$Xu$74B2M(_6Q7%L-3!M!;?K zZN#ebES|}z08|F4aZK@Ra+5=Rl@LI*FV=Lrgqdo1Be&h~SV|Ryr71U&PF)l*cxuQf zCyhyTcDkuHe^b3J>3^hk*l{?1`JitRQOGL#D1LGMTtiAk#z_UH!*1%DzMD@b^);zR z2s4(a3~YuvhoplPoQ1)vq;d2|q^?tgRroaYdPa&4<*8w$ja9@sP)E~Tx)Vyy+r@^^ zd0ps7X7VS-<`O)5!BWqF`C)dJrkJY82+b}EFp82Xq+=~ex7kkrWlBFL{c9|li|FU^ zz!cU`N`ydk1BTF3s3jDM!{3YWma0R6qPAp-UU|aa7IG#Ld5XE6?r<|iN0gNZnR}Iu zXnfERU(c8uK+TVhM$-2#(z{`skjE&yZpcXprm);PI0Z80LWtEP$`JHoG+Mm=FsYJe z?kEl-idHfHHhL!~$lsIG|K9eGoD@q86bB=e9V`Gpp%$FksA(Z#^l|_0$YXw!DKD^EVu>N1K*B4zqpOCwg3#%%b+5IXhLhW2k;w`zH zTOZr>-ub#$H6@cT<2Wm@k45-NAbC7@vL!LBh?eM+knRVHR_?lW5ZIma$%wT(wBCy? z9>>zxMw=VXmaBW+evcV64z2lX63kpGMa(`HEq-YTHzIu}g#&DN-5yS)S}%_K_;eq{ zpo^E9#t*Z7_P<7vq9WZc`md0U71#e=K=;`-mwBh&ECoaKQl8%5up?uWkwD5BHzNy-xrr3wZgd<@?d8)B-tZ`n`!kd%i>j#AaX{hp-< z1@Y=9^}%@Qd$4moZv}PK&0CP??dgHs3kZkQy3AiFwPNII{X%6z-a-|<5(h7jq+EqdE4?IMsF>!*w|eiKwo<4I zNLn}XG`Ev>Y7a(nJ*y3#Vp}<-D$6}5(Xa1n*sw8Vtg?oWZZC&F?(7R5fW-pWbpan~ za#Aa@^RrgJU;sV@_ zl18TvGa1+QIn~!d(!g`^u_FHu-Q}SznC6|MHXQ<%Ti70QmK1@Fi!~+(EQ`yV$zc4D zTuq-XnJ2Z07hs04mqBInj~!$2YA} zDHke?&42}E$7_(@$dEj!5--a?<2T`+CVecVS?Aj>sC3!bo@>wH-r0Kp<@~#3=A3$B zh(VN$-A<|xG<7~nPY4_OR@2r(=N4u7RM6Jv)b4wD;(D;m@@QyP53k9KV^YrK6?CP+ zFcLjI4o!-8dA_R^cS~SiND5sIvuZ$;dOLds|8Nn%|IY}=8hzCFLXGw{jjgY|GayYc+fF|yLe~`WX!3xe$`sH;PJHT8YF<&V9LJkPEB6fM z_B4nBEJ~%i(K{T8?cRff`aS9g6B}4A=W=hVdP~J{8zu=|K+7rj=lUw;1NQ|359*y9 z?lXea13Rl}tgQ13YzHabOO8kV=WnFj=G*9vjkqSblxue}o$e1(h4(k-Kaap2kw1am zdoDvtTE+=yY4@O1x0E=CJ^ABzZ&GhTX$~5Kez_;yA8n|^bt0UOX#>i{OlOXnQrH%K zgc6LCVrqf=@uLnd^P2B;cEG1grs3@A403X1U2|vr!{Ms^Zlb6)>&bTR!z6l z_l5d&+t-mIgHq}53lN>1Y8Vz<^}X}y{KcWroe;NEwq*5sfJ#5ZtP2Q>K|C_)nts+` zrP*iNp!du5e4QY5Vm3>im&6X#GFu}PCveS@h%~M7lh@d^905_CfaJ?I>&2v265Nra zfEPE?31z0Q_aX1pgf$bEiIt>ESe{$Sw3yot=w;2k{2}d)63|hc>E7*(S4y_KIgkbL zt6lY`2(Uk%E@ENINo1-iQibKa%yNFgw)7o#&#*mw6}i`Vc(B5LG4uP)Pp!WM`ZPUd zNLHu40pNCCIl)!uDGw0$wTitz+`ooxP>CiAdU3Ks@$Cg2n{RlIH`+7dNv={%?WAD4 zf>}Wq{5+DmxY=gipFIwyJEg0wQ0+p8Q>!@wCK2-A_yYWvL!Fs;c34|GZoeDFymHMe z8h47dY=@~NM{_cn2J9;%67^Sh3@p^1(j$=s}l`#Z)v8yOs` zfH|MD6zk6#t*YBqN4WtNvh^LLQ`%4N7Oq)KE?3YjUyn0M%8QW*GaJYc=)|L?_B2(e zNpo|py@{T&*rw(nFuFA28F;NddMxG`J20K{HH9{a8=?YD@8)cj(l(4-O0*b4X8X^=N}J`dDIJK z_y-(rOzI=Zzl;)A*8aiDHbKy?avG2FzvC@qst5!U(zId$m>ZDh%=^0N^+`iATp+({ttquU0nbG diff --git a/docs/images/performance/select_unique_int32_len_5.png b/docs/images/performance/select_unique_int32_len_5.png index 5043ebdd3e64d7c890785d013d360147b7b5944c..11a9a416e0748677a9f020057324731f609b324f 100644 GIT binary patch literal 11843 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

kx-#!U>Lh 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 LPZg(Z8}okv%MRk% diff --git a/docs/images/performance/select_unique_int32_len_500.png b/docs/images/performance/select_unique_int32_len_500.png index d711d296ef1485ce6e1cae781a2e08032f1cddcc..90d25e9188a5b9f73cfb8e7c74eaed03349f6b7e 100644 GIT binary patch literal 11771 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 E0Rby)J^%m! literal 10970 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 R5Z?(P^-W&9T1-Fi{{mSYxTydD literal 10966 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 diff --git a/docs/images/performance/select_unique_int64_len_500.png b/docs/images/performance/select_unique_int64_len_500.png index 709943555b3e97ee1cb64857bb5537e05246cced..2a5fb17c5d523cf18023f27ab5d72e0de8de2d15 100644 GIT binary patch literal 11318 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 literal 11131 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 a^85{lD{br3Q1&et=toNIi)bZ4Kj43+-lQV{ diff --git a/docs/mainpage.dox b/docs/mainpage.dox index 3faa5a489e..5f45cd3d57 100644 --- a/docs/mainpage.dox +++ b/docs/mainpage.dox @@ -1,6 +1,6 @@ /****************************************************************************** * Copyright (c) 2011, Duane Merrill. All rights reserved. - * Copyright (c) 2011-2013, NVIDIA CORPORATION. All rights reserved. + * Copyright (c) 2011-2014, NVIDIA CORPORATION. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: @@ -53,21 +53,35 @@ \tableofcontents \htmlonly + +
+ + +   +Download CUB v1.2.0 + + + +          NVIDIA Research -
+ +
+    Browse or fork CUB at GitHub -
+ +
+ +          The cub-users discussion forum -
- -   -Download CUB v1.1.1 (Dec 11, 2013) + +
+ \endhtmlonly \section sec1 (1) What is CUB? @@ -75,40 +89,43 @@ \par CUB provides state-of-the-art, reusable software components for every layer of the CUDA programming model: -- Primitives - - [Device-wide] (group___device_module.html) +- Parallel primitives + - [Device-wide primitives] (group___device_module.html) - Parallel sort, prefix scan, reduction, histogram, etc. - Compatible with CUDA dynamic parallelism - - [Block-wide "collective"] (group___block_module.html) - - Cooperative I/O, sort, prefix scan, reduction, histogram, etc. + - [Block-wide "collective" primitives] (group___block_module.html) + - Cooperative I/O, sort, scan, reduction, histogram, etc. - Compatible with arbitrary thread block sizes and types - - [Warp-wide "collective"] (group___warp_module.html) + - [Warp-wide "collective" primitives] (group___warp_module.html) - Cooperative warp-wide prefix scan, reduction, etc. - - Safe and architecture-specific + - Safely specialized for each underlying CUDA architecture - Utilities - [Fancy iterators] (group___util_iterator.html) - [Thread and thread block I/O] (group___util_io.html) - [PTX intrinsics] (group___util_ptx.html) - [Device, kernel, and storage management] (group___util_mgmt.html) -\subsection sec1sec1 1.1 Collective Primitives +\section sec2 (2) Collective Primitives +\par +CUB provides collective primitives, which are essential for constructing high-performance, +maintainable kernel code. These collective primitives allow complex parallel code to be +re-used rather than re-implemented, and be re-compiled rather than hand-ported.

+ +\par +\image html cub_overview.png +

Orientation of collective primitives within the CUDA software stack
+ \par As a SIMT programming model, CUDA engenders both scalar and collective software interfaces. Traditional software interfaces are scalar : a single thread invokes a library routine to perform some operation (which may include spawning parallel subtasks). Alternatively, a collective interface is entered simultaneously by a group of parallel threads to perform -some cooperative operation. Collective SIMT primitives are essential for constructing -performance-portable kernels for use in higher level software abstractions, libraries, -domain-specific languages, etc. - -\par -\image html cub_overview.png -
Orientation of collective primitives within the CUDA software stack
+some cooperative operation. \par CUB's collective primitives are not bound to any particular width of parallelism -or to any particular data type. This allows them to be: +or data type. This flexibility makes them: - Adaptable to fit the needs of the enclosing kernel computation - Trivially tunable to different grain sizes (threads per block, items per thread, etc.) @@ -116,20 +133,7 @@ or to any particular data type. This allows them to be: \par Thus CUB is [CUDA Unbound](index.html). -\subsection sec1sec2 1.2 Design Motivation -\par -CUB is inspired by the following goals: -- Absolute performance. CUB primitives are specialized and tuned to - best match the features and capabilities of each CUDA architecture. -- Enhanced programmer productivity. CUB primitives allow developers to quickly - compose sequences of complex parallel operations in both CUDA kernel code and CUDA host code. -- Enhanced tunability. CUB primitives allow developers to quickly - change grain sizes (threads per block, items per thread, etc.). -- Reduced maintenance burden. CUB provides a SIMT software abstraction layer - over the diversity of CUDA hardware. With CUB, applications can enjoy - performance-portability without intensive and costly rewriting or porting efforts. - -\section sec2 (2) An Example (block-wide sorting) +\section sec3 (3) An Example (block-wide sorting) \par The following code snippet presents a CUDA kernel in which each block of 128 threads @@ -173,8 +177,8 @@ __global__ void BlockSortKernel(int *d_in, int *d_out) \endcode \par -Threads use cub::BlockLoad, cub::BlockRadixSort, and cub::BlockStore to collectively -load, sort and store a "tile" of input items. Because these operations are +In this example, threads use cub::BlockLoad, cub::BlockRadixSort, and cub::BlockStore to collectively +load, sort and store the block's segment of input items. Because these operations are cooperative, each primitive requires an allocation of shared memory for threads to communicate through. The typical usage pattern for a CUB collective is: -# Statically specialize the primitive for the specific problem setting at hand, e.g., @@ -188,8 +192,8 @@ through. The typical usage pattern for a CUB collective is: -# Invoke methods on the primitive instance. \par -In this example, each thread block uses cub::BlockRadixSort to collectively sort -the data items partitioned across the thread block. To provide coalesced accesses +In particular, cub::BlockRadixSort is used to collectively sort the segment of data items +that have been partitioned across the thread block. To provide coalesced accesses to device memory, we configure the cub::BlockLoad and cub::BlockStore primitives to access memory using a striped access pattern (where consecutive threads simultaneously access consecutive items) and then transpose the keys into @@ -197,49 +201,66 @@ a [blocked arrangement](index.html#sec4sec3) of elements across threads To reuse shared memory across all three primitives, the thread block statically allocates a union of their \p TempStorage types. -\section sec3 (3) Why do you need CUB? +\section sec4 (4) Why do you need CUB? \par -Constructing, tuning, and maintaining kernel code is perhaps the most challenging, -time-consuming aspect of CUDA programming. CUDA kernel software is where +Writing, tuning, and maintaining kernel code is perhaps the most challenging, +time-consuming aspect of CUDA programming. Kernel software is where the complexity of parallelism is expressed. Programmers must reason about deadlock, livelock, synchronization, race conditions, shared memory layout, plurality of state, granularity, throughput, latency, memory bottlenecks, etc. \par -However, with the exception of CUB, there are few (if any) software libraries of -reusable kernel primitives. In the CUDA ecosystem, CUB is unique in this regard. +With the exception of CUB, however, there are few (if any) software libraries of +reusable kernel primitives. In the CUDA ecosystem, CUB is unique in this regard. As a [SIMT](http://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html#hardware-implementation) library and software abstraction layer, CUB provides: --# Simplicity of composition. CUB primitives can be simply sequenced - and nested in kernel code. For example, cub::BlockRadixSort is constructed from - cub::BlockExchange and cub::BlockRadixRank. The latter is composed of cub::BlockScan + +-# Simplicity of composition. CUB enhances programmer productivity by + allowing complex parallel operations to be easily sequenced and nested. + For example, cub::BlockRadixSort is constructed from cub::BlockExchange and + cub::BlockRadixRank. The latter is composed of cub::BlockScan which incorporates cub::WarpScan. \image html nested_composition.png --# High performance. CUB simplifies high-performance kernel - development by taking care to implement the state-of-the-art in parallel algorithms. - Expert code should be reused rather than reimplemented. --# Performance portability. CUB primitives are specialized to - match the diversity of NVIDIA hardware, continuously evolving to accommodate new - features and instructions. For example, CUB reductions and prefix scans employ - warp-shuffle on Kepler GPUs. Code should be recompiled rather than hand-ported. + +-# High performance. CUB simplifies high-performance program and kernel + development by taking care to implement the state-of-the-art in parallel algorithms.

+ +-# Performance portability. + CUB primitives are specialized to match the diversity of NVIDIA hardware, continuously + evolving to accommodate new architecture-specific features and instructions. And + because CUB's device-wide primitives are implemented using flexible block-wide and + warp-wide collectives, we are able to performance-tune them to match the processor + resources provided by each CUDA processor architecture. As a result, our CUB + implementations demonstrate much better performance-portability when compared to more + traditional, rigidly-coded parallel libraries such + as [Thrust](http://thrust.github.com/):



+ -# Simplicity of performance tuning: - - Variant tuning. Most CUB primitives support alternative algorithmic + - Resource utilization. CUB primitives allow developers to quickly + change grain sizes (threads per block, items per thread, etc.) to best match + the processor resources of their target architecture + - Variant tuning. Most CUB primitives support alternative algorithmic strategies. For example, cub::BlockHistogram is parameterized to implement either an atomic-based approach or a sorting-based approach. (The latter provides uniform performance regardless of input distribution.) - - Kernel+library co-optimization. Most CUB primitives support arbitrary - granularity (threads per block, items per thread, etc.). When the enclosing kernel - is similarly parameterizable, a configuration can be found that optimally - accommodates their combined register and shared memory pressure. + - Co-optimization. When the enclosing kernel + is similarly parameterizable, a tuning configuration can be found that optimally + accommodates their combined register and shared memory pressure.

+ -# Robustness and durability. CUB just works. CUB primitives are designed to function properly for arbitrary data types and widths of parallelism (not just for the built-in C++ types or for powers-of-two threads - per block). + per block).

+ +-# Reduced maintenance burden. CUB provides a SIMT software abstraction layer + over the diversity of CUDA hardware. With CUB, applications can enjoy + performance-portability without intensive and costly rewriting or porting efforts.

+ -# A path for language evolution. CUB primitives are designed to easily accommodate new features in the CUDA programming model, e.g., thread - subgroups and named barriers, dynamic shared memory allocators, etc. + subgroups and named barriers, dynamic shared memory allocators, etc.

-\section sec4 (4) How do CUB collectives work? +\section sec5 (5) How do CUB collectives work? \par Four programming idioms are central to the design of CUB: @@ -259,7 +280,7 @@ Four programming idioms are central to the design of CUB: configuration can be determined that best accommodates the combined behavior and resource consumption of all primitives within the kernel. -\subsection sec4sec1 4.1 Generic programming +\subsection sec5sec1 5.1 Generic programming \par We use template parameters to specialize CUB primitives for the particular problem setting at hand. Until compile time, CUB primitives are not bound @@ -270,7 +291,7 @@ to any particular: - Underlying processor (special instructions, warp size, rules for bank conflicts, etc.) - Tuning configuration (e.g., latency vs. throughput, algorithm selection, etc.) -\subsection sec4sec2 4.2 Reflective class interfaces +\subsection sec5sec2 5.2 Reflective class interfaces \par Unlike traditional function-oriented interfaces, CUB exposes its collective primitives as templated C++ classes. The resource requirements for a specific @@ -316,7 +337,7 @@ This allows CUB types to easily accommodate new programming model features (e.g., named barriers, memory allocators, etc.) without incurring a combinatorial growth of interface methods. -\subsection sec4sec3 4.3 Flexible data arrangement across threads +\subsection sec5sec3 5.3 Flexible data arrangement across threads \par CUDA kernels are often designed such that each thread block is assigned a segment of data items for processing. @@ -380,7 +401,7 @@ The benefits of processing multiple items per thread (a.k.a., register block Finally, cub::BlockExchange provides operations for converting between blocked and striped arrangements. -\subsection sec4sec4 4.4 Static tuning and co-tuning +\subsection sec5sec4 5.4 Static tuning and co-tuning \par This style of flexible interface simplifies performance tuning. Most CUB primitives support alternative algorithmic strategies that can be @@ -401,7 +422,7 @@ parameterized, the coupled CUB primitives adjust accordingly. This enables autotuners to search for a single configuration that maximizes the performance of the entire kernel for a given set of hardware resources. -\section sec5 (5) How do I get started using CUB? +\section sec6 (6) How do I get started using CUB? \par CUB is implemented as a C++ header library. There is no need to build CUB @@ -414,11 +435,14 @@ separately. To use CUB primitives in your code, simply: specifying a \p -I include-path flag to reference the location of the CUB header library. -\section sec6 (6) How is CUB different than Thrust? - \par -CUB and [Thrust](http://thrust.github.com/) have some -similarities in that they both provide device-wide primitives for CUDA. +We also have collection of simple [CUB example programs] (examples.html) + +\section sec7 (7) How is CUB different than Thrust and Modern GPU? + +\par CUB and Thrust +CUB and [Thrust](http://thrust.github.com/) share some +similarities in that they both provide similar device-wide primitives for CUDA. However, they target different abstraction layers for parallel computing. Thrust abstractions are agnostic of any particular parallel framework (e.g., CUDA, TBB, OpenMP, sequential CPU, etc.). While Thrust has a "backend" @@ -437,11 +461,38 @@ project arose out of a maintenance need to achieve better performance-portabilit within Thrust by using reusable block-wide primitives to reduce maintenance and tuning effort. -\section sec7 (7) Recent News +\par CUB and Modern GPU +CUB and [Modern GPU](http://nvlabs.github.io/moderngpu/) also +share some similarities in that they both implement similar device-wide primitives for CUDA. +However, they serve different purposes for the CUDA programming community. MGPU +is a pedagogical tool for high-performance GPU computing, providing clear and concise +exemplary code and accompanying commentary. It serves as an excellent source of +educational, tutorial, CUDA-by-example material. The MGPU source code is intended +to be read and studied, and often favors simplicity at the expense of portability and +flexibility. + +\par +CUB, on the other hand, is a production-quality library whose sources are complicated +by support for every version of CUDA architecture, and is validated by an extensive +suite of regression tests. Although well-documented, the CUB source text is verbose +and relies heavily on C++ template metaprogramming for situational specialization. + +\par +CUB and MGPU are complementary in that MGPU serves as an excellent descriptive source +for many of the algorithmic techniques used by CUB. + +\section sec8 (8) Recent News \par + +
+02/25/2014
+[CUB v1.0.2](https://github.com/NVlabs/cub/archive/1.0.2.zip) +
+- See the [change-log](CHANGE_LOG.TXT) for further details +
12/11/2013
[CUB v1.1.1](https://github.com/NVlabs/cub/archive/1.1.1.zip) @@ -513,13 +564,13 @@ tuning effort.
-\section sec8 (8) Contributors +\section sec9 (9) Contributors \par CUB is developed as an open-source project by [NVIDIA Research](http://research.nvidia.com). The primary contributor is [Duane Merrill](http://github.com/dumerrill). -\section sec9 (9) Open Source License +\section sec10 (10) Open Source License \par CUB is available under the "New BSD" open-source license: @@ -527,7 +578,7 @@ CUB is available under the "New BSD" open-source license: \par \code Copyright (c) 2011, Duane Merrill. All rights reserved. -Copyright (c) 2011-2013, NVIDIA CORPORATION. All rights reserved. +Copyright (c) 2011-2014, NVIDIA CORPORATION. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: diff --git a/examples/block/Makefile b/examples/block/Makefile index fe6612e26e..02f4257d71 100644 --- a/examples/block/Makefile +++ b/examples/block/Makefile @@ -1,6 +1,6 @@ #/****************************************************************************** # * Copyright (c) 2011, Duane Merrill. All rights reserved. -# * Copyright (c) 2011-2013, NVIDIA CORPORATION. All rights reserved. +# * Copyright (c) 2011-2014, NVIDIA CORPORATION. All rights reserved. # * # * Redistribution and use in source and binary forms, with or without # * modification, are permitted provided that the following conditions are met: diff --git a/examples/block/example_block_radix_sort.cu b/examples/block/example_block_radix_sort.cu index 180040b7ed..9d8f211621 100644 --- a/examples/block/example_block_radix_sort.cu +++ b/examples/block/example_block_radix_sort.cu @@ -1,6 +1,6 @@ /****************************************************************************** * Copyright (c) 2011, Duane Merrill. All rights reserved. - * Copyright (c) 2011-2013, NVIDIA CORPORATION. All rights reserved. + * Copyright (c) 2011-2014, NVIDIA CORPORATION. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: diff --git a/examples/block/example_block_reduce.cu b/examples/block/example_block_reduce.cu index 251956bc1f..0e73876726 100644 --- a/examples/block/example_block_reduce.cu +++ b/examples/block/example_block_reduce.cu @@ -1,6 +1,6 @@ /****************************************************************************** * Copyright (c) 2011, Duane Merrill. All rights reserved. - * Copyright (c) 2011-2013, NVIDIA CORPORATION. All rights reserved. + * Copyright (c) 2011-2014, NVIDIA CORPORATION. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: diff --git a/examples/block/example_block_scan.cu b/examples/block/example_block_scan.cu index a91821b562..45e7789fdc 100644 --- a/examples/block/example_block_scan.cu +++ b/examples/block/example_block_scan.cu @@ -1,6 +1,6 @@ /****************************************************************************** * Copyright (c) 2011, Duane Merrill. All rights reserved. - * Copyright (c) 2011-2013, NVIDIA CORPORATION. All rights reserved. + * Copyright (c) 2011-2014, NVIDIA CORPORATION. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: diff --git a/examples/block/experimental/example_block_tridiagonal_solve.cu b/examples/block/experimental/example_block_tridiagonal_solve.cu index a7ad6bf864..57b2bc694c 100644 --- a/examples/block/experimental/example_block_tridiagonal_solve.cu +++ b/examples/block/experimental/example_block_tridiagonal_solve.cu @@ -1,6 +1,6 @@ /****************************************************************************** * Copyright (c) 2011, Duane Merrill. All rights reserved. - * Copyright (c) 2011-2013, NVIDIA CORPORATION. All rights reserved. + * Copyright (c) 2011-2014, NVIDIA CORPORATION. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: diff --git a/examples/device/Makefile b/examples/device/Makefile index af758ceedf..47df1b7a1b 100644 --- a/examples/device/Makefile +++ b/examples/device/Makefile @@ -1,6 +1,6 @@ #/****************************************************************************** # * Copyright (c) 2011, Duane Merrill. All rights reserved. -# * Copyright (c) 2011-2013, NVIDIA CORPORATION. All rights reserved. +# * Copyright (c) 2011-2014, NVIDIA CORPORATION. All rights reserved. # * # * Redistribution and use in source and binary forms, with or without # * modification, are permitted provided that the following conditions are met: diff --git a/examples/device/example_device_histogram.cu b/examples/device/example_device_histogram.cu index b0e4e4c70e..e7cda08899 100644 --- a/examples/device/example_device_histogram.cu +++ b/examples/device/example_device_histogram.cu @@ -1,6 +1,6 @@ /****************************************************************************** * Copyright (c) 2011, Duane Merrill. All rights reserved. - * Copyright (c) 2011-2013, NVIDIA CORPORATION. All rights reserved. + * Copyright (c) 2011-2014, NVIDIA CORPORATION. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: diff --git a/examples/device/example_device_partition_flagged.cu b/examples/device/example_device_partition_flagged.cu index 2746f6a084..125749d02a 100644 --- a/examples/device/example_device_partition_flagged.cu +++ b/examples/device/example_device_partition_flagged.cu @@ -1,6 +1,6 @@ /****************************************************************************** * Copyright (c) 2011, Duane Merrill. All rights reserved. - * Copyright (c) 2011-2013, NVIDIA CORPORATION. All rights reserved. + * Copyright (c) 2011-2014, NVIDIA CORPORATION. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: diff --git a/examples/device/example_device_partition_if.cu b/examples/device/example_device_partition_if.cu index 1583b467c9..c53e90213a 100644 --- a/examples/device/example_device_partition_if.cu +++ b/examples/device/example_device_partition_if.cu @@ -1,6 +1,6 @@ /****************************************************************************** * Copyright (c) 2011, Duane Merrill. All rights reserved. - * Copyright (c) 2011-2013, NVIDIA CORPORATION. All rights reserved. + * Copyright (c) 2011-2014, NVIDIA CORPORATION. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: diff --git a/examples/device/example_device_radix_sort.cu b/examples/device/example_device_radix_sort.cu index a4ba6f2bab..04b604449c 100644 --- a/examples/device/example_device_radix_sort.cu +++ b/examples/device/example_device_radix_sort.cu @@ -1,6 +1,6 @@ /****************************************************************************** * Copyright (c) 2011, Duane Merrill. All rights reserved. - * Copyright (c) 2011-2013, NVIDIA CORPORATION. All rights reserved. + * Copyright (c) 2011-2014, NVIDIA CORPORATION. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: diff --git a/examples/device/example_device_reduce.cu b/examples/device/example_device_reduce.cu index eac2b53438..9b3d4863fb 100644 --- a/examples/device/example_device_reduce.cu +++ b/examples/device/example_device_reduce.cu @@ -1,6 +1,6 @@ /****************************************************************************** * Copyright (c) 2011, Duane Merrill. All rights reserved. - * Copyright (c) 2011-2013, NVIDIA CORPORATION. All rights reserved. + * Copyright (c) 2011-2014, NVIDIA CORPORATION. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: diff --git a/examples/device/example_device_scan.cu b/examples/device/example_device_scan.cu index 43edd1193a..f7a89c7ed0 100644 --- a/examples/device/example_device_scan.cu +++ b/examples/device/example_device_scan.cu @@ -1,6 +1,6 @@ /****************************************************************************** * Copyright (c) 2011, Duane Merrill. All rights reserved. - * Copyright (c) 2011-2013, NVIDIA CORPORATION. All rights reserved. + * Copyright (c) 2011-2014, NVIDIA CORPORATION. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: diff --git a/examples/device/example_device_select_flagged.cu b/examples/device/example_device_select_flagged.cu index dfe9d09c49..89f9c083ec 100644 --- a/examples/device/example_device_select_flagged.cu +++ b/examples/device/example_device_select_flagged.cu @@ -1,6 +1,6 @@ /****************************************************************************** * Copyright (c) 2011, Duane Merrill. All rights reserved. - * Copyright (c) 2011-2013, NVIDIA CORPORATION. All rights reserved. + * Copyright (c) 2011-2014, NVIDIA CORPORATION. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: diff --git a/examples/device/example_device_select_if.cu b/examples/device/example_device_select_if.cu index 9333960191..ee8437a2d8 100644 --- a/examples/device/example_device_select_if.cu +++ b/examples/device/example_device_select_if.cu @@ -1,6 +1,6 @@ /****************************************************************************** * Copyright (c) 2011, Duane Merrill. All rights reserved. - * Copyright (c) 2011-2013, NVIDIA CORPORATION. All rights reserved. + * Copyright (c) 2011-2014, NVIDIA CORPORATION. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: diff --git a/examples/device/example_device_select_unique.cu b/examples/device/example_device_select_unique.cu index 4b88f6c188..a7dd09a342 100644 --- a/examples/device/example_device_select_unique.cu +++ b/examples/device/example_device_select_unique.cu @@ -1,6 +1,6 @@ /****************************************************************************** * Copyright (c) 2011, Duane Merrill. All rights reserved. - * Copyright (c) 2011-2013, NVIDIA CORPORATION. All rights reserved. + * Copyright (c) 2011-2014, NVIDIA CORPORATION. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: diff --git a/examples/device/experimental/coo_graph.cuh b/examples/device/experimental/coo_graph.cuh index 6b1cd0cd52..5a92352309 100644 --- a/examples/device/experimental/coo_graph.cuh +++ b/examples/device/experimental/coo_graph.cuh @@ -1,6 +1,6 @@ /****************************************************************************** * Copyright (c) 2011, Duane Merrill. All rights reserved. - * Copyright (c) 2011-2013, NVIDIA CORPORATION. All rights reserved. + * Copyright (c) 2011-2014, NVIDIA CORPORATION. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: diff --git a/examples/device/experimental/example_coo_spmv.cu b/examples/device/experimental/example_coo_spmv.cu index 287abff2fc..0e8d73f818 100644 --- a/examples/device/experimental/example_coo_spmv.cu +++ b/examples/device/experimental/example_coo_spmv.cu @@ -1,6 +1,6 @@ /****************************************************************************** * Copyright (c) 2011, Duane Merrill. All rights reserved. - * Copyright (c) 2011-2013, NVIDIA CORPORATION. All rights reserved. + * Copyright (c) 2011-2014, NVIDIA CORPORATION. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: diff --git a/examples/device/experimental/test_device_seg_reduce.cu b/examples/device/experimental/test_device_seg_reduce.cu index c1072eed56..5b1044db79 100644 --- a/examples/device/experimental/test_device_seg_reduce.cu +++ b/examples/device/experimental/test_device_seg_reduce.cu @@ -1,6 +1,6 @@ /****************************************************************************** * Copyright (c) 2011, Duane Merrill. All rights reserved. - * Copyright (c) 2011-2013, NVIDIA CORPORATION. All rights reserved. + * Copyright (c) 2011-2014, NVIDIA CORPORATION. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: diff --git a/test/Makefile b/test/Makefile index fbcbd52a7b..cdcfd6d9e0 100644 --- a/test/Makefile +++ b/test/Makefile @@ -1,6 +1,6 @@ #/****************************************************************************** # * Copyright (c) 2011, Duane Merrill. All rights reserved. -# * Copyright (c) 2011-2013, NVIDIA CORPORATION. All rights reserved. +# * Copyright (c) 2011-2014, NVIDIA CORPORATION. All rights reserved. # * # * Redistribution and use in source and binary forms, with or without # * modification, are permitted provided that the following conditions are met: diff --git a/test/test_allocator.cu b/test/test_allocator.cu index 9ebbe6eaac..ec67f96778 100644 --- a/test/test_allocator.cu +++ b/test/test_allocator.cu @@ -1,6 +1,6 @@ /****************************************************************************** * Copyright (c) 2011, Duane Merrill. All rights reserved. - * Copyright (c) 2011-2013, NVIDIA CORPORATION. All rights reserved. + * Copyright (c) 2011-2014, NVIDIA CORPORATION. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: diff --git a/test/test_block_histogram.cu b/test/test_block_histogram.cu index 024842fcfd..b16ae5284e 100644 --- a/test/test_block_histogram.cu +++ b/test/test_block_histogram.cu @@ -1,6 +1,6 @@ /****************************************************************************** * Copyright (c) 2011, Duane Merrill. All rights reserved. - * Copyright (c) 2011-2013, NVIDIA CORPORATION. All rights reserved. + * Copyright (c) 2011-2014, NVIDIA CORPORATION. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: diff --git a/test/test_block_load_store.cu b/test/test_block_load_store.cu index 45f0e3c42f..23c65e18ae 100644 --- a/test/test_block_load_store.cu +++ b/test/test_block_load_store.cu @@ -1,6 +1,6 @@ /****************************************************************************** * Copyright (c) 2011, Duane Merrill. All rights reserved. - * Copyright (c) 2011-2013, NVIDIA CORPORATION. All rights reserved. + * Copyright (c) 2011-2014, NVIDIA CORPORATION. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: diff --git a/test/test_block_radix_sort.cu b/test/test_block_radix_sort.cu index 696d3c961f..7ebdc718cf 100644 --- a/test/test_block_radix_sort.cu +++ b/test/test_block_radix_sort.cu @@ -1,6 +1,6 @@ /****************************************************************************** * Copyright (c) 2011, Duane Merrill. All rights reserved. - * Copyright (c) 2011-2013, NVIDIA CORPORATION. All rights reserved. + * Copyright (c) 2011-2014, NVIDIA CORPORATION. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: diff --git a/test/test_block_reduce.cu b/test/test_block_reduce.cu index babc36d94c..430840b7f2 100644 --- a/test/test_block_reduce.cu +++ b/test/test_block_reduce.cu @@ -1,6 +1,6 @@ /****************************************************************************** * Copyright (c) 2011, Duane Merrill. All rights reserved. - * Copyright (c) 2011-2013, NVIDIA CORPORATION. All rights reserved. + * Copyright (c) 2011-2014, NVIDIA CORPORATION. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: diff --git a/test/test_block_scan.cu b/test/test_block_scan.cu index 2652a8831c..f9c44f082c 100644 --- a/test/test_block_scan.cu +++ b/test/test_block_scan.cu @@ -1,6 +1,6 @@ /****************************************************************************** * Copyright (c) 2011, Duane Merrill. All rights reserved. - * Copyright (c) 2011-2013, NVIDIA CORPORATION. All rights reserved. + * Copyright (c) 2011-2014, NVIDIA CORPORATION. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: diff --git a/test/test_device_histogram.cu b/test/test_device_histogram.cu index dfd123b60c..fc2bd03295 100644 --- a/test/test_device_histogram.cu +++ b/test/test_device_histogram.cu @@ -1,6 +1,6 @@ /****************************************************************************** * Copyright (c) 2011, Duane Merrill. All rights reserved. - * Copyright (c) 2011-2013, NVIDIA CORPORATION. All rights reserved. + * Copyright (c) 2011-2014, NVIDIA CORPORATION. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: diff --git a/test/test_device_radix_sort.cu b/test/test_device_radix_sort.cu index be962b2639..2fae096e21 100644 --- a/test/test_device_radix_sort.cu +++ b/test/test_device_radix_sort.cu @@ -1,6 +1,6 @@ /****************************************************************************** * Copyright (c) 2011, Duane Merrill. All rights reserved. - * Copyright (c) 2011-2013, NVIDIA CORPORATION. All rights reserved. + * Copyright (c) 2011-2014, NVIDIA CORPORATION. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: diff --git a/test/test_device_reduce.cu b/test/test_device_reduce.cu index a2b2f1fed2..6e0b58c8b6 100644 --- a/test/test_device_reduce.cu +++ b/test/test_device_reduce.cu @@ -1,6 +1,6 @@ /****************************************************************************** * Copyright (c) 2011, Duane Merrill. All rights reserved. - * Copyright (c) 2011-2013, NVIDIA CORPORATION. All rights reserved. + * Copyright (c) 2011-2014, NVIDIA CORPORATION. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: diff --git a/test/test_device_reduce_by_key.cu b/test/test_device_reduce_by_key.cu index 15481d309e..4d089260e5 100644 --- a/test/test_device_reduce_by_key.cu +++ b/test/test_device_reduce_by_key.cu @@ -1,6 +1,6 @@ /****************************************************************************** * Copyright (c) 2011, Duane Merrill. All rights reserved. - * Copyright (c) 2011-2013, NVIDIA CORPORATION. All rights reserved. + * Copyright (c) 2011-2014, NVIDIA CORPORATION. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: @@ -309,8 +309,16 @@ cudaError_t Dispatch( /** * Simple wrapper kernel to invoke DeviceSelect - * / -template + */ +template < + typename KeyInputIterator, + typename KeyOutputIterator, + typename ValueInputIterator, + typename ValueOutputIterator, + typename NumSegmentsIterator, + typename EqualityOp, + typename ReductionOp, + typename Offset> __global__ void CnpDispatchKernel( int timing_timing_iterations, size_t *d_temp_storage_bytes, @@ -318,10 +326,15 @@ __global__ void CnpDispatchKernel( void *d_temp_storage, size_t temp_storage_bytes, - InputIterator d_in, - OutputIterator d_out, - NumSelectedIterator d_num_segments, + KeyInputIterator d_keys_in, + KeyOutputIterator d_keys_out, + ValueInputIterator d_values_in, + ValueOutputIterator d_values_out, + NumSegmentsIterator d_num_segments, + EqualityOp equality_op, + ReductionOp reduction_op, Offset num_items, + cudaStream_t stream, bool debug_synchronous) { @@ -329,16 +342,26 @@ __global__ void CnpDispatchKernel( *d_cdp_error = cudaErrorNotSupported; #else *d_cdp_error = Dispatch(Int2Type(), timing_timing_iterations, d_temp_storage_bytes, d_cdp_error, - d_temp_storage, temp_storage_bytes, d_in, d_out, d_num_segments, num_items, 0, debug_synchronous); + d_temp_storage, temp_storage_bytes, d_keys_in, d_keys_out, d_values_in, d_values_out, d_num_segments, equality_op, reduction_op, num_items, 0, debug_synchronous); + *d_temp_storage_bytes = temp_storage_bytes; #endif } -/ ** +/** * Dispatch to CDP kernel - * / -template + */ +template < + typename KeyInputIterator, + typename KeyOutputIterator, + typename ValueInputIterator, + typename ValueOutputIterator, + typename NumSegmentsIterator, + typename EqualityOp, + typename ReductionOp, + typename Offset> +__host__ __device__ __forceinline__ cudaError_t Dispatch( Int2Type dispatch_to, int timing_timing_iterations, @@ -347,16 +370,20 @@ cudaError_t Dispatch( void *d_temp_storage, size_t &temp_storage_bytes, - InputIterator d_in, - OutputIterator d_out, - NumSelectedIterator d_num_segments, + KeyInputIterator d_keys_in, + KeyOutputIterator d_keys_out, + ValueInputIterator d_values_in, + ValueOutputIterator d_values_out, + NumSegmentsIterator d_num_segments, + EqualityOp equality_op, + ReductionOp reduction_op, Offset num_items, cudaStream_t stream, bool debug_synchronous) { // Invoke kernel to invoke device-side dispatch CnpDispatchKernel<<<1,1>>>(timing_timing_iterations, d_temp_storage_bytes, d_cdp_error, - d_temp_storage, temp_storage_bytes, d_in, d_out, d_num_segments, num_items, debug_synchronous); + d_temp_storage, temp_storage_bytes, d_keys_in, d_keys_out, d_values_in, d_values_out, d_num_segments, equality_op, reduction_op, num_items, 0, debug_synchronous); // Copy out temp_storage_bytes CubDebugExit(cudaMemcpy(&temp_storage_bytes, d_temp_storage_bytes, sizeof(size_t) * 1, cudaMemcpyDeviceToHost)); @@ -367,7 +394,7 @@ cudaError_t Dispatch( return retval; } -*/ + //--------------------------------------------------------------------- // Test generation diff --git a/test/test_device_scan.cu b/test/test_device_scan.cu index 33e0fc12cf..221746a7f5 100644 --- a/test/test_device_scan.cu +++ b/test/test_device_scan.cu @@ -1,6 +1,6 @@ /****************************************************************************** * Copyright (c) 2011, Duane Merrill. All rights reserved. - * Copyright (c) 2011-2013, NVIDIA CORPORATION. All rights reserved. + * Copyright (c) 2011-2014, NVIDIA CORPORATION. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: diff --git a/test/test_device_select_flagged.cu b/test/test_device_select_flagged.cu index 7d60fc6f99..6da5db1765 100644 --- a/test/test_device_select_flagged.cu +++ b/test/test_device_select_flagged.cu @@ -1,6 +1,6 @@ /****************************************************************************** * Copyright (c) 2011, Duane Merrill. All rights reserved. - * Copyright (c) 2011-2013, NVIDIA CORPORATION. All rights reserved. + * Copyright (c) 2011-2014, NVIDIA CORPORATION. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: diff --git a/test/test_device_select_if.cu b/test/test_device_select_if.cu index b17385e0cc..91113894fb 100644 --- a/test/test_device_select_if.cu +++ b/test/test_device_select_if.cu @@ -1,6 +1,6 @@ /****************************************************************************** * Copyright (c) 2011, Duane Merrill. All rights reserved. - * Copyright (c) 2011-2013, NVIDIA CORPORATION. All rights reserved. + * Copyright (c) 2011-2014, NVIDIA CORPORATION. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: diff --git a/test/test_device_select_unique.cu b/test/test_device_select_unique.cu index 0c040988d1..9a2c63789d 100644 --- a/test/test_device_select_unique.cu +++ b/test/test_device_select_unique.cu @@ -1,6 +1,6 @@ /****************************************************************************** * Copyright (c) 2011, Duane Merrill. All rights reserved. - * Copyright (c) 2011-2013, NVIDIA CORPORATION. All rights reserved. + * Copyright (c) 2011-2014, NVIDIA CORPORATION. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: diff --git a/test/test_grid_barrier.cu b/test/test_grid_barrier.cu index fcbce2a161..10a1fe991e 100644 --- a/test/test_grid_barrier.cu +++ b/test/test_grid_barrier.cu @@ -1,6 +1,6 @@ /****************************************************************************** * Copyright (c) 2011, Duane Merrill. All rights reserved. - * Copyright (c) 2011-2013, NVIDIA CORPORATION. All rights reserved. + * Copyright (c) 2011-2014, NVIDIA CORPORATION. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: diff --git a/test/test_iterator.cu b/test/test_iterator.cu index c8ba88bd00..58140a84ac 100644 --- a/test/test_iterator.cu +++ b/test/test_iterator.cu @@ -1,6 +1,6 @@ /****************************************************************************** * Copyright (c) 2011, Duane Merrill. All rights reserved. - * Copyright (c) 2011-2013, NVIDIA CORPORATION. All rights reserved. + * Copyright (c) 2011-2014, NVIDIA CORPORATION. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: diff --git a/test/test_util.h b/test/test_util.h index 08b389bcd7..987c4f1c5e 100644 --- a/test/test_util.h +++ b/test/test_util.h @@ -1,6 +1,6 @@ /****************************************************************************** * Copyright (c) 2011, Duane Merrill. All rights reserved. - * Copyright (c) 2011-2013, NVIDIA CORPORATION. All rights reserved. + * Copyright (c) 2011-2014, NVIDIA CORPORATION. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: diff --git a/test/test_warp_reduce.cu b/test/test_warp_reduce.cu index 2828422cb1..173b2938c6 100644 --- a/test/test_warp_reduce.cu +++ b/test/test_warp_reduce.cu @@ -1,6 +1,6 @@ /****************************************************************************** * Copyright (c) 2011, Duane Merrill. All rights reserved. - * Copyright (c) 2011-2013, NVIDIA CORPORATION. All rights reserved. + * Copyright (c) 2011-2014, NVIDIA CORPORATION. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: diff --git a/test/test_warp_scan.cu b/test/test_warp_scan.cu index f19a730f98..24cfd61d1d 100644 --- a/test/test_warp_scan.cu +++ b/test/test_warp_scan.cu @@ -1,6 +1,6 @@ /****************************************************************************** * Copyright (c) 2011, Duane Merrill. All rights reserved. - * Copyright (c) 2011-2013, NVIDIA CORPORATION. All rights reserved. + * Copyright (c) 2011-2014, NVIDIA CORPORATION. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: diff --git a/tune/Makefile b/tune/Makefile index 630c6df67d..51ccde31e6 100644 --- a/tune/Makefile +++ b/tune/Makefile @@ -1,6 +1,6 @@ #/****************************************************************************** # * Copyright (c) 2011, Duane Merrill. All rights reserved. -# * Copyright (c) 2011-2013, NVIDIA CORPORATION. All rights reserved. +# * Copyright (c) 2011-2014, NVIDIA CORPORATION. All rights reserved. # * # * Redistribution and use in source and binary forms, with or without # * modification, are permitted provided that the following conditions are met: diff --git a/tune/tune_device_reduce.cu b/tune/tune_device_reduce.cu index 2180bd1326..f189e88ca7 100644 --- a/tune/tune_device_reduce.cu +++ b/tune/tune_device_reduce.cu @@ -1,6 +1,6 @@ /****************************************************************************** * Copyright (c) 2011, Duane Merrill. All rights reserved. - * Copyright (c) 2011-2013, NVIDIA CORPORATION. All rights reserved. + * Copyright (c) 2011-2014, NVIDIA CORPORATION. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: