Block-Structured AMR Software Framework
Loading...
Searching...
No Matches
AMReX_GpuDevice.H File Reference
#include <AMReX_Config.H>
#include <AMReX.H>
#include <AMReX_Extension.H>
#include <AMReX_Utility.H>
#include <AMReX_GpuTypes.H>
#include <AMReX_GpuError.H>
#include <AMReX_GpuControl.H>
#include <AMReX_OpenMP.H>
#include <AMReX_Vector.H>
#include <algorithm>
#include <array>
#include <cstdlib>
#include <cstring>
#include <memory>
#include <mutex>

Go to the source code of this file.

Classes

class  amrex::Gpu::StreamManager
class  amrex::Gpu::Device
struct  amrex::Gpu::ExternalGpuStreamRegion
struct  amrex::Gpu::SyncAtExitOnly

Namespaces

namespace  amrex
namespace  amrex::Gpu

Macros

#define AMREX_GPU_MAX_STREAMS   8

Typedefs

using amrex::gpuDeviceProp_t = cudaDeviceProp

Enumerations

enum class  amrex::Gpu::ExternalStreamSync { amrex::Gpu::Yes , amrex::Gpu::No }

Functions

int amrex::Gpu::SelectDeviceBeforeMPIInit ()
 Select this process's GPU before MPI is initialized.
gpuStream_t amrex::Gpu::gpuStream () noexcept
int amrex::Gpu::numGpuStreams () noexcept
void amrex::Gpu::synchronize () noexcept
void amrex::Gpu::streamSynchronize () noexcept
void amrex::Gpu::streamSynchronize (gpuStream_t s) noexcept
void amrex::Gpu::streamSynchronizeActive () noexcept
void amrex::Gpu::streamSynchronizeAll () noexcept
void amrex::Gpu::freeAsync (Arena *arena, void *mem) noexcept
bool amrex::Gpu::clearFreeAsyncBuffer () noexcept
void amrex::Gpu::setExternalGpuStream (gpuStream_t stream)
 Provide a user-supplied GPU stream.
void amrex::Gpu::resetExternalGpuStream (ExternalStreamSync sync_stream=ExternalStreamSync::Yes) noexcept
 Pop the current user-supplied GPU stream.
void amrex::Gpu::htod_memcpy_async (void *p_d, const void *p_h, const std::size_t sz) noexcept
void amrex::Gpu::dtoh_memcpy_async (void *p_h, const void *p_d, const std::size_t sz) noexcept
void amrex::Gpu::dtod_memcpy_async (void *p_d_dst, const void *p_d_src, const std::size_t sz) noexcept
void amrex::Gpu::htod_memcpy (void *p_d, const void *p_h, const std::size_t sz) noexcept
void amrex::Gpu::dtoh_memcpy (void *p_h, const void *p_d, const std::size_t sz) noexcept
void amrex::Gpu::dtod_memcpy (void *p_d_dst, const void *p_d_src, const std::size_t sz) noexcept
template<typename T>
void amrex::Gpu::memcpy_from_host_to_device_global_async (T &dg, const void *src, std::size_t nbytes, std::size_t offset=0)
template<typename T>
void amrex::Gpu::memcpy_from_device_global_to_host_async (void *dst, T const &dg, std::size_t nbytes, std::size_t offset=0)
bool amrex::Gpu::isStreamActive (gpuStream_t s)
 Check if the given stream is active.

Macro Definition Documentation

◆ AMREX_GPU_MAX_STREAMS

#define AMREX_GPU_MAX_STREAMS   8