Specify device adapter for array copy in worklet tests
Rob noticed a degridation in performance in some worklet tests when ArrayCopy was added. I hypothesize that this slowdown is doing the array copy with TBB instead of serial in the serial tests. (There have been some checks in the existing code to suggest that some operations in TBB can be slower than serial.) This change forces the array copy to be on the device for which we are testing.
This commit is contained in:
parent
fe028d828a
commit
e149dcf1c1
@ -76,7 +76,7 @@ void TryKeyType(KeyType)
|
||||
|
||||
// Create Keys object
|
||||
vtkm::cont::ArrayHandle<KeyType> sortedKeys;
|
||||
vtkm::cont::ArrayCopy(keysArray, sortedKeys);
|
||||
vtkm::cont::ArrayCopy(keysArray, sortedKeys, VTKM_DEFAULT_DEVICE_ADAPTER_TAG());
|
||||
vtkm::worklet::Keys<KeyType> keys(sortedKeys, VTKM_DEFAULT_DEVICE_ADAPTER_TAG());
|
||||
VTKM_TEST_ASSERT(keys.GetInputRange() == NUM_UNIQUE, "Keys has bad input range.");
|
||||
|
||||
|
@ -72,7 +72,7 @@ void TryKeyType(KeyType)
|
||||
vtkm::cont::ArrayHandle<KeyType> keyArray = vtkm::cont::make_ArrayHandle(keyBuffer, ARRAY_SIZE);
|
||||
|
||||
vtkm::cont::ArrayHandle<KeyType> sortedKeys;
|
||||
vtkm::cont::ArrayCopy(keyArray, sortedKeys);
|
||||
vtkm::cont::ArrayCopy(keyArray, sortedKeys, VTKM_DEFAULT_DEVICE_ADAPTER_TAG());
|
||||
|
||||
vtkm::worklet::Keys<KeyType> keys(sortedKeys, VTKM_DEFAULT_DEVICE_ADAPTER_TAG());
|
||||
VTKM_TEST_ASSERT(keys.GetInputRange() == NUM_UNIQUE, "Keys has bad input range.");
|
||||
|
@ -100,7 +100,7 @@ struct DoStaticTestWorklet
|
||||
vtkm::cont::ArrayHandle<T> outputHandle;
|
||||
vtkm::cont::ArrayHandle<T> inoutHandle;
|
||||
|
||||
vtkm::cont::ArrayCopy(inputHandle, inoutHandle);
|
||||
vtkm::cont::ArrayCopy(inputHandle, inoutHandle, VTKM_DEFAULT_DEVICE_ADAPTER_TAG());
|
||||
|
||||
std::cout << "Create and run dispatcher." << std::endl;
|
||||
vtkm::worklet::DispatcherMapField<WorkletType> dispatcher;
|
||||
@ -144,7 +144,7 @@ struct DoDynamicTestWorklet
|
||||
vtkm::cont::ArrayHandle<T> outputHandle;
|
||||
vtkm::cont::ArrayHandle<T> inoutHandle;
|
||||
|
||||
vtkm::cont::ArrayCopy(inputHandle, inoutHandle);
|
||||
vtkm::cont::ArrayCopy(inputHandle, inoutHandle, VTKM_DEFAULT_DEVICE_ADAPTER_TAG());
|
||||
|
||||
std::cout << "Create and run dispatcher with dynamic arrays." << std::endl;
|
||||
vtkm::worklet::DispatcherMapField<WorkletType> dispatcher;
|
||||
|
@ -136,7 +136,7 @@ void TryKeyType(KeyType)
|
||||
vtkm::cont::ArrayHandle<KeyType> keyArray = vtkm::cont::make_ArrayHandle(keyBuffer, ARRAY_SIZE);
|
||||
|
||||
vtkm::cont::ArrayHandle<KeyType> sortedKeys;
|
||||
vtkm::cont::ArrayCopy(keyArray, sortedKeys);
|
||||
vtkm::cont::ArrayCopy(keyArray, sortedKeys, VTKM_DEFAULT_DEVICE_ADAPTER_TAG());
|
||||
|
||||
vtkm::worklet::Keys<KeyType> keys(sortedKeys, VTKM_DEFAULT_DEVICE_ADAPTER_TAG());
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user