Allocator

Overview

Definitions of allocator which is used to acquire memory resources in partition compilation and execution. More…

// typedefs

typedef void* (*dnnl_graph_host_allocate_f)(
    size_t size,
    size_t alignment
    );

typedef void (*dnnl_graph_host_deallocate_f)(void *);
typedef struct dnnl_graph_allocator* dnnl_graph_allocator_t;
typedef const struct dnnl_graph_allocator* const_dnnl_graph_allocator_t;

// classes

class dnnl::graph::allocator;

// global functions

dnnl_status_t DNNL_API dnnl_graph_allocator_create(
    dnnl_graph_allocator_t* allocator,
    dnnl_graph_host_allocate_f host_malloc,
    dnnl_graph_host_deallocate_f host_free
    );

dnnl_status_t DNNL_API dnnl_graph_allocator_destroy(dnnl_graph_allocator_t allocator);

Detailed Documentation

Definitions of allocator which is used to acquire memory resources in partition compilation and execution.

SYCL allocator (dnnl::graph::sycl_interop::make_allocator) should be used for SYCL runtime and host allocator should be used for non-SYCL.

Typedefs

typedef void* (*dnnl_graph_host_allocate_f)(
    size_t size,
    size_t alignment
    )

Allocation call-back function interface for host.

For SYCL allocator, see dnnl_graph_sycl_allocate_f.

typedef void (*dnnl_graph_host_deallocate_f)(void *)

Deallocation call-back function interface for host.

For SYCL allocator, see dnnl_graph_sycl_deallocate_f.

typedef struct dnnl_graph_allocator* dnnl_graph_allocator_t

An allocator handle.

typedef const struct dnnl_graph_allocator* const_dnnl_graph_allocator_t

A constant allocator handle.

Global Functions

dnnl_status_t DNNL_API dnnl_graph_allocator_create(
    dnnl_graph_allocator_t* allocator,
    dnnl_graph_host_allocate_f host_malloc,
    dnnl_graph_host_deallocate_f host_free
    )

Creates a host allocator with the given allocation and deallocation call-back function pointers.

Parameters:

allocator

Output allocator.

host_malloc

A pointer to malloc function for host.

host_free

A pointer to free function for host.

Returns:

dnnl_success on success or a status describing the error otherwise.

dnnl_status_t DNNL_API dnnl_graph_allocator_destroy(dnnl_graph_allocator_t allocator)

Destroys an allocator.

Parameters:

allocator

The allocator to be destroyed.

Returns:

dnnl_success on success or a status describing the error otherwise.