Grid 0.7.0
MemoryManager Class Reference

#include <MemoryManager.h>

Data Structures

struct  AllocationCacheEntry
struct  AcceleratorViewEntry

Static Public Member Functions

static void PrintBytes (void)
static void Audit (std::string s)
static void Init (void)
static void InitMessage (void)
static void * AcceleratorAllocate (size_t bytes)
static void AcceleratorFree (void *ptr, size_t bytes)
static void * SharedAllocate (size_t bytes)
static void SharedFree (void *ptr, size_t bytes)
static void * CpuAllocate (size_t bytes)
static void CpuFree (void *ptr, size_t bytes)
static uint64_t DeviceCacheBytes ()
static uint64_t HostCacheBytes ()
static MemoryStatus GetFootprint (void)
static void DisplayMallinfo (void)
static void NotifyDeletion (void *CpuPtr)
static void Print (void)
static void PrintAll (void)
static void PrintState (void *CpuPtr)
static int isOpen (void *CpuPtr)
static void ViewClose (void *CpuPtr, ViewMode mode)
static void * ViewOpen (void *CpuPtr, size_t bytes, ViewMode mode, ViewAdvise hint)

Static Public Attributes

static uint64_t DeviceBytes
static uint64_t DeviceLRUBytes
static uint64_t DeviceMaxBytes
static uint64_t HostToDeviceBytes
static uint64_t DeviceToHostBytes
static uint64_t HostToDeviceXfer
static uint64_t DeviceToHostXfer
static uint64_t DeviceEvictions
static uint64_t DeviceDestroy

Private Types

typedef std::list< uint64_t > LRU_t
typedef LRU_t::iterator LRUiterator
typedef std::unordered_map< uint64_t, AcceleratorViewEntryAccViewTable_t
typedef AccViewTable_t::iterator AccViewTableIterator

Static Private Member Functions

static void * Insert (void *ptr, size_t bytes, int type)
static void * Lookup (size_t bytes, int type)
static void * Insert (void *ptr, size_t bytes, AllocationCacheEntry *entries, int ncache, int &victim, uint64_t &cbytes)
static void * Lookup (size_t bytes, AllocationCacheEntry *entries, int ncache, uint64_t &cbytes)
static void Create (uint64_t CpuPtr, size_t bytes, ViewMode mode, ViewAdvise hint)
static void EvictVictims (uint64_t bytes)
static void Evict (AcceleratorViewEntry &AccCache)
static void Flush (AcceleratorViewEntry &AccCache)
static void Clone (AcceleratorViewEntry &AccCache)
static void AccDiscard (AcceleratorViewEntry &AccCache)
static void CpuDiscard (AcceleratorViewEntry &AccCache)
static void LRUinsert (AcceleratorViewEntry &AccCache)
static void LRUremove (AcceleratorViewEntry &AccCache)
static int EntryPresent (uint64_t CpuPtr)
static void EntryCreate (uint64_t CpuPtr, size_t bytes, ViewMode mode, ViewAdvise hint)
static void EntryErase (uint64_t CpuPtr)
static AccViewTableIterator EntryLookup (uint64_t CpuPtr)
static void EntrySet (uint64_t CpuPtr, AcceleratorViewEntry &entry)
static void AcceleratorViewClose (uint64_t AccPtr)
static uint64_t AcceleratorViewOpen (uint64_t CpuPtr, size_t bytes, ViewMode mode, ViewAdvise hint)
static void CpuViewClose (uint64_t Ptr)
static uint64_t CpuViewOpen (uint64_t CpuPtr, size_t bytes, ViewMode mode, ViewAdvise hint)

Static Private Attributes

static const int NallocCacheMax
static const int NallocType
static AllocationCacheEntry Entries [NallocType][NallocCacheMax]
static int Victim [NallocType]
static int Ncache [NallocType]
static uint64_t CacheBytes [NallocType]
static AccViewTable_t AccViewTable
static LRU_t LRU

Detailed Description

Definition at line 89 of file MemoryManager.h.

Member Typedef Documentation

◆ LRU_t

typedef std::list<uint64_t> MemoryManager::LRU_t
private

Definition at line 165 of file MemoryManager.h.

◆ LRUiterator

typedef LRU_t::iterator MemoryManager::LRUiterator
private

Definition at line 166 of file MemoryManager.h.

◆ AccViewTable_t

typedef std::unordered_map<uint64_t,AcceleratorViewEntry> MemoryManager::AccViewTable_t
private

Definition at line 179 of file MemoryManager.h.

◆ AccViewTableIterator

typedef AccViewTable_t::iterator MemoryManager::AccViewTableIterator
private

Definition at line 180 of file MemoryManager.h.

Member Function Documentation

◆ Insert() [1/2]

void * MemoryManager::Insert ( void * ptr,
size_t bytes,
int type )
staticprivate

◆ Lookup() [1/2]

void * MemoryManager::Lookup ( size_t bytes,
int type )
staticprivate

◆ Insert() [2/2]

void * MemoryManager::Insert ( void * ptr,
size_t bytes,
AllocationCacheEntry * entries,
int ncache,
int & victim,
uint64_t & cbytes )
staticprivate

◆ Lookup() [2/2]

void * MemoryManager::Lookup ( size_t bytes,
AllocationCacheEntry * entries,
int ncache,
uint64_t & cbytes )
staticprivate

◆ PrintBytes()

void MemoryManager::PrintBytes ( void )
static

◆ Audit()

void MemoryManager::Audit ( std::string s)
static

Definition at line 18 of file MemoryManagerShared.cc.

◆ Init()

void MemoryManager::Init ( void )
static

Definition at line 201 of file MemoryManager.cc.

References Acc, AccHuge, AccSmall, Cpu, CpuHuge, CpuSmall, NallocCacheMax, Nc, Ncache, Shared, SharedHuge, and SharedSmall.

Referenced by Grid_init().

◆ InitMessage()

void MemoryManager::InitMessage ( void )
static

Definition at line 239 of file MemoryManager.cc.

References Acc, AccHuge, AccSmall, Cpu, CpuHuge, CpuSmall, DeviceMaxBytes, GridLogMessage, Ncache, Shared, SharedHuge, and SharedSmall.

Referenced by Grid_init().

◆ AcceleratorAllocate()

void * MemoryManager::AcceleratorAllocate ( size_t bytes)
static

◆ AcceleratorFree()

void MemoryManager::AcceleratorFree ( void * ptr,
size_t bytes )
static

◆ SharedAllocate()

void * MemoryManager::SharedAllocate ( size_t bytes)
static

◆ SharedFree()

void MemoryManager::SharedFree ( void * ptr,
size_t bytes )
static

◆ CpuAllocate()

void * MemoryManager::CpuAllocate ( size_t bytes)
static

◆ CpuFree()

void MemoryManager::CpuFree ( void * ptr,
size_t bytes )
static

◆ DeviceCacheBytes()

uint64_t MemoryManager::DeviceCacheBytes ( )
static

Definition at line 79 of file MemoryManager.cc.

References Acc, AccHuge, AccSmall, and CacheBytes.

Referenced by GetFootprint().

◆ HostCacheBytes()

uint64_t MemoryManager::HostCacheBytes ( )
static

Definition at line 80 of file MemoryManager.cc.

References CacheBytes, Cpu, CpuHuge, and CpuSmall.

Referenced by GetFootprint().

◆ GetFootprint()

◆ Create()

void MemoryManager::Create ( uint64_t CpuPtr,
size_t bytes,
ViewMode mode,
ViewAdvise hint )
staticprivate

◆ EvictVictims()

void MemoryManager::EvictVictims ( uint64_t bytes)
staticprivate

◆ Evict()

void MemoryManager::Evict ( AcceleratorViewEntry & AccCache)
staticprivate

◆ Flush()

void MemoryManager::Flush ( AcceleratorViewEntry & AccCache)
staticprivate

◆ Clone()

void MemoryManager::Clone ( AcceleratorViewEntry & AccCache)
staticprivate

◆ AccDiscard()

void MemoryManager::AccDiscard ( AcceleratorViewEntry & AccCache)
staticprivate

◆ CpuDiscard()

void MemoryManager::CpuDiscard ( AcceleratorViewEntry & AccCache)
staticprivate

◆ LRUinsert()

void MemoryManager::LRUinsert ( AcceleratorViewEntry & AccCache)
staticprivate

◆ LRUremove()

void MemoryManager::LRUremove ( AcceleratorViewEntry & AccCache)
staticprivate

◆ EntryPresent()

int MemoryManager::EntryPresent ( uint64_t CpuPtr)
staticprivate

◆ EntryCreate()

void MemoryManager::EntryCreate ( uint64_t CpuPtr,
size_t bytes,
ViewMode mode,
ViewAdvise hint )
staticprivate

◆ EntryErase()

void MemoryManager::EntryErase ( uint64_t CpuPtr)
staticprivate

◆ EntryLookup()

AccViewTableIterator MemoryManager::EntryLookup ( uint64_t CpuPtr)
staticprivate

◆ EntrySet()

void MemoryManager::EntrySet ( uint64_t CpuPtr,
AcceleratorViewEntry & entry )
staticprivate

◆ AcceleratorViewClose()

void MemoryManager::AcceleratorViewClose ( uint64_t AccPtr)
staticprivate

◆ AcceleratorViewOpen()

uint64_t MemoryManager::AcceleratorViewOpen ( uint64_t CpuPtr,
size_t bytes,
ViewMode mode,
ViewAdvise hint )
staticprivate

◆ CpuViewClose()

void MemoryManager::CpuViewClose ( uint64_t Ptr)
staticprivate

◆ CpuViewOpen()

uint64_t MemoryManager::CpuViewOpen ( uint64_t CpuPtr,
size_t bytes,
ViewMode mode,
ViewAdvise hint )
staticprivate

◆ DisplayMallinfo()

void MemoryManager::DisplayMallinfo ( void )
static

Definition at line 35 of file MemoryManager.cc.

References LEAK_CHECK.

Referenced by PrintBytes().

◆ NotifyDeletion()

void MemoryManager::NotifyDeletion ( void * CpuPtr)
static

Definition at line 28 of file MemoryManagerShared.cc.

Referenced by CpuFree().

◆ Print()

void MemoryManager::Print ( void )
static

Definition at line 26 of file MemoryManagerShared.cc.

◆ PrintAll()

void MemoryManager::PrintAll ( void )
static

Definition at line 27 of file MemoryManagerShared.cc.

◆ PrintState()

void MemoryManager::PrintState ( void * CpuPtr)
static

Definition at line 22 of file MemoryManagerShared.cc.

References GridLogMessage.

Referenced by Lattice< CoarseSiteVector >::PrintCacheState().

◆ isOpen()

int MemoryManager::isOpen ( void * CpuPtr)
static

Definition at line 21 of file MemoryManagerShared.cc.

◆ ViewClose()

void MemoryManager::ViewClose ( void * CpuPtr,
ViewMode mode )
static

◆ ViewOpen()

void * MemoryManager::ViewOpen ( void * CpuPtr,
size_t bytes,
ViewMode mode,
ViewAdvise hint )
static

Field Documentation

◆ NallocCacheMax

const int MemoryManager::NallocCacheMax
staticprivate

Definition at line 101 of file MemoryManager.h.

Referenced by Init().

◆ NallocType

const int MemoryManager::NallocType
staticprivate

Definition at line 102 of file MemoryManager.h.

◆ Entries

MemoryManager::AllocationCacheEntry MemoryManager::Entries
staticprivate

Definition at line 103 of file MemoryManager.h.

Referenced by Insert(), and Lookup().

◆ Victim

int MemoryManager::Victim
staticprivate

Definition at line 104 of file MemoryManager.h.

Referenced by Insert().

◆ Ncache

int MemoryManager::Ncache
staticprivate

Definition at line 87 of file MemoryManager.h.

Referenced by Init(), InitMessage(), Insert(), and Lookup().

◆ CacheBytes

uint64_t MemoryManager::CacheBytes
staticprivate

Definition at line 106 of file MemoryManager.h.

Referenced by DeviceCacheBytes(), HostCacheBytes(), Insert(), Lookup(), and PrintBytes().

◆ DeviceBytes

uint64_t MemoryManager::DeviceBytes
static

Definition at line 131 of file MemoryManager.h.

Referenced by GetFootprint(), and NAMESPACE_BEGIN().

◆ DeviceLRUBytes

uint64_t MemoryManager::DeviceLRUBytes
static

Definition at line 132 of file MemoryManager.h.

Referenced by GetFootprint(), and NAMESPACE_BEGIN().

◆ DeviceMaxBytes

uint64_t MemoryManager::DeviceMaxBytes
static

Definition at line 133 of file MemoryManager.h.

Referenced by GetFootprint(), Grid_init(), InitMessage(), and NAMESPACE_BEGIN().

◆ HostToDeviceBytes

uint64_t MemoryManager::HostToDeviceBytes
static

Definition at line 134 of file MemoryManager.h.

Referenced by GetFootprint(), and NAMESPACE_BEGIN().

◆ DeviceToHostBytes

uint64_t MemoryManager::DeviceToHostBytes
static

Definition at line 135 of file MemoryManager.h.

Referenced by GetFootprint(), and NAMESPACE_BEGIN().

◆ HostToDeviceXfer

uint64_t MemoryManager::HostToDeviceXfer
static

Definition at line 136 of file MemoryManager.h.

Referenced by GetFootprint(), and NAMESPACE_BEGIN().

◆ DeviceToHostXfer

uint64_t MemoryManager::DeviceToHostXfer
static

Definition at line 137 of file MemoryManager.h.

Referenced by GetFootprint(), and NAMESPACE_BEGIN().

◆ DeviceEvictions

uint64_t MemoryManager::DeviceEvictions
static

Definition at line 138 of file MemoryManager.h.

Referenced by GetFootprint(), and NAMESPACE_BEGIN().

◆ DeviceDestroy

uint64_t MemoryManager::DeviceDestroy
static

Definition at line 139 of file MemoryManager.h.

Referenced by GetFootprint(), and NAMESPACE_BEGIN().

◆ AccViewTable

AccViewTable_t MemoryManager::AccViewTable
staticprivate

Definition at line 182 of file MemoryManager.h.

◆ LRU

LRU_t MemoryManager::LRU
staticprivate

Definition at line 183 of file MemoryManager.h.


The documentation for this class was generated from the following files: