VTK-m  2.1
List of all members
vtkm::cont::ScopedRuntimeDeviceTracker Class Reference

A class to create a scoped runtime device tracker object. More...

#include <RuntimeDeviceTracker.h>

Inheritance diagram for vtkm::cont::ScopedRuntimeDeviceTracker:
vtkm::cont::RuntimeDeviceTracker
std::unique_ptr< detail::RuntimeDeviceTrackerInternals > SavedState
 Construct a ScopedRuntimeDeviceTracker associated with the thread, associated with the provided tracker (defaults to current thread's tracker). More...
 
 ScopedRuntimeDeviceTracker (const vtkm::cont::RuntimeDeviceTracker &tracker=GetRuntimeDeviceTracker())
 Construct a ScopedRuntimeDeviceTracker associated with the thread, associated with the provided tracker (defaults to current thread's tracker). More...
 
 ScopedRuntimeDeviceTracker (vtkm::cont::DeviceAdapterId device, RuntimeDeviceTrackerMode mode=RuntimeDeviceTrackerMode::Force, const vtkm::cont::RuntimeDeviceTracker &tracker=GetRuntimeDeviceTracker())
 Use this constructor to modify the state of the device adapters associated with the provided tracker. More...
 
 ScopedRuntimeDeviceTracker (const std::function< bool()> &abortChecker, const vtkm::cont::RuntimeDeviceTracker &tracker=GetRuntimeDeviceTracker())
 Use this constructor to set the abort checker functor for the provided tracker. More...
 
 ~ScopedRuntimeDeviceTracker ()
 Destructor is not thread safe. More...
 

Additional Inherited Members

- Public Member Functions inherited from vtkm::cont::RuntimeDeviceTracker
 ~RuntimeDeviceTracker ()
 
bool CanRunOn (DeviceAdapterId deviceId) const
 Returns true if the given device adapter is supported on the current machine. More...
 
void ReportAllocationFailure (vtkm::cont::DeviceAdapterId deviceId, const vtkm::cont::ErrorBadAllocation &)
 Report a failure to allocate memory on a device, this will flag the device as being unusable for all future invocations. More...
 
void ReportBadDeviceFailure (vtkm::cont::DeviceAdapterId deviceId, const vtkm::cont::ErrorBadDevice &)
 Report a ErrorBadDevice failure and flag the device as unusable. More...
 
void ResetDevice (vtkm::cont::DeviceAdapterId deviceId)
 Reset the tracker for the given device. More...
 
void Reset ()
 Reset the tracker to its default state for default devices. More...
 
void DisableDevice (DeviceAdapterId deviceId)
 Disable the given device. More...
 
void ForceDevice (DeviceAdapterId deviceId)
 Disable all devices except the specified one. More...
 
bool GetThreadFriendlyMemAlloc () const
 Get/Set use of thread-friendly memory allocation for a device. More...
 
void SetThreadFriendlyMemAlloc (bool state)
 Get/Set use of thread-friendly memory allocation for a device. More...
 
void CopyStateFrom (const vtkm::cont::RuntimeDeviceTracker &tracker)
 Copies the state from the given device. More...
 
void SetAbortChecker (const std::function< bool()> &func)
 Set/Clear the abort checker functor. More...
 
void ClearAbortChecker ()
 Set/Clear the abort checker functor. More...
 
bool CheckForAbortRequest () const
 
void PrintSummary (std::ostream &out) const
 Produce a human-readable report on the state of the runtime device tracker. More...
 

Detailed Description

A class to create a scoped runtime device tracker object.

This object captures the state of the per-thread device tracker and will revert any changes applied during its lifetime on destruction.

Constructor & Destructor Documentation

◆ ScopedRuntimeDeviceTracker() [1/3]

vtkm::cont::ScopedRuntimeDeviceTracker::ScopedRuntimeDeviceTracker ( const vtkm::cont::RuntimeDeviceTracker tracker = GetRuntimeDeviceTracker())

Construct a ScopedRuntimeDeviceTracker associated with the thread, associated with the provided tracker (defaults to current thread's tracker).

Any modifications to the ScopedRuntimeDeviceTracker will effect what ever thread the tracker is associated with, which might not be the thread on which the ScopedRuntimeDeviceTracker was constructed.

Constructors are not thread safe

◆ ScopedRuntimeDeviceTracker() [2/3]

vtkm::cont::ScopedRuntimeDeviceTracker::ScopedRuntimeDeviceTracker ( vtkm::cont::DeviceAdapterId  device,
RuntimeDeviceTrackerMode  mode = RuntimeDeviceTrackerMode::Force,
const vtkm::cont::RuntimeDeviceTracker tracker = GetRuntimeDeviceTracker() 
)

Use this constructor to modify the state of the device adapters associated with the provided tracker.

Use mode with device as follows:

'Force' (default)

  • Force-Enable the provided single device adapter
  • Force-Enable all device adapters when using vtkm::cont::DeviceAdaterTagAny 'Enable'
  • Enable the provided single device adapter if it was previously disabled
  • Enable all device adapters that are currently disabled when using vtkm::cont::DeviceAdaterTagAny 'Disable'
  • Disable the provided single device adapter
  • Disable all device adapters when using vtkm::cont::DeviceAdaterTagAny

◆ ScopedRuntimeDeviceTracker() [3/3]

vtkm::cont::ScopedRuntimeDeviceTracker::ScopedRuntimeDeviceTracker ( const std::function< bool()> &  abortChecker,
const vtkm::cont::RuntimeDeviceTracker tracker = GetRuntimeDeviceTracker() 
)

Use this constructor to set the abort checker functor for the provided tracker.

◆ ~ScopedRuntimeDeviceTracker()

vtkm::cont::ScopedRuntimeDeviceTracker::~ScopedRuntimeDeviceTracker ( )

Destructor is not thread safe.

Member Data Documentation

◆ SavedState

std::unique_ptr<detail::RuntimeDeviceTrackerInternals> vtkm::cont::ScopedRuntimeDeviceTracker::SavedState
private

Construct a ScopedRuntimeDeviceTracker associated with the thread, associated with the provided tracker (defaults to current thread's tracker).

Any modifications to the ScopedRuntimeDeviceTracker will effect what ever thread the tracker is associated with, which might not be the thread on which the ScopedRuntimeDeviceTracker was constructed.

Constructors are not thread safe


The documentation for this class was generated from the following file: