7 #include "core/framework/allocator_stats.h"
23 arena_extend_strategy(arena_extend_strategy),
24 initial_chunk_size_bytes(initial_chunk_size_bytes),
25 max_dead_bytes_per_chunk(max_dead_bytes_per_chunk),
26 initial_growth_chunk_size_bytes(initial_growth_chunk_size_bytes) {}
35 namespace onnxruntime {
36 constexpr
const char*
CPU =
"Cpu";
37 constexpr
const char*
CUDA =
"Cuda";
39 constexpr
const char*
CANN =
"Cann";
41 constexpr
const char*
DML =
"DML";
42 constexpr
const char*
HIP =
"Hip";
51 namespace synchronize {
69 virtual void Free(
void* p) = 0;
83 virtual void GetStats(AllocatorStats* ) {
return; }
109 template <
size_t alignment>
125 template <
size_t alignment>
143 template <
typename T>
145 bool use_reserve =
false,
147 if (allocator ==
nullptr)
return nullptr;
152 size_t alloc_size = count_or_bytes;
168 [allocator = std::move(allocator)](
T* p) { allocator->Free(p); }};
175 template <
size_t alignment>
177 return CalcMemSizeForArrayWithAlignment(nmemb,
size, alignment, out);
187 void Free(
void* p)
override;
virtual void Free(void *p)=0
void * AllocatorDefaultAlloc(size_t size)
constexpr const char * OpenVINO_GPU
constexpr const char * CPU
virtual void GetStats(AllocatorStats *)
constexpr size_t kAllocAlignment
constexpr const char * CUDA_PINNED
GLsizei const GLfloat * value
std::function< void(Stream &, synchronize::Notification &)> WaitNotificationFn
void * AllocateBufferWithOptions(IAllocator &allocator, size_t size, bool use_reserve, Stream *stream, WaitNotificationFn wait_fn)
constexpr const char * CUDA
constexpr const char * HIP_PINNED
const OrtMemoryInfo & Info() const
constexpr const char * HIP
int initial_growth_chunk_size_bytes
static bool CalcMemSizeForArrayWithAlignment(size_t nmemb, size_t size, size_t alignment, size_t *out) noexcept
int arena_extend_strategy
static IAllocatorUniquePtr< T > MakeUniquePtr(std::shared_ptr< IAllocator > allocator, size_t count_or_bytes, bool use_reserve=false, Stream *stream=nullptr, WaitNotificationFn wait_fn=nullptr)
std::unique_ptr< T, std::function< void(T *)>> IAllocatorUniquePtr
static bool CalcMemSizeForArray(size_t nmemb, size_t size, size_t *out) noexcept
void Free(void *p) override
virtual void * Reserve(size_t size)
void AllocatorDefaultFree(void *p)
constexpr const char * CANN
CPUAllocator(const OrtMemoryInfo &memory_info)
void * AllocArray(size_t nmemb, size_t size)
constexpr const char * DML
std::shared_ptr< IAllocator > AllocatorPtr
int initial_chunk_size_bytes
constexpr const char * CANN_PINNED
void * Alloc(size_t size) override
virtual ~IAllocator()=default
void * AllocArrayWithAlignment(size_t nmemb, size_t size)
int max_dead_bytes_per_chunk
OrtArenaCfg(size_t max_mem, int arena_extend_strategy, int initial_chunk_size_bytes, int max_dead_bytes_per_chunk, int initial_growth_chunk_size_bytes)
IAllocator(const OrtMemoryInfo &info)
virtual void * Alloc(size_t size)=0
constexpr const char * OpenVINO_CPU