QUDA  1.0.0
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
Classes | Namespaces | Macros | Enumerations | Functions | Variables
malloc.cpp File Reference
#include <cstdlib>
#include <cstdio>
#include <string>
#include <map>
#include <unistd.h>
#include <execinfo.h>
#include <quda_internal.h>
Include dependency graph for malloc.cpp:

Go to the source code of this file.

Classes

class  quda::MemAlloc
 

Namespaces

 quda
 
 quda::pool
 

Macros

#define HOST_ALLOC
 

Enumerations

enum  quda::AllocType {
  quda::DEVICE, quda::DEVICE_PINNED, quda::HOST, quda::PINNED,
  quda::MAPPED, quda::N_ALLOC_TYPE
}
 

Functions

long quda::device_allocated_peak ()
 
long quda::pinned_allocated_peak ()
 
long quda::mapped_allocated_peak ()
 
long quda::host_allocated_peak ()
 
static void quda::print_trace (void)
 
static void quda::print_alloc_header ()
 
static void quda::print_alloc (AllocType type)
 
static void quda::track_malloc (const AllocType &type, const MemAlloc &a, void *ptr)
 
static void quda::track_free (const AllocType &type, void *ptr)
 
static void * quda::aligned_malloc (MemAlloc &a, size_t size)
 
void * quda::device_malloc_ (const char *func, const char *file, int line, size_t size)
 
void * quda::device_pinned_malloc_ (const char *func, const char *file, int line, size_t size)
 
void * quda::safe_malloc_ (const char *func, const char *file, int line, size_t size)
 
void * quda::pinned_malloc_ (const char *func, const char *file, int line, size_t size)
 
void * quda::mapped_malloc_ (const char *func, const char *file, int line, size_t size)
 
void quda::device_free_ (const char *func, const char *file, int line, void *ptr)
 
void quda::device_pinned_free_ (const char *func, const char *file, int line, void *ptr)
 
void quda::host_free_ (const char *func, const char *file, int line, void *ptr)
 
void quda::printPeakMemUsage ()
 
void quda::assertAllMemFree ()
 
QudaFieldLocation quda::get_pointer_location (const void *ptr)
 
void quda::pool::init ()
 Initialize the memory pool allocator. More...
 
void * quda::pool::pinned_malloc_ (const char *func, const char *file, int line, size_t size)
 Allocate pinned-memory. If a free pre-existing allocation exists reuse this. More...
 
void quda::pool::pinned_free_ (const char *func, const char *file, int line, void *ptr)
 Virtual free of pinned-memory allocation. More...
 
void * quda::pool::device_malloc_ (const char *func, const char *file, int line, size_t size)
 Allocate device-memory. If free pre-existing allocation exists reuse this. More...
 
void quda::pool::device_free_ (const char *func, const char *file, int line, void *ptr)
 Virtual free of pinned-memory allocation. More...
 
void quda::pool::flush_pinned ()
 Free all outstanding pinned-memory allocations. More...
 
void quda::pool::flush_device ()
 Free all outstanding device-memory allocations. More...
 

Variables

static std::map< void *, MemAlloc > quda::alloc [N_ALLOC_TYPE]
 
static long quda::total_bytes [N_ALLOC_TYPE] = {0}
 
static long quda::max_total_bytes [N_ALLOC_TYPE] = {0}
 
static long quda::total_host_bytes
 
static long quda::max_total_host_bytes
 
static long quda::total_pinned_bytes
 
static long quda::max_total_pinned_bytes
 
static std::multimap< size_t, void * > quda::pool::pinnedCache
 
static std::map< void *, size_t > quda::pool::pinnedSize
 
static std::multimap< size_t, void * > quda::pool::deviceCache
 
static std::map< void *, size_t > quda::pool::deviceSize
 
static bool quda::pool::pool_init = false
 
static bool quda::pool::device_memory_pool = true
 
static bool quda::pool::pinned_memory_pool = true
 

Macro Definition Documentation

◆ HOST_ALLOC

#define HOST_ALLOC

Definition at line 266 of file malloc.cpp.