Pool Fusion Patterns#
Overview#
The Pool category includes operations such as: AvgPool and MaxPool.
oneDNN supports various pool fusion patterns to optimize performance and reduce memory bandwidth requirements. This document describes the supported fusion patterns for Pool operations.
Pattern Structure#
oneDNN defines floating-point Pool fusion patterns as follows. The blue nodes are required when defining a Pool fusion pattern while the brown nodes are optional.

Pool Operation : Performs the corresponding pool operation for the
src
tensor. See the AvgPool and MaxPool 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:
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 Data Types Guide.
Implementation Limitations#
The AvgPool operation doesn’t support the combination of rounding_type equal to ceil and exclude_pad equal to false.