MODULE 03 · LESSON 03
Execution providers
An execution provider runs graph operations supported by one hardware backend.
PLAIN-LANGUAGE INTRODUCTION
What is this?
An execution provider runs graph operations supported by one hardware backend.
One simple example
GPU runs MatMul and Add. CPU runs unsupported CustomNormalize. Data crosses providers once.
What goes in?
A graph and an ordered list of available execution providers.
What comes out?
A graph partition that assigns each operation to a provider.
Why does it matter?
Placement affects supported operations, transfers, memory, and speed.
What is it not?
Selecting a GPU provider does not guarantee that every operation uses the GPU.
WORK THROUGH THE IDEA
See the idea in more detail
- A provider checks which graph nodes it supports. ONNX Runtime partitions nodes using that support.
- In this illustration, the GPU claims
MatMulandAdd. - The custom node is unsupported there. The CPU provider runs
CustomNormalize. - Moving its input to CPU adds a device transfer. Logs and profiling reveal the actual placement.
- Common mistake: reading the provider list alone does not prove full GPU execution.