Handles a kernel which packs non-contiguous overlap data in all 8 neighboring directions.
|
template<int subGroupSize> |
static auto | kernel (size_t myGridX, size_t myGridY, sycl::uint3 pmeSize, const float *__restrict__ gm_realGrid, float *__restrict__ gm_transferGridUp, float *__restrict__ gm_transferGridDown, float *__restrict__ gm_transferGridLeft, float *__restrict__ gm_transferGridRight, float *__restrict__ gm_transferGridUpLeft, float *__restrict__ gm_transferGridDownLeft, float *__restrict__ gm_transferGridUpRight, float *__restrict__ gm_transferGridDownRight, size_t overlapSizeX, size_t overlapSizeY, size_t overlapUp, size_t overlapLeft) |
| Returns the pack kernel. More...
|
|
template<int subGroupSize>
static auto PackHaloInternal::kernel |
( |
size_t |
myGridX, |
|
|
size_t |
myGridY, |
|
|
sycl::uint3 |
pmeSize, |
|
|
const float *__restrict__ |
gm_realGrid, |
|
|
float *__restrict__ |
gm_transferGridUp, |
|
|
float *__restrict__ |
gm_transferGridDown, |
|
|
float *__restrict__ |
gm_transferGridLeft, |
|
|
float *__restrict__ |
gm_transferGridRight, |
|
|
float *__restrict__ |
gm_transferGridUpLeft, |
|
|
float *__restrict__ |
gm_transferGridDownLeft, |
|
|
float *__restrict__ |
gm_transferGridUpRight, |
|
|
float *__restrict__ |
gm_transferGridDownRight, |
|
|
size_t |
overlapSizeX, |
|
|
size_t |
overlapSizeY, |
|
|
size_t |
overlapUp, |
|
|
size_t |
overlapLeft |
|
) |
| |
|
inlinestatic |
Returns the pack kernel.
- Parameters
-
[in] | myGridX,myGridY | Local domain size in X and Y dimension |
[in] | pmeSize | Local PME grid size |
[in] | gm_realGrid | PME device grid |
[out] | gm_transferGridUp | Device array used to pack data to go up |
[out] | gm_transferGridDown | Device array used to pack data to go down |
[out] | gm_transferGridLeft | Device array used to pack data to go left |
[out] | gm_transferGridRight | Device array used to pack data to go right |
[out] | gm_transferGridUpLeft | Device array used to pack data to go up+left |
[out] | gm_transferGridDownLeft | Device array used to pack data to go down+left |
[out] | gm_transferGridUpRight | Device array used to pack data to go up+right |
[out] | gm_transferGridDownRight | Device array used to pack data to go down+right |
[in] | overlapSizeX,overlapSizeY,overlapUp,overlapLeft | Halo size in 4 directions |
- Template Parameters
-
subGroupSize | Size of the sub-group. |
The documentation for this class was generated from the following file: