VTK-m  2.0
List of all members
vtkm::cont::ScopedRuntimeDeviceTracker Struct Reference

#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...
 
VTKM_CONT 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...
 
VTKM_CONT 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...
 
VTKM_CONT 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...
 
VTKM_CONT ~ScopedRuntimeDeviceTracker ()
 Destructor is not thread safe. More...
 

Additional Inherited Members

- Public Member Functions inherited from vtkm::cont::RuntimeDeviceTracker
VTKM_CONT ~RuntimeDeviceTracker ()
 
VTKM_CONT bool CanRunOn (DeviceAdapterId deviceId) const
 Returns true if the given device adapter is supported on the current machine. More...
 
VTKM_CONT 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...
 
VTKM_CONT void ReportBadDeviceFailure (vtkm::cont::DeviceAdapterId deviceId, const vtkm::cont::ErrorBadDevice &)
 Report a ErrorBadDevice failure and flag the device as unusable. More...
 
VTKM_CONT void ResetDevice (vtkm::cont::DeviceAdapterId deviceId)
 Reset the tracker for the given device. More...
 
VTKM_CONT void Reset ()
 Reset the tracker to its default state for default devices. More...
 
VTKM_CONT void DisableDevice (DeviceAdapterId deviceId)
 Disable the given device. More...
 
VTKM_CONT void ForceDevice (DeviceAdapterId deviceId)
 Disable all devices except the specified one. More...
 
VTKM_CONT bool GetThreadFriendlyMemAlloc () const
 Get/Set use of thread-friendly memory allocation for a device. More...
 
VTKM_CONT void SetThreadFriendlyMemAlloc (bool state)
 
VTKM_CONT void CopyStateFrom (const vtkm::cont::RuntimeDeviceTracker &tracker)
 Copies the state from the given device. More...
 
VTKM_CONT bool CheckForAbortRequest () const
 
VTKM_CONT void PrintSummary (std::ostream &out) const
 
VTKM_CONT void SetAbortChecker (const std::function< bool()> &func)
 Set/Clear the abort checker functor. More...
 
VTKM_CONT void ClearAbortChecker ()
 Set/Clear the abort checker functor. 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 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 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 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 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 struct was generated from the following file: