mirror of
https://gitlab.kitware.com/vtk/vtk-m
synced 2024-10-08 03:18:58 +00:00
Prefer ArrayHandle::Fill over Algorithm::Fill
This commit is contained in:
parent
f79cf1d5f7
commit
9da66ff320
@ -64,8 +64,7 @@ void BenchAddSeq(benchmark::State& state)
|
|||||||
auto ones = vtkm::cont::make_ArrayHandleConstant<ValueType>(static_cast<ValueType>(1), numWrites);
|
auto ones = vtkm::cont::make_ArrayHandleConstant<ValueType>(static_cast<ValueType>(1), numWrites);
|
||||||
|
|
||||||
vtkm::cont::ArrayHandle<ValueType> atomicArray;
|
vtkm::cont::ArrayHandle<ValueType> atomicArray;
|
||||||
vtkm::cont::Algorithm::Fill(
|
atomicArray.AllocateAndFill(numValues, vtkm::TypeTraits<ValueType>::ZeroInitialization());
|
||||||
atomicArray, vtkm::TypeTraits<ValueType>::ZeroInitialization(), numValues);
|
|
||||||
|
|
||||||
vtkm::cont::Invoker invoker{ device };
|
vtkm::cont::Invoker invoker{ device };
|
||||||
vtkm::cont::Timer timer{ device };
|
vtkm::cont::Timer timer{ device };
|
||||||
@ -115,7 +114,7 @@ void BenchAddSeqBaseline(benchmark::State& state)
|
|||||||
auto ones = vtkm::cont::make_ArrayHandleConstant<ValueType>(static_cast<ValueType>(1), numWrites);
|
auto ones = vtkm::cont::make_ArrayHandleConstant<ValueType>(static_cast<ValueType>(1), numWrites);
|
||||||
|
|
||||||
vtkm::cont::ArrayHandle<ValueType> array;
|
vtkm::cont::ArrayHandle<ValueType> array;
|
||||||
vtkm::cont::Algorithm::Fill(array, vtkm::TypeTraits<ValueType>::ZeroInitialization(), numValues);
|
array.AllocateAndFill(numValues, vtkm::TypeTraits<ValueType>::ZeroInitialization());
|
||||||
|
|
||||||
vtkm::cont::Invoker invoker{ device };
|
vtkm::cont::Invoker invoker{ device };
|
||||||
vtkm::cont::Timer timer{ device };
|
vtkm::cont::Timer timer{ device };
|
||||||
@ -175,8 +174,7 @@ void BenchAddStride(benchmark::State& state)
|
|||||||
auto ones = vtkm::cont::make_ArrayHandleConstant<ValueType>(static_cast<ValueType>(1), numWrites);
|
auto ones = vtkm::cont::make_ArrayHandleConstant<ValueType>(static_cast<ValueType>(1), numWrites);
|
||||||
|
|
||||||
vtkm::cont::ArrayHandle<ValueType> atomicArray;
|
vtkm::cont::ArrayHandle<ValueType> atomicArray;
|
||||||
vtkm::cont::Algorithm::Fill(
|
atomicArray.AllocateAndFill(numValues, vtkm::TypeTraits<ValueType>::ZeroInitialization());
|
||||||
atomicArray, vtkm::TypeTraits<ValueType>::ZeroInitialization(), numValues);
|
|
||||||
|
|
||||||
vtkm::cont::Invoker invoker{ device };
|
vtkm::cont::Invoker invoker{ device };
|
||||||
vtkm::cont::Timer timer{ device };
|
vtkm::cont::Timer timer{ device };
|
||||||
@ -235,7 +233,7 @@ void BenchAddStrideBaseline(benchmark::State& state)
|
|||||||
auto ones = vtkm::cont::make_ArrayHandleConstant<ValueType>(static_cast<ValueType>(1), numWrites);
|
auto ones = vtkm::cont::make_ArrayHandleConstant<ValueType>(static_cast<ValueType>(1), numWrites);
|
||||||
|
|
||||||
vtkm::cont::ArrayHandle<ValueType> array;
|
vtkm::cont::ArrayHandle<ValueType> array;
|
||||||
vtkm::cont::Algorithm::Fill(array, vtkm::TypeTraits<ValueType>::ZeroInitialization(), numValues);
|
array.AllocateAndFill(numValues, vtkm::TypeTraits<ValueType>::ZeroInitialization());
|
||||||
|
|
||||||
vtkm::cont::Invoker invoker{ device };
|
vtkm::cont::Invoker invoker{ device };
|
||||||
vtkm::cont::Timer timer{ device };
|
vtkm::cont::Timer timer{ device };
|
||||||
@ -289,8 +287,7 @@ void BenchCASSeq(benchmark::State& state)
|
|||||||
auto ones = vtkm::cont::make_ArrayHandleConstant<ValueType>(static_cast<ValueType>(1), numWrites);
|
auto ones = vtkm::cont::make_ArrayHandleConstant<ValueType>(static_cast<ValueType>(1), numWrites);
|
||||||
|
|
||||||
vtkm::cont::ArrayHandle<ValueType> atomicArray;
|
vtkm::cont::ArrayHandle<ValueType> atomicArray;
|
||||||
vtkm::cont::Algorithm::Fill(
|
atomicArray.AllocateAndFill(numValues, vtkm::TypeTraits<ValueType>::ZeroInitialization());
|
||||||
atomicArray, vtkm::TypeTraits<ValueType>::ZeroInitialization(), numValues);
|
|
||||||
|
|
||||||
vtkm::cont::Invoker invoker{ device };
|
vtkm::cont::Invoker invoker{ device };
|
||||||
vtkm::cont::Timer timer{ device };
|
vtkm::cont::Timer timer{ device };
|
||||||
@ -342,7 +339,7 @@ void BenchCASSeqBaseline(benchmark::State& state)
|
|||||||
auto ones = vtkm::cont::make_ArrayHandleConstant<ValueType>(static_cast<ValueType>(1), numWrites);
|
auto ones = vtkm::cont::make_ArrayHandleConstant<ValueType>(static_cast<ValueType>(1), numWrites);
|
||||||
|
|
||||||
vtkm::cont::ArrayHandle<ValueType> array;
|
vtkm::cont::ArrayHandle<ValueType> array;
|
||||||
vtkm::cont::Algorithm::Fill(array, vtkm::TypeTraits<ValueType>::ZeroInitialization(), numValues);
|
array.AllocateAndFill(numValues, vtkm::TypeTraits<ValueType>::ZeroInitialization());
|
||||||
|
|
||||||
vtkm::cont::Invoker invoker{ device };
|
vtkm::cont::Invoker invoker{ device };
|
||||||
vtkm::cont::Timer timer{ device };
|
vtkm::cont::Timer timer{ device };
|
||||||
@ -406,8 +403,7 @@ void BenchCASStride(benchmark::State& state)
|
|||||||
auto ones = vtkm::cont::make_ArrayHandleConstant<ValueType>(static_cast<ValueType>(1), numWrites);
|
auto ones = vtkm::cont::make_ArrayHandleConstant<ValueType>(static_cast<ValueType>(1), numWrites);
|
||||||
|
|
||||||
vtkm::cont::ArrayHandle<ValueType> atomicArray;
|
vtkm::cont::ArrayHandle<ValueType> atomicArray;
|
||||||
vtkm::cont::Algorithm::Fill(
|
atomicArray.AllocateAndFill(numValues, vtkm::TypeTraits<ValueType>::ZeroInitialization());
|
||||||
atomicArray, vtkm::TypeTraits<ValueType>::ZeroInitialization(), numValues);
|
|
||||||
|
|
||||||
vtkm::cont::Invoker invoker{ device };
|
vtkm::cont::Invoker invoker{ device };
|
||||||
vtkm::cont::Timer timer{ device };
|
vtkm::cont::Timer timer{ device };
|
||||||
@ -468,7 +464,7 @@ void BenchCASStrideBaseline(benchmark::State& state)
|
|||||||
auto ones = vtkm::cont::make_ArrayHandleConstant<ValueType>(static_cast<ValueType>(1), numWrites);
|
auto ones = vtkm::cont::make_ArrayHandleConstant<ValueType>(static_cast<ValueType>(1), numWrites);
|
||||||
|
|
||||||
vtkm::cont::ArrayHandle<ValueType> array;
|
vtkm::cont::ArrayHandle<ValueType> array;
|
||||||
vtkm::cont::Algorithm::Fill(array, vtkm::TypeTraits<ValueType>::ZeroInitialization(), numValues);
|
array.AllocateAndFill(numValues, vtkm::TypeTraits<ValueType>::ZeroInitialization());
|
||||||
|
|
||||||
vtkm::cont::Invoker invoker{ device };
|
vtkm::cont::Invoker invoker{ device };
|
||||||
vtkm::cont::Timer timer{ device };
|
vtkm::cont::Timer timer{ device };
|
||||||
|
@ -278,7 +278,7 @@ struct DecoratorTests
|
|||||||
auto ah1 = vtkm::cont::make_ArrayHandleCounting(ValueType{ 0 }, ValueType{ 2 }, ARRAY_SIZE);
|
auto ah1 = vtkm::cont::make_ArrayHandleCounting(ValueType{ 0 }, ValueType{ 2 }, ARRAY_SIZE);
|
||||||
auto ah2 = vtkm::cont::make_ArrayHandleConstant(ValueType{ ARRAY_SIZE }, ARRAY_SIZE);
|
auto ah2 = vtkm::cont::make_ArrayHandleConstant(ValueType{ ARRAY_SIZE }, ARRAY_SIZE);
|
||||||
vtkm::cont::ArrayHandle<ValueType> ah3;
|
vtkm::cont::ArrayHandle<ValueType> ah3;
|
||||||
vtkm::cont::Algorithm::Fill(ah3, ValueType{ ARRAY_SIZE / 2 }, ARRAY_SIZE);
|
ah3.AllocateAndFill(ARRAY_SIZE, ValueType{ ARRAY_SIZE / 2 });
|
||||||
|
|
||||||
auto ah3Const = vtkm::cont::make_ArrayHandleConstant(ValueType{ ARRAY_SIZE / 2 }, ARRAY_SIZE);
|
auto ah3Const = vtkm::cont::make_ArrayHandleConstant(ValueType{ ARRAY_SIZE / 2 }, ARRAY_SIZE);
|
||||||
|
|
||||||
|
@ -348,16 +348,16 @@ public:
|
|||||||
auto activePoints = vtkm::cont::make_ArrayHandleBitField(activePointBits);
|
auto activePoints = vtkm::cont::make_ArrayHandleBitField(activePointBits);
|
||||||
|
|
||||||
vtkm::cont::BitField activeCellBits;
|
vtkm::cont::BitField activeCellBits;
|
||||||
vtkm::cont::Algorithm::Fill(activeCellBits, false, numCells);
|
activeCellBits.AllocateAndFill(numCells, false);
|
||||||
auto activeCells = vtkm::cont::make_ArrayHandleBitField(activeCellBits);
|
auto activeCells = vtkm::cont::make_ArrayHandleBitField(activeCellBits);
|
||||||
|
|
||||||
// visited = cells / points that have been corrected.
|
// visited = cells / points that have been corrected.
|
||||||
vtkm::cont::BitField visitedPointBits;
|
vtkm::cont::BitField visitedPointBits;
|
||||||
vtkm::cont::Algorithm::Fill(visitedPointBits, false, numPoints);
|
visitedPointBits.AllocateAndFill(numPoints, false);
|
||||||
auto visitedPoints = vtkm::cont::make_ArrayHandleBitField(visitedPointBits);
|
auto visitedPoints = vtkm::cont::make_ArrayHandleBitField(visitedPointBits);
|
||||||
|
|
||||||
vtkm::cont::BitField visitedCellBits;
|
vtkm::cont::BitField visitedCellBits;
|
||||||
vtkm::cont::Algorithm::Fill(visitedCellBits, false, numCells);
|
visitedCellBits.AllocateAndFill(numCells, false);
|
||||||
auto visitedCells = vtkm::cont::make_ArrayHandleBitField(visitedCellBits);
|
auto visitedCells = vtkm::cont::make_ArrayHandleBitField(visitedCellBits);
|
||||||
|
|
||||||
vtkm::cont::Invoker invoke;
|
vtkm::cont::Invoker invoke;
|
||||||
|
@ -330,7 +330,7 @@ public:
|
|||||||
auto activePoints = vtkm::cont::make_ArrayHandleBitField(activePointBits);
|
auto activePoints = vtkm::cont::make_ArrayHandleBitField(activePointBits);
|
||||||
|
|
||||||
vtkm::cont::BitField activeCellBits;
|
vtkm::cont::BitField activeCellBits;
|
||||||
vtkm::cont::Algorithm::Fill(activeCellBits, false, numCells);
|
activeCellBits.AllocateAndFill(numCells, false);
|
||||||
auto activeCells = vtkm::cont::make_ArrayHandleBitField(activeCellBits);
|
auto activeCells = vtkm::cont::make_ArrayHandleBitField(activeCellBits);
|
||||||
|
|
||||||
// visited = cells / points that have been corrected.
|
// visited = cells / points that have been corrected.
|
||||||
@ -338,7 +338,7 @@ public:
|
|||||||
auto visitedPoints = vtkm::cont::make_ArrayHandleBitField(visitedPointBits);
|
auto visitedPoints = vtkm::cont::make_ArrayHandleBitField(visitedPointBits);
|
||||||
|
|
||||||
vtkm::cont::BitField visitedCellBits;
|
vtkm::cont::BitField visitedCellBits;
|
||||||
vtkm::cont::Algorithm::Fill(visitedCellBits, false, numCells);
|
visitedCellBits.AllocateAndFill(numCells, false);
|
||||||
auto visitedCells = vtkm::cont::make_ArrayHandleBitField(visitedCellBits);
|
auto visitedCells = vtkm::cont::make_ArrayHandleBitField(visitedCellBits);
|
||||||
|
|
||||||
vtkm::cont::ArrayHandle<vtkm::Id> mask; // Allocated as needed
|
vtkm::cont::ArrayHandle<vtkm::Id> mask; // Allocated as needed
|
||||||
|
@ -291,7 +291,7 @@ public:
|
|||||||
auto activePoints = vtkm::cont::make_ArrayHandleBitField(activePointBits);
|
auto activePoints = vtkm::cont::make_ArrayHandleBitField(activePointBits);
|
||||||
|
|
||||||
vtkm::cont::BitField activeCellBits;
|
vtkm::cont::BitField activeCellBits;
|
||||||
vtkm::cont::Algorithm::Fill(activeCellBits, false, numCells);
|
activeCellBits.AllocateAndFill(numCells, false);
|
||||||
auto activeCells = vtkm::cont::make_ArrayHandleBitField(activeCellBits);
|
auto activeCells = vtkm::cont::make_ArrayHandleBitField(activeCellBits);
|
||||||
|
|
||||||
// visited = cells / points that have been corrected.
|
// visited = cells / points that have been corrected.
|
||||||
@ -299,7 +299,7 @@ public:
|
|||||||
auto visitedPoints = vtkm::cont::make_ArrayHandleBitField(visitedPointBits);
|
auto visitedPoints = vtkm::cont::make_ArrayHandleBitField(visitedPointBits);
|
||||||
|
|
||||||
vtkm::cont::BitField visitedCellBits;
|
vtkm::cont::BitField visitedCellBits;
|
||||||
vtkm::cont::Algorithm::Fill(visitedCellBits, false, numCells);
|
visitedCellBits.AllocateAndFill(numCells, false);
|
||||||
auto visitedCells = vtkm::cont::make_ArrayHandleBitField(visitedCellBits);
|
auto visitedCells = vtkm::cont::make_ArrayHandleBitField(visitedCellBits);
|
||||||
|
|
||||||
vtkm::cont::ArrayHandle<vtkm::Id> mask; // Allocated as needed
|
vtkm::cont::ArrayHandle<vtkm::Id> mask; // Allocated as needed
|
||||||
|
@ -173,7 +173,7 @@ struct launchComputePass1
|
|||||||
vtkm::cont::Invoker invoke(device);
|
vtkm::cont::Invoker invoke(device);
|
||||||
metaDataMesh2D = make_metaDataMesh2D(SumYAxis{}, worklet.PointDims);
|
metaDataMesh2D = make_metaDataMesh2D(SumYAxis{}, worklet.PointDims);
|
||||||
|
|
||||||
vtkm::cont::Algorithm::Fill(edgeCases, static_cast<vtkm::UInt8>(FlyingEdges3D::Below));
|
edgeCases.Fill(static_cast<vtkm::UInt8>(FlyingEdges3D::Below));
|
||||||
invoke(worklet, metaDataMesh2D, std::forward<Args>(args)..., edgeCases, inputField);
|
invoke(worklet, metaDataMesh2D, std::forward<Args>(args)..., edgeCases, inputField);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -738,9 +738,8 @@ inline void ContourTreeMesh<FieldType>::MergeWith(ContourTreeMesh<FieldType>& ot
|
|||||||
vtkm::cont::ArrayHandle<vtkm::IdComponent> thisToCombinedSortOrderIsDuplicate;
|
vtkm::cont::ArrayHandle<vtkm::IdComponent> thisToCombinedSortOrderIsDuplicate;
|
||||||
thisToCombinedSortOrderIsDuplicate.Allocate(thisToCombinedSortOrder.GetNumberOfValues());
|
thisToCombinedSortOrderIsDuplicate.Allocate(thisToCombinedSortOrder.GetNumberOfValues());
|
||||||
vtkm::cont::ArrayHandle<vtkm::IdComponent> otherToCombinedSortOrderIsDuplicate;
|
vtkm::cont::ArrayHandle<vtkm::IdComponent> otherToCombinedSortOrderIsDuplicate;
|
||||||
vtkm::cont::Algorithm::Fill(otherToCombinedSortOrderIsDuplicate,
|
otherToCombinedSortOrderIsDuplicate.AllocateAndFill(otherToCombinedSortOrder.GetNumberOfValues(),
|
||||||
vtkm::IdComponent{ 0 },
|
vtkm::IdComponent{ 0 });
|
||||||
otherToCombinedSortOrder.GetNumberOfValues());
|
|
||||||
this->Invoke(contourtree_mesh_inc_ns::FindDuplicateInOtherWorklet{},
|
this->Invoke(contourtree_mesh_inc_ns::FindDuplicateInOtherWorklet{},
|
||||||
thisToCombinedSortOrder,
|
thisToCombinedSortOrder,
|
||||||
otherToCombinedSortOrder,
|
otherToCombinedSortOrder,
|
||||||
|
@ -215,13 +215,10 @@ HierarchicalHyperSweeper<SweepValueType, ContourTreeFieldType>::HierarchicalHype
|
|||||||
, NumOwnedRegularVertices(vtkm::Id{ 0 })
|
, NumOwnedRegularVertices(vtkm::Id{ 0 })
|
||||||
{ // constructor
|
{ // constructor
|
||||||
// Initalize arrays with 0s
|
// Initalize arrays with 0s
|
||||||
vtkm::cont::Algorithm::Fill(
|
this->ValuePrefixSum.AllocateAndFill(this->HierarchicalTree.Supernodes.GetNumberOfValues(), 0);
|
||||||
this->ValuePrefixSum, vtkm::Id{ 0 }, this->HierarchicalTree.Supernodes.GetNumberOfValues());
|
this->TransferTarget.AllocateAndFill(this->HierarchicalTree.Supernodes.GetNumberOfValues(), 0);
|
||||||
vtkm::cont::Algorithm::Fill(
|
this->SortedTransferTarget.AllocateAndFill(this->HierarchicalTree.Supernodes.GetNumberOfValues(),
|
||||||
this->TransferTarget, vtkm::Id{ 0 }, this->HierarchicalTree.Supernodes.GetNumberOfValues());
|
0);
|
||||||
vtkm::cont::Algorithm::Fill(this->SortedTransferTarget,
|
|
||||||
vtkm::Id{ 0 },
|
|
||||||
this->HierarchicalTree.Supernodes.GetNumberOfValues());
|
|
||||||
// Initialize the supersortPermute to the identity
|
// Initialize the supersortPermute to the identity
|
||||||
vtkm::cont::ArrayHandleIndex tempIndexArray(
|
vtkm::cont::ArrayHandleIndex tempIndexArray(
|
||||||
this->HierarchicalTree.Supernodes.GetNumberOfValues());
|
this->HierarchicalTree.Supernodes.GetNumberOfValues());
|
||||||
@ -295,8 +292,7 @@ void HierarchicalHyperSweeper<SweepValueType, ContourTreeFieldType>::InitializeI
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
// initialize the counts to zero.
|
// initialize the counts to zero.
|
||||||
vtkm::cont::Algorithm::Fill(
|
superarcRegularCounts.AllocateAndFill(this->HierarchicalTree.Supernodes.GetNumberOfValues(), 0);
|
||||||
superarcRegularCounts, vtkm::Id{ 0 }, this->HierarchicalTree.Supernodes.GetNumberOfValues());
|
|
||||||
|
|
||||||
// set the count to the Id one off the high end of each range
|
// set the count to the Id one off the high end of each range
|
||||||
Invoke(vtkm::worklet::contourtree_distributed::hierarchical_hyper_sweeper::
|
Invoke(vtkm::worklet::contourtree_distributed::hierarchical_hyper_sweeper::
|
||||||
|
@ -222,8 +222,8 @@ private:
|
|||||||
|
|
||||||
void Prepare()
|
void Prepare()
|
||||||
{
|
{
|
||||||
vtkm::cont::Algorithm::Fill(this->VisitedPointsField, false, this->Coords.GetNumberOfPoints());
|
this->VisitedPointsField.AllocateAndFill(this->Coords.GetNumberOfPoints(), false);
|
||||||
vtkm::cont::Algorithm::Fill(this->VisitedCellsField, false, this->Cells.GetNumberOfCells());
|
this->VisitedCellsField.AllocateAndFill(this->Cells.GetNumberOfCells(), false);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ValidateImpl(vtkm::Id startPtIdx, const NormalType& startRefNormal)
|
void ValidateImpl(vtkm::Id startPtIdx, const NormalType& startRefNormal)
|
||||||
|
@ -44,7 +44,7 @@ vtkm::cont::DataSet GenerateDataSet()
|
|||||||
const auto numCells = ds.GetNumberOfCells();
|
const auto numCells = ds.GetNumberOfCells();
|
||||||
|
|
||||||
vtkm::cont::ArrayHandle<MyNormalT> cellNormals;
|
vtkm::cont::ArrayHandle<MyNormalT> cellNormals;
|
||||||
vtkm::cont::Algorithm::Fill(cellNormals, MyNormalT{ 1., 0., 0. }, numCells);
|
cellNormals.AllocateAndFill(numCells, MyNormalT{ 1., 0., 0. });
|
||||||
|
|
||||||
ds.AddField(vtkm::cont::make_FieldCell("normals", cellNormals));
|
ds.AddField(vtkm::cont::make_FieldCell("normals", cellNormals));
|
||||||
return ds;
|
return ds;
|
||||||
|
Loading…
Reference in New Issue
Block a user