Move RuntimeDeviceTracker to vtkm::cont

Before it was in the vtkm::cont::internal namespace. However, we expect
to be using this feature quite a bit more as we want VTK-m to handle
multiple devices effectively (as in, just figure it out and go).
This commit is contained in:
Kenneth Moreland 2017-02-22 13:33:52 -07:00
parent d3eafe4b26
commit b9d3206ea6
13 changed files with 34 additions and 36 deletions

@ -64,6 +64,7 @@ set(headers
ErrorInternal.h
Field.h
RuntimeDeviceInformation.h
RuntimeDeviceTracker.h
Storage.h
StorageBasic.h
StorageImplicit.h

@ -17,8 +17,8 @@
// Laboratory (LANL), the U.S. Government retains certain rights in
// this software.
//============================================================================
#ifndef vtk_m_cont_internal_RuntimeDeviceTracker_h
#define vtk_m_cont_internal_RuntimeDeviceTracker_h
#ifndef vtk_m_cont_RuntimeDeviceTracker_h
#define vtk_m_cont_RuntimeDeviceTracker_h
#include <vtkm/cont/ErrorBadAllocation.h>
#include <vtkm/cont/RuntimeDeviceInformation.h>
@ -32,7 +32,6 @@
namespace vtkm {
namespace cont {
namespace internal {
/// A class that can be used to determine if a given device adapter
/// is supported on the current machine at runtime. This is a more
@ -117,7 +116,6 @@ private:
};
}
}
} // namespace vtkm::cont::internal
} // namespace vtkm::cont
#endif //vtk_m_filter_internal_RuntimeDeviceTracker_h
#endif //vtk_m_filter_RuntimeDeviceTracker_h

@ -25,7 +25,7 @@
#include <vtkm/cont/ErrorBadType.h>
#include <vtkm/cont/ErrorBadValue.h>
#include <vtkm/cont/internal/RuntimeDeviceTracker.h>
#include <vtkm/cont/RuntimeDeviceTracker.h>
namespace vtkm {
namespace cont {
@ -39,7 +39,7 @@ template<typename Functor, typename Device>
struct TryExecuteRunIfValid<Functor, Device, false>
{
VTKM_CONT
static bool Run(Functor &, vtkm::cont::internal::RuntimeDeviceTracker &) {
static bool Run(Functor &, vtkm::cont::RuntimeDeviceTracker &) {
return false;
}
};
@ -51,7 +51,7 @@ struct TryExecuteRunIfValid<Functor, Device, true>
VTKM_CONT
static bool Run(Functor &functor,
vtkm::cont::internal::RuntimeDeviceTracker &tracker)
vtkm::cont::RuntimeDeviceTracker &tracker)
{
if (tracker.CanRunOn(Device()))
{
@ -104,13 +104,13 @@ struct TryExecuteImpl
// Warning, these are a references. Make sure referenced objects do not go
// out of scope.
FunctorType &Functor;
vtkm::cont::internal::RuntimeDeviceTracker &Tracker;
vtkm::cont::RuntimeDeviceTracker &Tracker;
bool Success;
VTKM_CONT
TryExecuteImpl(FunctorType &functor,
vtkm::cont::internal::RuntimeDeviceTracker &tracker)
vtkm::cont::RuntimeDeviceTracker &tracker)
: Functor(functor), Tracker(tracker), Success(false) { }
template<typename Device>
@ -159,7 +159,7 @@ private:
template<typename Functor, typename DeviceList>
VTKM_CONT
bool TryExecute(const Functor &functor,
vtkm::cont::internal::RuntimeDeviceTracker &tracker,
vtkm::cont::RuntimeDeviceTracker &tracker,
DeviceList)
{
detail::TryExecuteImpl<const Functor> internals(functor, tracker);
@ -169,7 +169,7 @@ bool TryExecute(const Functor &functor,
template<typename Functor, typename DeviceList>
VTKM_CONT
bool TryExecute(Functor &functor,
vtkm::cont::internal::RuntimeDeviceTracker &tracker,
vtkm::cont::RuntimeDeviceTracker &tracker,
DeviceList)
{
detail::TryExecuteImpl<Functor> internals(functor, tracker);
@ -180,14 +180,14 @@ template<typename Functor, typename DeviceList>
VTKM_CONT
bool TryExecute(const Functor &functor, DeviceList)
{
vtkm::cont::internal::RuntimeDeviceTracker tracker;
vtkm::cont::RuntimeDeviceTracker tracker;
return vtkm::cont::TryExecute(functor, tracker, DeviceList());
}
template<typename Functor, typename DeviceList>
VTKM_CONT
bool TryExecute(Functor &functor, DeviceList)
{
vtkm::cont::internal::RuntimeDeviceTracker tracker;
vtkm::cont::RuntimeDeviceTracker tracker;
return vtkm::cont::TryExecute(functor, tracker, DeviceList());
}
template<typename Functor>

@ -33,7 +33,6 @@ set(headers
DynamicTransform.h
FunctorsGeneral.h
IteratorFromArrayPortal.h
RuntimeDeviceTracker.h
SimplePolymorphicContainer.h
StorageError.h
)

@ -25,7 +25,7 @@
#include <vtkm/cont/DynamicCellSet.h>
#include <vtkm/cont/CoordinateSystem.h>
#include <vtkm/cont/Field.h>
#include <vtkm/cont/internal/RuntimeDeviceTracker.h>
#include <vtkm/cont/RuntimeDeviceTracker.h>
#include <vtkm/filter/PolicyBase.h>
#include <vtkm/filter/ResultDataSet.h>
@ -90,7 +90,7 @@ private:
std::string OutputFieldName;
vtkm::Id CellSetIndex;
vtkm::Id CoordinateSystemIndex;
vtkm::cont::internal::RuntimeDeviceTracker Tracker;
vtkm::cont::RuntimeDeviceTracker Tracker;
};
}

@ -25,7 +25,7 @@
#include <vtkm/cont/DynamicCellSet.h>
#include <vtkm/cont/CoordinateSystem.h>
#include <vtkm/cont/Field.h>
#include <vtkm/cont/internal/RuntimeDeviceTracker.h>
#include <vtkm/cont/RuntimeDeviceTracker.h>
#include <vtkm/filter/PolicyBase.h>
#include <vtkm/filter/ResultDataSet.h>
@ -117,7 +117,7 @@ private:
std::string OutputFieldName;
vtkm::Id CellSetIndex;
vtkm::Id CoordinateSystemIndex;
vtkm::cont::internal::RuntimeDeviceTracker Tracker;
vtkm::cont::RuntimeDeviceTracker Tracker;
};
}

@ -24,7 +24,7 @@
#include <vtkm/cont/DataSet.h>
#include <vtkm/cont/CoordinateSystem.h>
#include <vtkm/cont/Field.h>
#include <vtkm/cont/internal/RuntimeDeviceTracker.h>
#include <vtkm/cont/RuntimeDeviceTracker.h>
#include <vtkm/filter/PolicyBase.h>
#include <vtkm/filter/ResultField.h>
@ -88,7 +88,7 @@ private:
const vtkm::filter::PolicyBase<DerivedPolicy>& policy);
std::string OutputFieldName;
vtkm::cont::internal::RuntimeDeviceTracker Tracker;
vtkm::cont::RuntimeDeviceTracker Tracker;
};
}

@ -23,7 +23,7 @@
#include <vtkm/cont/DataSet.h>
#include <vtkm/cont/TryExecute.h>
#include <vtkm/cont/internal/DeviceAdapterTag.h>
#include <vtkm/cont/internal/RuntimeDeviceTracker.h>
#include <vtkm/cont/RuntimeDeviceTracker.h>
#include <vtkm/filter/FieldMetadata.h>
#include <vtkm/filter/PolicyBase.h>
@ -41,7 +41,7 @@ struct ResolveFieldTypeAndExecute
const vtkm::cont::DataSet &InputData;
const vtkm::filter::FieldMetadata& Metadata;
const vtkm::filter::PolicyBase<DerivedPolicy>& Policy;
vtkm::cont::internal::RuntimeDeviceTracker& Tracker;
vtkm::cont::RuntimeDeviceTracker& Tracker;
ResultType& Result;
ResolveFieldTypeAndExecute(
@ -49,7 +49,7 @@ struct ResolveFieldTypeAndExecute
const vtkm::cont::DataSet &inputData,
const vtkm::filter::FieldMetadata& fieldMeta,
const vtkm::filter::PolicyBase<DerivedPolicy>& policy,
vtkm::cont::internal::RuntimeDeviceTracker& tracker,
vtkm::cont::RuntimeDeviceTracker& tracker,
ResultType& result):
DerivedClass(derivedClass),
InputData(inputData),

@ -23,7 +23,7 @@
#include <vtkm/cont/DataSet.h>
#include <vtkm/cont/TryExecute.h>
#include <vtkm/cont/internal/DeviceAdapterTag.h>
#include <vtkm/cont/internal/RuntimeDeviceTracker.h>
#include <vtkm/cont/RuntimeDeviceTracker.h>
#include <vtkm/filter/FieldMetadata.h>
#include <vtkm/filter/PolicyBase.h>
@ -48,7 +48,7 @@ struct ResolveFieldTypeAndMap
vtkm::filter::ResultDataSet& InputResult;
const vtkm::filter::FieldMetadata& Metadata;
const vtkm::filter::PolicyBase<DerivedPolicy>& Policy;
vtkm::cont::internal::RuntimeDeviceTracker& Tracker;
vtkm::cont::RuntimeDeviceTracker& Tracker;
bool& RanProperly;
@ -56,7 +56,7 @@ struct ResolveFieldTypeAndMap
vtkm::filter::ResultDataSet& inResult,
const vtkm::filter::FieldMetadata& fieldMeta,
const vtkm::filter::PolicyBase<DerivedPolicy>& policy,
vtkm::cont::internal::RuntimeDeviceTracker& tracker,
vtkm::cont::RuntimeDeviceTracker& tracker,
bool& ran):
DerivedClass(derivedClass),
InputResult(inResult),

@ -20,8 +20,8 @@
#include <vtkm/rendering/MapperRayTracer.h>
#include <vtkm/cont/RuntimeDeviceTracker.h>
#include <vtkm/cont/TryExecute.h>
#include <vtkm/cont/internal/RuntimeDeviceTracker.h>
#include <vtkm/cont/internal/SimplePolymorphicContainer.h>
#include <vtkm/rendering/CanvasRayTracer.h>
@ -35,7 +35,7 @@ namespace rendering {
struct MapperRayTracer::InternalsType
{
vtkm::rendering::CanvasRayTracer *Canvas;
vtkm::cont::internal::RuntimeDeviceTracker DeviceTracker;
vtkm::cont::RuntimeDeviceTracker DeviceTracker;
std::shared_ptr<vtkm::cont::internal::SimplePolymorphicContainerBase>
RayTracerContainer;

@ -20,8 +20,8 @@
#include <vtkm/rendering/MapperVolume.h>
#include <vtkm/cont/RuntimeDeviceTracker.h>
#include <vtkm/cont/TryExecute.h>
#include <vtkm/cont/internal/RuntimeDeviceTracker.h>
#include <vtkm/cont/internal/SimplePolymorphicContainer.h>
#include <vtkm/rendering/CanvasRayTracer.h>
@ -41,7 +41,7 @@ struct MapperVolume::InternalsType
vtkm::rendering::CanvasRayTracer *Canvas;
vtkm::Float32 SampleDistance;
bool CompositeBackground;
vtkm::cont::internal::RuntimeDeviceTracker DeviceTracker;
vtkm::cont::RuntimeDeviceTracker DeviceTracker;
std::shared_ptr<vtkm::cont::internal::SimplePolymorphicContainerBase>
RayTracerContainer;

@ -55,7 +55,7 @@ struct TriangulatorFunctor
void RunTriangulator(const vtkm::cont::DynamicCellSet &cellSet,
vtkm::cont::ArrayHandle<vtkm::Vec<vtkm::Id,4> > &indices,
vtkm::Id &numberOfTriangles,
vtkm::cont::internal::RuntimeDeviceTracker &tracker)
vtkm::cont::RuntimeDeviceTracker &tracker)
{
// TODO: Should the rendering library support policies or some other way to
// configure with custom devices?
@ -75,7 +75,7 @@ void RunTriangulator(const vtkm::cont::DynamicCellSet &cellSet,
vtkm::cont::ArrayHandle<vtkm::Vec<vtkm::Id,4> > &indices,
vtkm::Id &numberOfTriangles)
{
vtkm::cont::internal::RuntimeDeviceTracker tracker;
vtkm::cont::RuntimeDeviceTracker tracker;
vtkm::rendering::internal::RunTriangulator(
cellSet, indices, numberOfTriangles, tracker);
}

@ -24,7 +24,7 @@
#include <vtkm/cont/ArrayHandle.h>
#include <vtkm/cont/DynamicCellSet.h>
#include <vtkm/cont/internal/RuntimeDeviceTracker.h>
#include <vtkm/cont/RuntimeDeviceTracker.h>
namespace vtkm {
namespace rendering {
@ -43,7 +43,7 @@ VTKM_RENDERING_EXPORT
void RunTriangulator(const vtkm::cont::DynamicCellSet &cellSet,
vtkm::cont::ArrayHandle<vtkm::Vec<vtkm::Id,4> > &indices,
vtkm::Id &numberOfTriangles,
vtkm::cont::internal::RuntimeDeviceTracker &tracker);
vtkm::cont::RuntimeDeviceTracker &tracker);
}
}