8f7b0d18be
The buffer class encapsulates the movement of raw C arrays between host and devices. The `Buffer` class itself is not associated with any device. Instead, `Buffer` is used in conjunction with a new templated class named `DeviceAdapterMemoryManager` that can allocate data on a given device and transfer data as necessary. `DeviceAdapterMemoryManager` will eventually replace the more complicated device adapter classes that manage data on a device. The code in `DeviceAdapterMemoryManager` is actually enclosed in virtual methods. This allows us to limit the number of classes that need to be compiled for a device. Rather, the implementation of `DeviceAdapterMemoryManager` is compiled once with whatever compiler is necessary, and then the `RuntimeDeviceInformation` is used to get the correct object instance.
43 lines
1.3 KiB
CMake
43 lines
1.3 KiB
CMake
##============================================================================
|
|
## Copyright (c) Kitware, Inc.
|
|
## All rights reserved.
|
|
## See LICENSE.txt for details.
|
|
##
|
|
## This software is distributed WITHOUT ANY WARRANTY; without even
|
|
## the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
|
|
## PURPOSE. See the above copyright notice for more information.
|
|
##============================================================================
|
|
|
|
set(headers
|
|
ArrayManagerExecutionTBB.h
|
|
AtomicInterfaceExecutionTBB.h
|
|
DeviceAdapterAlgorithmTBB.h
|
|
DeviceAdapterMemoryManagerTBB.h
|
|
DeviceAdapterRuntimeDetectorTBB.h
|
|
DeviceAdapterTagTBB.h
|
|
ExecutionArrayInterfaceBasicTBB.h
|
|
FunctorsTBB.h
|
|
ParallelSortTBB.h
|
|
VirtualObjectTransferTBB.h
|
|
)
|
|
|
|
vtkm_declare_headers(${headers}
|
|
ParallelSortTBB.hxx
|
|
parallel_sort.h
|
|
)
|
|
|
|
#These sources need to always be built
|
|
target_sources(vtkm_cont PRIVATE
|
|
${CMAKE_CURRENT_SOURCE_DIR}/DeviceAdapterRuntimeDetectorTBB.cxx
|
|
)
|
|
|
|
#-----------------------------------------------------------------------------
|
|
if (TARGET vtkm::tbb)
|
|
target_sources(vtkm_cont PRIVATE
|
|
${CMAKE_CURRENT_SOURCE_DIR}/ArrayManagerExecutionTBB.cxx
|
|
${CMAKE_CURRENT_SOURCE_DIR}/DeviceAdapterAlgorithmTBB.cxx
|
|
${CMAKE_CURRENT_SOURCE_DIR}/ExecutionArrayInterfaceBasicTBB.cxx
|
|
${CMAKE_CURRENT_SOURCE_DIR}/ParallelSortTBB.cxx
|
|
)
|
|
endif()
|