Memory

memory.param

namespace picongpu

Typedefs

typedef mCT::shrinkTo<mCT::Int<8, 8, 4>, simDim>::type SuperCellSize

size of a superCell

volume of a superCell must be <= 1024

typedef MappingDescription<simDim, SuperCellSize> MappingDesc

define mapper which is used for kernel call mappings

Variables

constexpr size_t reservedGpuMemorySize = 350 *1024*1024
constexpr uint32_t GUARD_SIZE = 1
constexpr uint32_t BYTES_EXCHANGE_X = 4 * 256 * 1024

how many bytes for buffer is reserved to communication in one direction

constexpr uint32_t BYTES_EXCHANGE_Y = 6 * 512 * 1024
constexpr uint32_t BYTES_EXCHANGE_Z = 4 * 256 * 1024
constexpr uint32_t BYTES_CORNER = 8 * 1024
constexpr uint32_t BYTES_EDGES = 32 * 1024
constexpr uint32_t fieldTmpNumSlots = 1

number of scalar fields that are reserved as temporary fields

constexpr bool fieldTmpSupportGatherCommunication = true

can FieldTmp gather neighbor information

If true it is possible to call the method asyncCommunicationGather() to copy data from the border of neighboring GPU into the local guard. This is also known as building up a “ghost” or “halo” region in domain decomposition and only necessary for specific algorithms that extend the basic PIC cycle, e.g. with dependence on derived density or energy fields.

precision.param

namespace picongpu

mallocMC.param

namespace picongpu

Typedefs

using picongpu::DeviceHeap = typedef mallocMC::Allocator< mallocMC::CreationPolicies::Scatter< DeviceHeapConfig >, mallocMC::DistributionPolicies::Noop, mallocMC::OOMPolicies::ReturnNull, mallocMC::ReservePoolPolicies::SimpleCudaMalloc, mallocMC::AlignmentPolicies::Shrink<> >
struct DeviceHeapConfig

Public Types

using pagesize = boost::mpl::int_<2 * 1024 * 1024>
using accessblocks = boost::mpl::int_<4>
using regionsize = boost::mpl::int_<8>
using wastefactor = boost::mpl::int_<2>
using resetfreedpages = boost::mpl::bool_<true>