API reference: C, C++
The binary primitive computes
\[ dst(\overline{x}) = src0(\overline{x}) op src1(\overline{x}), \]
where \(\op\) is either addition or multiplication.
The binary primitive does not have a notion of forward or backward propagations.
Implementation Details
General Notes
- The \(dst\) memory format can be either specified explicitly or be
mkldnn::memory_tag::any
(recommended), in which case the primitive will derive the most appropriate memory format based on the format of the source 0 tensor.
- The binary primitive requires all source and destination tensors to have the same shape. Implicit broadcasting is supported.
- Destination memory descriptor should completely match source 0 memory descriptor.
- The binary primitive supports in-place operations, meaning that source 0 tensor may be used as the destination, in which case its data will be overwritten.
Post-ops and Attributes
The binary primitive does not support any post-ops or attributes.
Data Types Support
The source and destination tensors may have f32
or bf16
data types. See Data Types page for more details.
Data Representation
Sources, Destination
The binary primitive works with arbitrary data tensors. There is no special meaning associated with any of tensors dimensions.
Implementation Limitations
- Refer to Data Types for limitations related to data types support.
- GPU
Performance Tips
- Whenever possible, avoid specifying the destination memory format so that the primitive is able to choose the most appropriate one.