Peano
Loading...
Searching...
No Matches
exahype2::fv::rusanov::sycl Namespace Reference

Namespaces

namespace  internal
 

Functions

template<class SolverType , std::size_t NumberOfVolumesPerAxisInPatch, std::size_t HaloSize, std::size_t NumberOfUnknowns, std::size_t NumberOfAuxiliaryVariables, bool EvaluateFlux, bool EvaluateNonconservativeProduct, bool EvaluateSource, bool EvaluateMaximumEigenvalueAfterTimeStep, class TempDataEnumeratorType >
KeywordToAvoidDuplicateSymbolsForInlinedFunctions void timeStepWithRusanovTaskgraphCopyStateless (int targetDevice, CellData< double, double > &patchData) InlineMethod
 All the memory management is discussed in the documentation of GPUCellData.
 
template<class SolverType , std::size_t NumberOfVolumesPerAxisInPatch, std::size_t HaloSize, std::size_t NumberOfUnknowns, std::size_t NumberOfAuxiliaryVariables, bool EvaluateFlux, bool EvaluateNonconservativeProduct, bool EvaluateSource, bool EvaluateMaximumEigenvalueAfterTimeStep, class TempDataEnumeratorType >
KeywordToAvoidDuplicateSymbolsForInlinedFunctions void timeStepWithRusanovBatchedHeapStateless (int targetDevice, CellData< double, double > &patchData) InlineMethod
 
template<class SolverType , std::size_t NumberOfVolumesPerAxisInPatch, std::size_t HaloSize, std::size_t NumberOfUnknowns, std::size_t NumberOfAuxiliaryVariables, bool EvaluateFlux, bool EvaluateNonconservativeProduct, bool EvaluateSource, bool EvaluateMaximumEigenvalueAfterTimeStep, class TempDataEnumeratorType >
KeywordToAvoidDuplicateSymbolsForInlinedFunctions void timeStepWithRusanovPatchwiseHeapStateless (int targetDevice, CellData< double, double > &patchData) InlineMethod
 
template<class SolverType , std::size_t NumberOfVolumesPerAxisInPatch, std::size_t HaloSize, std::size_t NumberOfUnknowns, std::size_t NumberOfAuxiliaryVariables, bool EvaluateFlux, bool EvaluateNonconservativeProduct, bool EvaluateSource, bool EvaluateMaximumEigenvalueAfterTimeStep, class TempDataEnumeratorType >
KeywordToAvoidDuplicateSymbolsForInlinedFunctions void timeStepWithRusanovTaskgraphUSMStateless (int targetDevice, CellData< double, double > &patchData) InlineMethod
 
template<class SolverType , std::size_t NumberOfVolumesPerAxisInPatch, std::size_t HaloSize, std::size_t NumberOfUnknowns, std::size_t NumberOfAuxiliaryVariables, bool EvaluateFlux, bool EvaluateNonconservativeProduct, bool EvaluateSource, bool EvaluateMaximumEigenvalueAfterTimeStep, class TempDataEnumeratorType >
KeywordToAvoidDuplicateSymbolsForInlinedFunctions void timeStepWithRusanovBatchedUSMStateless (int targetDevice, CellData< double, double > &patchData) InlineMethod
 This version allocates the temporary data on the GPU via a device malloc, handing in the standard memory, and finally frees the memory again.
 
template<class SolverType , std::size_t NumberOfVolumesPerAxisInPatch, std::size_t HaloSize, std::size_t NumberOfUnknowns, std::size_t NumberOfAuxiliaryVariables, bool EvaluateFlux, bool EvaluateNonconservativeProduct, bool EvaluateSource, bool EvaluateMaximumEigenvalueAfterTimeStep, class TempDataEnumeratorType >
KeywordToAvoidDuplicateSymbolsForInlinedFunctions void timeStepWithRusanovPatchwiseUSMStateless (int targetDevice, CellData< double, double > &patchData) InlineMethod
 1:1 translation of the numerical scheme.
 
template<class SolverType , std::size_t NumberOfVolumesPerAxisInPatch, std::size_t HaloSize, std::size_t NumberOfUnknowns, std::size_t NumberOfAuxiliaryVariables, bool EvaluateFlux, bool EvaluateNonconservativeProduct, bool EvaluateSource, bool EvaluateMaximumEigenvalueAfterTimeStep, class TempDataEnumeratorType >
KeywordToAvoidDuplicateSymbolsForInlinedFunctions void timeStepWithRusanovTaskgraphManagedStateless (int targetDevice, CellData< double, double > &patchData) InlineMethod
 
template<class SolverType , std::size_t NumberOfVolumesPerAxisInPatch, std::size_t HaloSize, std::size_t NumberOfUnknowns, std::size_t NumberOfAuxiliaryVariables, bool EvaluateFlux, bool EvaluateNonconservativeProduct, bool EvaluateSource, bool EvaluateMaximumEigenvalueAfterTimeStep, class TempDataEnumeratorType >
KeywordToAvoidDuplicateSymbolsForInlinedFunctions void timeStepWithRusanovBatchedManagedStateless (int targetDevice, CellData< double, double > &patchData) InlineMethod
 
template<class SolverType , std::size_t NumberOfVolumesPerAxisInPatch, std::size_t HaloSize, std::size_t NumberOfUnknowns, std::size_t NumberOfAuxiliaryVariables, bool EvaluateFlux, bool EvaluateNonconservativeProduct, bool EvaluateSource, bool EvaluateMaximumEigenvalueAfterTimeStep, class TempDataEnumeratorType >
KeywordToAvoidDuplicateSymbolsForInlinedFunctions void timeStepWithRusanovPatchwiseManagedStateless (int targetDevice, CellData< double, double > &patchData) InlineMethod
 
template<class SolverType , std::size_t NumberOfVolumesPerAxisInPatch, std::size_t HaloSize, std::size_t NumberOfUnknowns, std::size_t NumberOfAuxiliaryVariables, bool EvaluateFlux, bool EvaluateNonconservativeProduct, bool EvaluateSource, bool EvaluateMaximumEigenvalueAfterTimeStep, class TempDataEnumeratorType >
KeywordToAvoidDuplicateSymbolsForInlinedFunctions void timeStepWithRusanovTaskgraphCopyStateless (int targetDevice, CellData< double, double > &patchData, ::tarch::timing::Measurement &measurement) InlineMethod
 Variant of kernel invocation which times core compute time.
 
template<class SolverType , std::size_t NumberOfVolumesPerAxisInPatch, std::size_t HaloSize, std::size_t NumberOfUnknowns, std::size_t NumberOfAuxiliaryVariables, bool EvaluateFlux, bool EvaluateNonconservativeProduct, bool EvaluateSource, bool EvaluateMaximumEigenvalueAfterTimeStep, class TempDataEnumeratorType >
KeywordToAvoidDuplicateSymbolsForInlinedFunctions void timeStepWithRusanovBatchedHeapStateless (int targetDevice, CellData< double, double > &patchData, ::tarch::timing::Measurement &measurement) InlineMethod
 
template<class SolverType , std::size_t NumberOfVolumesPerAxisInPatch, std::size_t HaloSize, std::size_t NumberOfUnknowns, std::size_t NumberOfAuxiliaryVariables, bool EvaluateFlux, bool EvaluateNonconservativeProduct, bool EvaluateSource, bool EvaluateMaximumEigenvalueAfterTimeStep, class TempDataEnumeratorType >
KeywordToAvoidDuplicateSymbolsForInlinedFunctions void timeStepWithRusanovPatchwiseHeapStateless (int targetDevice, CellData< double, double > &patchData, ::tarch::timing::Measurement &measurement) InlineMethod
 
template<class SolverType , std::size_t NumberOfVolumesPerAxisInPatch, std::size_t HaloSize, std::size_t NumberOfUnknowns, std::size_t NumberOfAuxiliaryVariables, bool EvaluateFlux, bool EvaluateNonconservativeProduct, bool EvaluateSource, bool EvaluateMaximumEigenvalueAfterTimeStep, class TempDataEnumeratorType >
KeywordToAvoidDuplicateSymbolsForInlinedFunctions void timeStepWithRusanovTaskgraphUSMStateless (int targetDevice, CellData< double, double > &patchData, ::tarch::timing::Measurement &measurement) InlineMethod
 
template<class SolverType , std::size_t NumberOfVolumesPerAxisInPatch, std::size_t HaloSize, std::size_t NumberOfUnknowns, std::size_t NumberOfAuxiliaryVariables, bool EvaluateFlux, bool EvaluateNonconservativeProduct, bool EvaluateSource, bool EvaluateMaximumEigenvalueAfterTimeStep, class TempDataEnumeratorType >
KeywordToAvoidDuplicateSymbolsForInlinedFunctions void timeStepWithRusanovBatchedUSMStateless (int targetDevice, CellData< double, double > &patchData, ::tarch::timing::Measurement &measurement) InlineMethod
 
template<class SolverType , std::size_t NumberOfVolumesPerAxisInPatch, std::size_t HaloSize, std::size_t NumberOfUnknowns, std::size_t NumberOfAuxiliaryVariables, bool EvaluateFlux, bool EvaluateNonconservativeProduct, bool EvaluateSource, bool EvaluateMaximumEigenvalueAfterTimeStep, class TempDataEnumeratorType >
KeywordToAvoidDuplicateSymbolsForInlinedFunctions void timeStepWithRusanovPatchwiseUSMStateless (int targetDevice, CellData< double, double > &patchData, ::tarch::timing::Measurement &measurement) InlineMethod
 
template<class SolverType , std::size_t NumberOfVolumesPerAxisInPatch, std::size_t HaloSize, std::size_t NumberOfUnknowns, std::size_t NumberOfAuxiliaryVariables, bool EvaluateFlux, bool EvaluateNonconservativeProduct, bool EvaluateSource, bool EvaluateMaximumEigenvalueAfterTimeStep, class TempDataEnumeratorType >
KeywordToAvoidDuplicateSymbolsForInlinedFunctions void timeStepWithRusanovTaskgraphManagedStateless (int targetDevice, CellData< double, double > &patchData, ::tarch::timing::Measurement &measurement) InlineMethod
 
template<class SolverType , std::size_t NumberOfVolumesPerAxisInPatch, std::size_t HaloSize, std::size_t NumberOfUnknowns, std::size_t NumberOfAuxiliaryVariables, bool EvaluateFlux, bool EvaluateNonconservativeProduct, bool EvaluateSource, bool EvaluateMaximumEigenvalueAfterTimeStep, class TempDataEnumeratorType >
KeywordToAvoidDuplicateSymbolsForInlinedFunctions void timeStepWithRusanovBatchedManagedStateless (int targetDevice, CellData< double, double > &patchData, ::tarch::timing::Measurement &measurement) InlineMethod
 
template<class SolverType , std::size_t NumberOfVolumesPerAxisInPatch, std::size_t HaloSize, std::size_t NumberOfUnknowns, std::size_t NumberOfAuxiliaryVariables, bool EvaluateFlux, bool EvaluateNonconservativeProduct, bool EvaluateSource, bool EvaluateMaximumEigenvalueAfterTimeStep, class TempDataEnumeratorType >
KeywordToAvoidDuplicateSymbolsForInlinedFunctions void timeStepWithRusanovPatchwiseManagedStateless (int targetDevice, CellData< double, double > &patchData, ::tarch::timing::Measurement &measurement) InlineMethod
 

Function Documentation

◆ timeStepWithRusanovBatchedHeapStateless() [1/2]

template<class SolverType , std::size_t NumberOfVolumesPerAxisInPatch, std::size_t HaloSize, std::size_t NumberOfUnknowns, std::size_t NumberOfAuxiliaryVariables, bool EvaluateFlux, bool EvaluateNonconservativeProduct, bool EvaluateSource, bool EvaluateMaximumEigenvalueAfterTimeStep, class TempDataEnumeratorType >
KeywordToAvoidDuplicateSymbolsForInlinedFunctions void exahype2::fv::rusanov::sycl::timeStepWithRusanovBatchedHeapStateless ( int targetDevice,
CellData< double, double > & patchData )

◆ timeStepWithRusanovBatchedHeapStateless() [2/2]

template<class SolverType , std::size_t NumberOfVolumesPerAxisInPatch, std::size_t HaloSize, std::size_t NumberOfUnknowns, std::size_t NumberOfAuxiliaryVariables, bool EvaluateFlux, bool EvaluateNonconservativeProduct, bool EvaluateSource, bool EvaluateMaximumEigenvalueAfterTimeStep, class TempDataEnumeratorType >
KeywordToAvoidDuplicateSymbolsForInlinedFunctions void exahype2::fv::rusanov::sycl::timeStepWithRusanovBatchedHeapStateless ( int targetDevice,
CellData< double, double > & patchData,
::tarch::timing::Measurement & measurement )

◆ timeStepWithRusanovBatchedManagedStateless() [1/2]

template<class SolverType , std::size_t NumberOfVolumesPerAxisInPatch, std::size_t HaloSize, std::size_t NumberOfUnknowns, std::size_t NumberOfAuxiliaryVariables, bool EvaluateFlux, bool EvaluateNonconservativeProduct, bool EvaluateSource, bool EvaluateMaximumEigenvalueAfterTimeStep, class TempDataEnumeratorType >
KeywordToAvoidDuplicateSymbolsForInlinedFunctions void exahype2::fv::rusanov::sycl::timeStepWithRusanovBatchedManagedStateless ( int targetDevice,
CellData< double, double > & patchData )

◆ timeStepWithRusanovBatchedManagedStateless() [2/2]

template<class SolverType , std::size_t NumberOfVolumesPerAxisInPatch, std::size_t HaloSize, std::size_t NumberOfUnknowns, std::size_t NumberOfAuxiliaryVariables, bool EvaluateFlux, bool EvaluateNonconservativeProduct, bool EvaluateSource, bool EvaluateMaximumEigenvalueAfterTimeStep, class TempDataEnumeratorType >
KeywordToAvoidDuplicateSymbolsForInlinedFunctions void exahype2::fv::rusanov::sycl::timeStepWithRusanovBatchedManagedStateless ( int targetDevice,
CellData< double, double > & patchData,
::tarch::timing::Measurement & measurement )

◆ timeStepWithRusanovBatchedUSMStateless() [1/2]

template<class SolverType , std::size_t NumberOfVolumesPerAxisInPatch, std::size_t HaloSize, std::size_t NumberOfUnknowns, std::size_t NumberOfAuxiliaryVariables, bool EvaluateFlux, bool EvaluateNonconservativeProduct, bool EvaluateSource, bool EvaluateMaximumEigenvalueAfterTimeStep, class TempDataEnumeratorType >
KeywordToAvoidDuplicateSymbolsForInlinedFunctions void exahype2::fv::rusanov::sycl::timeStepWithRusanovBatchedUSMStateless ( int targetDevice,
CellData< double, double > & patchData )

This version allocates the temporary data on the GPU via a device malloc, handing in the standard memory, and finally frees the memory again.

That is, the version relies on SYCL's USM to move data automatically forth and back.

◆ timeStepWithRusanovBatchedUSMStateless() [2/2]

template<class SolverType , std::size_t NumberOfVolumesPerAxisInPatch, std::size_t HaloSize, std::size_t NumberOfUnknowns, std::size_t NumberOfAuxiliaryVariables, bool EvaluateFlux, bool EvaluateNonconservativeProduct, bool EvaluateSource, bool EvaluateMaximumEigenvalueAfterTimeStep, class TempDataEnumeratorType >
KeywordToAvoidDuplicateSymbolsForInlinedFunctions void exahype2::fv::rusanov::sycl::timeStepWithRusanovBatchedUSMStateless ( int targetDevice,
CellData< double, double > & patchData,
::tarch::timing::Measurement & measurement )

◆ timeStepWithRusanovPatchwiseHeapStateless() [1/2]

template<class SolverType , std::size_t NumberOfVolumesPerAxisInPatch, std::size_t HaloSize, std::size_t NumberOfUnknowns, std::size_t NumberOfAuxiliaryVariables, bool EvaluateFlux, bool EvaluateNonconservativeProduct, bool EvaluateSource, bool EvaluateMaximumEigenvalueAfterTimeStep, class TempDataEnumeratorType >
KeywordToAvoidDuplicateSymbolsForInlinedFunctions void exahype2::fv::rusanov::sycl::timeStepWithRusanovPatchwiseHeapStateless ( int targetDevice,
CellData< double, double > & patchData )

◆ timeStepWithRusanovPatchwiseHeapStateless() [2/2]

template<class SolverType , std::size_t NumberOfVolumesPerAxisInPatch, std::size_t HaloSize, std::size_t NumberOfUnknowns, std::size_t NumberOfAuxiliaryVariables, bool EvaluateFlux, bool EvaluateNonconservativeProduct, bool EvaluateSource, bool EvaluateMaximumEigenvalueAfterTimeStep, class TempDataEnumeratorType >
KeywordToAvoidDuplicateSymbolsForInlinedFunctions void exahype2::fv::rusanov::sycl::timeStepWithRusanovPatchwiseHeapStateless ( int targetDevice,
CellData< double, double > & patchData,
::tarch::timing::Measurement & measurement )

◆ timeStepWithRusanovPatchwiseManagedStateless() [1/2]

template<class SolverType , std::size_t NumberOfVolumesPerAxisInPatch, std::size_t HaloSize, std::size_t NumberOfUnknowns, std::size_t NumberOfAuxiliaryVariables, bool EvaluateFlux, bool EvaluateNonconservativeProduct, bool EvaluateSource, bool EvaluateMaximumEigenvalueAfterTimeStep, class TempDataEnumeratorType >
KeywordToAvoidDuplicateSymbolsForInlinedFunctions void exahype2::fv::rusanov::sycl::timeStepWithRusanovPatchwiseManagedStateless ( int targetDevice,
CellData< double, double > & patchData )

◆ timeStepWithRusanovPatchwiseManagedStateless() [2/2]

template<class SolverType , std::size_t NumberOfVolumesPerAxisInPatch, std::size_t HaloSize, std::size_t NumberOfUnknowns, std::size_t NumberOfAuxiliaryVariables, bool EvaluateFlux, bool EvaluateNonconservativeProduct, bool EvaluateSource, bool EvaluateMaximumEigenvalueAfterTimeStep, class TempDataEnumeratorType >
KeywordToAvoidDuplicateSymbolsForInlinedFunctions void exahype2::fv::rusanov::sycl::timeStepWithRusanovPatchwiseManagedStateless ( int targetDevice,
CellData< double, double > & patchData,
::tarch::timing::Measurement & measurement )

◆ timeStepWithRusanovPatchwiseUSMStateless() [1/2]

template<class SolverType , std::size_t NumberOfVolumesPerAxisInPatch, std::size_t HaloSize, std::size_t NumberOfUnknowns, std::size_t NumberOfAuxiliaryVariables, bool EvaluateFlux, bool EvaluateNonconservativeProduct, bool EvaluateSource, bool EvaluateMaximumEigenvalueAfterTimeStep, class TempDataEnumeratorType >
KeywordToAvoidDuplicateSymbolsForInlinedFunctions void exahype2::fv::rusanov::sycl::timeStepWithRusanovPatchwiseUSMStateless ( int targetDevice,
CellData< double, double > & patchData )

1:1 translation of the numerical scheme.

This version allocates the temporary data on the GPU via a device malloc, handing in the standard memory, and finally frees the memory again. That is, the version relies on SYCL's USM to move data automatically forth and back.

◆ timeStepWithRusanovPatchwiseUSMStateless() [2/2]

template<class SolverType , std::size_t NumberOfVolumesPerAxisInPatch, std::size_t HaloSize, std::size_t NumberOfUnknowns, std::size_t NumberOfAuxiliaryVariables, bool EvaluateFlux, bool EvaluateNonconservativeProduct, bool EvaluateSource, bool EvaluateMaximumEigenvalueAfterTimeStep, class TempDataEnumeratorType >
KeywordToAvoidDuplicateSymbolsForInlinedFunctions void exahype2::fv::rusanov::sycl::timeStepWithRusanovPatchwiseUSMStateless ( int targetDevice,
CellData< double, double > & patchData,
::tarch::timing::Measurement & measurement )

◆ timeStepWithRusanovTaskgraphCopyStateless() [1/2]

template<class SolverType , std::size_t NumberOfVolumesPerAxisInPatch, std::size_t HaloSize, std::size_t NumberOfUnknowns, std::size_t NumberOfAuxiliaryVariables, bool EvaluateFlux, bool EvaluateNonconservativeProduct, bool EvaluateSource, bool EvaluateMaximumEigenvalueAfterTimeStep, class TempDataEnumeratorType >
KeywordToAvoidDuplicateSymbolsForInlinedFunctions void exahype2::fv::rusanov::sycl::timeStepWithRusanovTaskgraphCopyStateless ( int targetDevice,
CellData< double, double > & patchData )

All the memory management is discussed in the documentation of GPUCellData.

Task-graph implementation with copying

Task-graph realisation of the kernel where the input data and result are explicitly copied forth and back between GPU and CPU. This routine employs GPUCopyCellData as a wrapper around the host data.

After that, the call is forwarded to the corresponding internal implementation.

See also
exahype2::fv::rusanov::sycl::internal

◆ timeStepWithRusanovTaskgraphCopyStateless() [2/2]

template<class SolverType , std::size_t NumberOfVolumesPerAxisInPatch, std::size_t HaloSize, std::size_t NumberOfUnknowns, std::size_t NumberOfAuxiliaryVariables, bool EvaluateFlux, bool EvaluateNonconservativeProduct, bool EvaluateSource, bool EvaluateMaximumEigenvalueAfterTimeStep, class TempDataEnumeratorType >
KeywordToAvoidDuplicateSymbolsForInlinedFunctions void exahype2::fv::rusanov::sycl::timeStepWithRusanovTaskgraphCopyStateless ( int targetDevice,
CellData< double, double > & patchData,
::tarch::timing::Measurement & measurement )

Variant of kernel invocation which times core compute time.

◆ timeStepWithRusanovTaskgraphManagedStateless() [1/2]

template<class SolverType , std::size_t NumberOfVolumesPerAxisInPatch, std::size_t HaloSize, std::size_t NumberOfUnknowns, std::size_t NumberOfAuxiliaryVariables, bool EvaluateFlux, bool EvaluateNonconservativeProduct, bool EvaluateSource, bool EvaluateMaximumEigenvalueAfterTimeStep, class TempDataEnumeratorType >
KeywordToAvoidDuplicateSymbolsForInlinedFunctions void exahype2::fv::rusanov::sycl::timeStepWithRusanovTaskgraphManagedStateless ( int targetDevice,
CellData< double, double > & patchData )

◆ timeStepWithRusanovTaskgraphManagedStateless() [2/2]

template<class SolverType , std::size_t NumberOfVolumesPerAxisInPatch, std::size_t HaloSize, std::size_t NumberOfUnknowns, std::size_t NumberOfAuxiliaryVariables, bool EvaluateFlux, bool EvaluateNonconservativeProduct, bool EvaluateSource, bool EvaluateMaximumEigenvalueAfterTimeStep, class TempDataEnumeratorType >
KeywordToAvoidDuplicateSymbolsForInlinedFunctions void exahype2::fv::rusanov::sycl::timeStepWithRusanovTaskgraphManagedStateless ( int targetDevice,
CellData< double, double > & patchData,
::tarch::timing::Measurement & measurement )

◆ timeStepWithRusanovTaskgraphUSMStateless() [1/2]

template<class SolverType , std::size_t NumberOfVolumesPerAxisInPatch, std::size_t HaloSize, std::size_t NumberOfUnknowns, std::size_t NumberOfAuxiliaryVariables, bool EvaluateFlux, bool EvaluateNonconservativeProduct, bool EvaluateSource, bool EvaluateMaximumEigenvalueAfterTimeStep, class TempDataEnumeratorType >
KeywordToAvoidDuplicateSymbolsForInlinedFunctions void exahype2::fv::rusanov::sycl::timeStepWithRusanovTaskgraphUSMStateless ( int targetDevice,
CellData< double, double > & patchData )

◆ timeStepWithRusanovTaskgraphUSMStateless() [2/2]

template<class SolverType , std::size_t NumberOfVolumesPerAxisInPatch, std::size_t HaloSize, std::size_t NumberOfUnknowns, std::size_t NumberOfAuxiliaryVariables, bool EvaluateFlux, bool EvaluateNonconservativeProduct, bool EvaluateSource, bool EvaluateMaximumEigenvalueAfterTimeStep, class TempDataEnumeratorType >
KeywordToAvoidDuplicateSymbolsForInlinedFunctions void exahype2::fv::rusanov::sycl::timeStepWithRusanovTaskgraphUSMStateless ( int targetDevice,
CellData< double, double > & patchData,
::tarch::timing::Measurement & measurement )