.. index:: pair: page; Reduction Fusion Patterns .. _doxid-dev_guide_graph_reduction_fusion_patterns: Reduction Fusion Patterns ========================= Overview ~~~~~~~~ The Reduction category includes operations such as: ReduceL1, ReduceL2, ReduceMax, ReduceMean, ReduceMin, ReduceProd, ReduceSum. oneDNN supports various reduction fusion patterns to optimize performance and reduce memory bandwidth requirements. This document describes the supported fusion patterns for Reduction. Pattern Structure ~~~~~~~~~~~~~~~~~ oneDNN defines floating-point Reduction fusion patterns as follows. The blue nodes are required when defining a Reduction fusion pattern while the brown nodes are optional. .. image:: reduction_pattern.png :alt: Reduction pattern #. Reduction Operation : Performs the corresponding reduction operation for the ``src`` tensor. See the :ref:`ReduceL1 `, :ref:`ReduceL2 `, :ref:`ReduceMax `, :ref:`ReduceMean `, :ref:`ReduceMin `, :ref:`ReduceProd ` and :ref:`ReduceSum ` operations in the Graph API for more details. #. Epilogue Subgraph : Optional and can include the following operations: * Binary and Unary operations: refer to the Note in `Fusion Patterns `__. Combination Rules: .. image:: epilogue_subgraph_general_1.png :alt: epilogue subgraph * 0 to 4 Binary or Unary operations are supported in the epilogue subgraph. Data Types ~~~~~~~~~~ oneDNN supports the following combinations of data types for src and dst: ============= ============= src dst ============= ============= f32,bf16,f16 f32,bf16,f16 ============= ============= The definition of the data types and support status on different CPU and GPU platforms follow the general description in the :ref:`Data Types Guide `.