00001 /*************************************************************************** 00002 *cr 00003 *cr (C) Copyright 1995-2019 The Board of Trustees of the 00004 *cr University of Illinois 00005 *cr All Rights Reserved 00006 *cr 00007 ***************************************************************************/ 00008 /*************************************************************************** 00009 * RCS INFORMATION: 00010 * 00011 * $RCSfile: CUDASort.h,v $ 00012 * $Author: johns $ $Locker: $ $State: Exp $ 00013 * $Revision: 1.6 $ $Date: 2020/02/26 19:26:47 $ 00014 * 00015 ***************************************************************************/ 00021 #include "ProfileHooks.h" // needed here for GTC profile tests 00022 00023 // force use of either CUB-based back-end implementation instead of 00024 // using Thrust, which is the default. Thrust is shipped with CUDA 00025 // presently, but CUB as-yet, is not. Unless we ship CUB with the 00026 // VMD src, we'll need to retain the ability compile either way 00027 // for a while yet. 00028 #if 0 00029 #define VMDUSECUB 1 00030 #endif 00031 00032 // 00033 // Ascending key-value radix sort 00034 // 00035 template <typename KeyT, typename ValT> 00036 long dev_radix_sort_by_key_tmpsz(KeyT *keys_d, ValT *vals_d, long nitems); 00037 00038 template <typename KeyT, typename ValT> 00039 int dev_radix_sort_by_key(KeyT *keys_d, ValT *vals_d, long nitems, 00040 KeyT *keyswork_d, ValT *valswork_d, 00041 void *sortwork_d, long tsz, 00042 KeyT min_key, KeyT max_key); 00043 00044