Thrust Integration

group Thrust Integrations

Typedefs

template<typename T>
using device_vector = thrust::device_vector<T, rmm::mr::thrust_allocator<T>>

Alias for a thrust::device_vector that uses RMM for memory allocation.

using thrust_exec_policy_t = thrust::detail::execute_with_allocator<mr::thrust_allocator<char>, thrust::cuda_cub::execute_on_stream_base>

Synchronous execution policy for allocations using Thrust.

using thrust_exec_policy_nosync_t = thrust::detail::execute_with_allocator<mr::thrust_allocator<char>, thrust::cuda_cub::execute_on_stream_nosync_base>

Asynchronous execution policy for allocations using Thrust.

class exec_policy : public thrust_exec_policy_t
#include <exec_policy.hpp>

Helper class usable as a Thrust CUDA execution policy that uses RMM for temporary memory allocation on the specified stream.

Public Functions

explicit exec_policy(cuda_stream_view stream = cuda_stream_default, device_async_resource_ref mr = mr::get_current_device_resource_ref())

Construct a new execution policy object.

Parameters:
  • stream – The stream on which to allocate temporary memory

  • mr – The resource to use for allocating temporary memory

class exec_policy_nosync : public thrust_exec_policy_nosync_t
#include <exec_policy.hpp>

Helper class usable as a Thrust CUDA execution policy that uses RMM for temporary memory allocation on the specified stream and which allows the Thrust backend to skip stream synchronizations that are not required for correctness.

Public Functions

explicit exec_policy_nosync(cuda_stream_view stream = cuda_stream_default, device_async_resource_ref mr = mr::get_current_device_resource_ref())

Construct a new execution policy object.

Parameters:
  • stream – The stream on which to allocate temporary memory

  • mr – The resource to use for allocating temporary memory