Binary

Overview

A primitive to perform tensor operations over two tensors. More…

// structs

struct dnnl::binary;

// global functions

dnnl_status_t DNNL_API dnnl_binary_primitive_desc_create(
    dnnl_primitive_desc_t* primitive_desc,
    dnnl_engine_t engine,
    dnnl_alg_kind_t alg_kind,
    const_dnnl_memory_desc_t src0_desc,
    const_dnnl_memory_desc_t src1_desc,
    const_dnnl_memory_desc_t dst_desc,
    const_dnnl_primitive_attr_t attr
    );

dnnl_status_t DNNL_API dnnl_binary_primitive_desc_create_v2(
    dnnl_primitive_desc_t* primitive_desc,
    dnnl_engine_t engine,
    dnnl_alg_kind_t alg_kind,
    const_dnnl_memory_desc_t src0_desc,
    const_dnnl_memory_desc_t src1_desc,
    const_dnnl_memory_desc_t src2_desc,
    const_dnnl_memory_desc_t dst_desc,
    const_dnnl_primitive_attr_t attr
    );

Detailed Documentation

A primitive to perform tensor operations over two tensors.

See also:

Binary in developer guide

Global Functions

dnnl_status_t DNNL_API dnnl_binary_primitive_desc_create(
    dnnl_primitive_desc_t* primitive_desc,
    dnnl_engine_t engine,
    dnnl_alg_kind_t alg_kind,
    const_dnnl_memory_desc_t src0_desc,
    const_dnnl_memory_desc_t src1_desc,
    const_dnnl_memory_desc_t dst_desc,
    const_dnnl_primitive_attr_t attr
    )

Creates a primitive descriptor for a binary primitive.

Note

Memory descriptors src1_desc and dst_desc are allowed to be initialized with dnnl_format_tag_any or with format_kind set to dnnl_format_kind_any.

Note

Both memory descriptors must have the same number of dimensions. Element broadcasting is supported for memory descriptor src1_desc and are applied to src1_desc dimensions that have size equal to 1.

Parameters:

primitive_desc

Output primitive descriptor.

engine

Engine to use.

alg_kind

Algorithm kind. Valid values are dnnl_binary_add, dnnl_binary_mul, dnnl_binary_max, dnnl_binary_min, dnnl_binary_div, dnnl_binary_sub, dnnl_binary_ge, dnnl_binary_gt, dnnl_binary_le, dnnl_binary_lt, dnnl_binary_eq and dnnl_binary_ne.

src0_desc

Source 0 memory descriptor.

src1_desc

Source 1 memory descriptor.

dst_desc

Destination memory descriptor.

attr

Primitive attributes (can be NULL).

Returns:

dnnl_success on success and a status describing the error otherwise.

dnnl_status_t DNNL_API dnnl_binary_primitive_desc_create_v2(
    dnnl_primitive_desc_t* primitive_desc,
    dnnl_engine_t engine,
    dnnl_alg_kind_t alg_kind,
    const_dnnl_memory_desc_t src0_desc,
    const_dnnl_memory_desc_t src1_desc,
    const_dnnl_memory_desc_t src2_desc,
    const_dnnl_memory_desc_t dst_desc,
    const_dnnl_primitive_attr_t attr
    )

Creates a primitive descriptor for a binary primitive with support of ternary operators.

Note

Memory descriptors src1_desc, src2_desc and dst_desc are allowed to be initialized with dnnl_format_tag_any or with format_kind set to dnnl_format_kind_any.

Note

All memory descriptors must have the same number of dimensions. Element broadcasting is supported for memory descriptor src1_desc and is applied to src1_desc dimensions that have a size equal to 1. There is no broadcasting support for src2_desc.

Parameters:

primitive_desc

Output primitive descriptor.

engine

Engine to use.

alg_kind

Algorithm kind.

src0_desc

Source 0 memory descriptor.

src1_desc

Source 1 memory descriptor.

src2_desc

Source memory descriptor for ternary operations. Might be empty.

dst_desc

Destination memory descriptor.

attr

Primitive attributes.

Returns:

dnnl_success on success and a status describing the error otherwise.