Transform ukernel#

Overview#

Transform routines. More…

// typedefs

typedef struct dnnl_transform* dnnl_transform_t;
typedef const struct dnnl_transform* const_dnnl_transform_t;

// structs

struct dnnl_transform;
struct dnnl::ukernel::transform;

// global functions

dnnl_status_t DNNL_API dnnl_transform_create(
    dnnl_transform_t* transform,
    dnnl_dim_t K,
    dnnl_dim_t N,
    dnnl_pack_type_t in_pack_type,
    dnnl_dim_t in_ld,
    dnnl_dim_t out_ld,
    dnnl_data_type_t in_dt,
    dnnl_data_type_t out_dt
    );

dnnl_status_t DNNL_API dnnl_transform_generate(dnnl_transform_t transform);

dnnl_status_t DNNL_API dnnl_transform_execute(
    const_dnnl_transform_t transform,
    const void* in_ptr,
    void* out_ptr
    );

dnnl_status_t DNNL_API dnnl_transform_destroy(dnnl_transform_t transform);

Detailed Documentation#

Transform routines.

Typedefs#

typedef struct dnnl_transform* dnnl_transform_t

A transform routine handle.

typedef const struct dnnl_transform* const_dnnl_transform_t

A constant transform routine handle.

Global Functions#

dnnl_status_t DNNL_API dnnl_transform_create(
    dnnl_transform_t* transform,
    dnnl_dim_t K,
    dnnl_dim_t N,
    dnnl_pack_type_t in_pack_type,
    dnnl_dim_t in_ld,
    dnnl_dim_t out_ld,
    dnnl_data_type_t in_dt,
    dnnl_data_type_t out_dt
    )

Creates a transform object.

Parameters:

transform

Output transform object.

K

Dimension K.

N

Dimension N.

in_pack_type

Input packing type. Must be one of dnnl_pack_type_no_trans, or dnnl_pack_type_trans.

in_ld

Input leading dimension.

out_ld

Output leading dimension. When packing data, it specifies a block by N dimension.

in_dt

Input data type.

out_dt

Output data type.

Returns:

dnnl_success on success and a status describing the error otherwise.

dnnl_status_t DNNL_API dnnl_transform_generate(dnnl_transform_t transform)

Generates an executable part of transform object.

Parameters:

transform

Transform object.

Returns:

dnnl_success on success and a status describing the error otherwise.

dnnl_status_t DNNL_API dnnl_transform_execute(
    const_dnnl_transform_t transform,
    const void* in_ptr,
    void* out_ptr
    )

Executes a transform object.

Parameters:

transform

Transform object.

in_ptr

Pointer to an input buffer.

out_ptr

Pointer to an output buffer.

Returns:

dnnl_success on success and a status describing the error otherwise.

dnnl_status_t DNNL_API dnnl_transform_destroy(dnnl_transform_t transform)

Destroys a transform object.

Parameters:

transform

Transform object.

Returns:

dnnl_success on success and a status describing the error otherwise.