|
Peano
|
Cousing to CellData which administers copies on the accelerator. More...
#include <CellData.h>

Public Member Functions | |
| CopyCellDataGPU (const CellData< inType, outType > &cellData, int inputPatchSize, int outputPatchSize, int device=tarch::accelerator::Device::HostDevice, int currentPatchDevice=tarch::accelerator::Device::HostDevice) | |
| Construct a copy object. | |
| void | destroyWithoutCopy () |
| void | copyBackAndDestroy () |
| std::string | toString () const |
Data Fields | |
| inType * | QIn |
| tarch::la::Vector< Dimensions, double > * | cellCentre |
| tarch::la::Vector< Dimensions, double > * | cellSize |
| double * | t |
| double * | dt |
| int * | id |
| const int | numberOfCells |
| const tarch::MemoryLocation | memoryLocation |
| const int | targetDevice |
| outType * | QOut |
| double * | maxEigenvalue |
| inType ** | QInHost |
| outType ** | QOutHost |
| double * | maxEigenvalueHost |
| int | QInStride |
| int | QOutStride |
Cousing to CellData which administers copies on the accelerator.
This is a variant of CellData which also present GPU data. However, this flavour copies all data manually onto the GPU, whereas its parent is a proxy around data. As we copy data over, we can also rearrange all data. From a user point of view, the big difference is that we have to invoke copyBackAndDestroy() manually to eliminate the data on the device:
Copies to the device occur automatically on construction, but copies back must be triggered manually using copyBackAndDestroy().
The OpenMP implementation offers two versions, one using allocations on the device, and another that keeps data on the host. This second version requires explicit maps in the kernel, which do not currently exist. For this reason it is currently not in use.
Definition at line 187 of file CellData.h.
| exahype2::CopyCellDataGPU< inType, outType >::CopyCellDataGPU | ( | const CellData< inType, outType > & | cellData, |
| int | inputPatchSize, | ||
| int | outputPatchSize, | ||
| int | device = tarch::accelerator::Device::HostDevice, |
||
| int | currentPatchDevice = tarch::accelerator::Device::HostDevice |
||
| ) |
Construct a copy object.
| device | Valid device by handling in value greater or equal to 0 or otherwise tarch::accelerator::Device::HostDevice. |
| void exahype2::CopyCellDataGPU< inType, outType >::copyBackAndDestroy | ( | ) |
| void exahype2::CopyCellDataGPU< inType, outType >::destroyWithoutCopy | ( | ) |
| std::string exahype2::CopyCellDataGPU< inType, outType >::toString | ( | ) | const |
| tarch::la::Vector<Dimensions,double>* exahype2::CopyCellDataGPU< inType, outType >::cellCentre |
Definition at line 194 of file CellData.h.
| tarch::la::Vector<Dimensions,double>* exahype2::CopyCellDataGPU< inType, outType >::cellSize |
Definition at line 195 of file CellData.h.
| double* exahype2::CopyCellDataGPU< inType, outType >::dt |
Definition at line 197 of file CellData.h.
| int* exahype2::CopyCellDataGPU< inType, outType >::id |
Definition at line 198 of file CellData.h.
Referenced by exahype2.api.dslhype.SyntaxTree.Name::__eq__(), exahype2.api.dslhype.SyntaxTree.Name::__gt__(), exahype2.api.dslhype.SyntaxTree.Name::index(), exahype2.api.dslhype.SyntaxTree.Name::index(), exahype2.api.dslhype.SyntaxTree.Name::multidimensional_index(), exahype2.api.dslhype.SyntaxTree.DataBlock::offset(), exahype2.api.dslhype.SyntaxTree.FaceDataBlock::offset(), exahype2.api.dslhype.SyntaxTree.Argument::print_cpp(), exahype2.api.dslhype.SyntaxTree.Name::print_cpp(), exahype2.api.dslhype.SyntaxTree.DataBlock::print_cpp(), exahype2.api.dslhype.SyntaxTree.FunctionDefinition::print_definition_with_timer(), exahype2.api.dslhype.SyntaxTree.Name::print_mlir(), exahype2.api.dslhype.SyntaxTree.DataBlock::print_mlir(), exahype2.api.dslhype.SyntaxTree.Argument::print_omp(), exahype2.api.dslhype.SyntaxTree.Name::print_omp(), exahype2.api.dslhype.SyntaxTree.DataBlock::print_omp(), exahype2.api.dslhype.SyntaxTree.Argument::print_sycl(), exahype2.api.dslhype.SyntaxTree.Name::print_sycl(), exahype2.api.dslhype.SyntaxTree.DataBlock::print_sycl(), exahype2.api.dslhype.SyntaxTree.Name::print_tree(), and exahype2.api.dslhype.SyntaxTree.DataBlock::print_tree().
| double* exahype2::CopyCellDataGPU< inType, outType >::maxEigenvalue |
Definition at line 203 of file CellData.h.
| double* exahype2::CopyCellDataGPU< inType, outType >::maxEigenvalueHost |
Definition at line 207 of file CellData.h.
| const tarch::MemoryLocation exahype2::CopyCellDataGPU< inType, outType >::memoryLocation |
Definition at line 200 of file CellData.h.
| const int exahype2::CopyCellDataGPU< inType, outType >::numberOfCells |
Definition at line 199 of file CellData.h.
| inType* exahype2::CopyCellDataGPU< inType, outType >::QIn |
Definition at line 193 of file CellData.h.
| inType** exahype2::CopyCellDataGPU< inType, outType >::QInHost |
Definition at line 205 of file CellData.h.
| int exahype2::CopyCellDataGPU< inType, outType >::QInStride |
Definition at line 227 of file CellData.h.
| outType* exahype2::CopyCellDataGPU< inType, outType >::QOut |
Definition at line 202 of file CellData.h.
| outType** exahype2::CopyCellDataGPU< inType, outType >::QOutHost |
Definition at line 206 of file CellData.h.
| int exahype2::CopyCellDataGPU< inType, outType >::QOutStride |
Definition at line 228 of file CellData.h.
| double* exahype2::CopyCellDataGPU< inType, outType >::t |
Definition at line 196 of file CellData.h.
| const int exahype2::CopyCellDataGPU< inType, outType >::targetDevice |
Definition at line 201 of file CellData.h.