| | #include <thrust/device_ptr.h> |
| | #include <thrust/device_malloc.h> |
| | #include <thrust/device_free.h> |
| |
|
| | #include <thrust/sequence.h> |
| | #include <thrust/reduce.h> |
| |
|
| | #include <cassert> |
| | #include <iostream> |
| |
|
| | int main(void) |
| | { |
| | |
| | thrust::device_ptr<int> d_ptr = thrust::device_malloc<int>(10); |
| |
|
| | |
| | thrust::device_ptr<int> first = d_ptr; |
| | thrust::device_ptr<int> last = d_ptr + 10; |
| | std::cout << "device array contains " << (last - first) << " values\n"; |
| | |
| | |
| | thrust::sequence(first, last); |
| | std::cout << "sum of values is " << thrust::reduce(first, last) << "\n"; |
| | |
| | |
| | d_ptr[0] = 10; |
| | d_ptr[1] = 11; |
| | d_ptr[2] = d_ptr[0] + d_ptr[1]; |
| |
|
| | |
| | int * raw_ptr = thrust::raw_pointer_cast(d_ptr); |
| |
|
| | |
| |
|
| | |
| | thrust::device_ptr<int> wrapped_ptr = thrust::device_pointer_cast(raw_ptr); |
| |
|
| | |
| | assert(wrapped_ptr == d_ptr); |
| | (void)wrapped_ptr; |
| |
|
| | |
| | thrust::device_free(d_ptr); |
| |
|
| | return 0; |
| | } |
| |
|
| |
|