#include <cstddef>
#include "gromacs/gpu_utils/gmxsycl.h"
#include "gromacs/utility/vectypes.h"
Declares the SYCL type traits.
- Author
- Andrey Alekseenko al42a.nosp@m.nd@g.nosp@m.mail..nosp@m.com
|
| struct | DeviceFloat4 |
| | Convenience alias for 4-wide float in shared device kernels. More...
|
| |
| struct | KernelLaunchConfig |
| | GPU kernels scheduling description. This is same in OpenCL/HIP. Provides reasonable defaults, one typically only needs to set the GPU stream and non-1 work sizes. More...
|
| |
|
|
#define | GMX_HOST_ATTRIBUTE |
| |
|
#define | GMX_DEVICE_ATTRIBUTE |
| |
|
#define | GMX_HOSTDEVICE_ATTRIBUTE GMX_HOST_ATTRIBUTE GMX_DEVICE_ATTRIBUTE |
| |
|
#define | GMX_DEVICE_ASSERT(condition) |
| |
|
|
using | DeviceTexture = void * |
| | Type of device texture object. In SYCL, that would be sycl::image, but it's not used.
|
| |
|
using | CommandEvent = void * |
| | Single GPU call timing event, not used with SYCL.
|
| |
|
using | Float4 = sycl::float4 |
| | Convenience alias.
|
| |
|
using | Float3 = gmx::RVec |
| | Convenience alias. Not using sycl::float3 due to alignment issues.
|
| |
|
using | DeviceFloat3 = gmx::RVec |
| | Convenience alias for 3-wide float in shared device kernels.
|
| |
|
using | Float2 = sycl::float2 |
| | Convenience alias for sycl::float2.
|
| |
|
using | Int3 = sycl::int3 |
| | Convenience alias for sycl::int3.
|
| |
|
using | Int4 = sycl::int4 |
| | Convenience alias for sycl::int4.
|
| |
|
using | DeviceInt3 = sycl::int3 |
| | Convenience alias for int3 in shared device kernels.
|
| |
|
using | DeviceInt4 = sycl::int4 |
| | Convenience alias for int4 in shared device kernels.
|
| |
|
template<typename T > |
| using | DeviceGlobalPtr = sycl::global_ptr< T > |
| | Convenience alias for sycl global device memory.
|
| |
|
template<typename T > |
| using | DeviceLocalPtr = sycl::local_ptr< T > |
| | Convenience alias for sycl local device memory.
|
| |
|
template<typename T > |
| using | DevicePrivatePtr = sycl::private_ptr< T > |
| | Convenience alias for sycl private device memory.
|
| |
|
| static constexpr bool | c_canEmbedBuffers = true |
| | Sets whether device code can use arrays that are embedded in structs. More...
|
| |
| constexpr bool c_canEmbedBuffers = true |
|
static |
Sets whether device code can use arrays that are embedded in structs.
That is not technically true for SYCL, since DeviceBuffer holds not only the memory pointer, but also the context.
But our prepareGpuKernelArguments and launchGpuKernel functions deal with that, so we can pass embedded buffers to them, which is what this constant actually controls.