A random-access input wrapper for dereferencing array values using a PTX cache load modifier.
More...
template<CacheLoadModifier MODIFIER, typename ValueType, typename OffsetT = ptrdiff_t>
class cub::CacheModifiedInputIterator< MODIFIER, ValueType, OffsetT >
A random-access input wrapper for dereferencing array values using a PTX cache load modifier.
- Overview
- CacheModifiedInputIteratorTis a random-access input iterator that wraps a native device pointer of type
ValueType*
. ValueType
references are made by reading ValueType
values through loads modified by MODIFIER
.
- Can be used to load any data type from memory using PTX cache load modifiers (e.g., "LOAD_LDG", "LOAD_CG", "LOAD_CA", "LOAD_CS", "LOAD_CV", etc.).
- Can be constructed, manipulated, and exchanged within and between host and device functions, but can only be dereferenced within device functions.
- Compatible with Thrust API v1.7 or newer.
- Snippet
- The code snippet below illustrates the use of
CacheModifiedInputIteratorTto
dereference a device array of double using the "ldg" PTX load modifier (i.e., load values through texture cache).
#include <cub/cub.cuh>
double *d_in;
printf("%f\n", itr[0]);
printf("%f\n", itr[1]);
printf("%f\n", itr[6]);
- Template Parameters
-
CacheLoadModifier | The cub::CacheLoadModifier to use when accessing data |
ValueType | The value type of this iterator |
OffsetT | The difference type of this iterator (Default: ptrdiff_t ) |
Definition at line 107 of file cache_modified_input_iterator.cuh.