29
Deep Learning System Stack Pooyan Jamshidi UofSC

Deep Learning System Stack - Pooyan Jamshidi · Discussion: Numpy vs TF Program. Typical Deep Learning System Stack. Computation Graph Optimization. Parallel Scheduling. Typical Deep

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Deep Learning System Stack - Pooyan Jamshidi · Discussion: Numpy vs TF Program. Typical Deep Learning System Stack. Computation Graph Optimization. Parallel Scheduling. Typical Deep

Deep Learning System Stack

Pooyan JamshidiUofSC

Page 2: Deep Learning System Stack - Pooyan Jamshidi · Discussion: Numpy vs TF Program. Typical Deep Learning System Stack. Computation Graph Optimization. Parallel Scheduling. Typical Deep

The Deep Learning Systems Juggle

Page 3: Deep Learning System Stack - Pooyan Jamshidi · Discussion: Numpy vs TF Program. Typical Deep Learning System Stack. Computation Graph Optimization. Parallel Scheduling. Typical Deep

Typical Deep Learning System Stack

Page 4: Deep Learning System Stack - Pooyan Jamshidi · Discussion: Numpy vs TF Program. Typical Deep Learning System Stack. Computation Graph Optimization. Parallel Scheduling. Typical Deep

Typical Deep Learning System Stack

Page 5: Deep Learning System Stack - Pooyan Jamshidi · Discussion: Numpy vs TF Program. Typical Deep Learning System Stack. Computation Graph Optimization. Parallel Scheduling. Typical Deep

Example: Logistic Regression

Page 6: Deep Learning System Stack - Pooyan Jamshidi · Discussion: Numpy vs TF Program. Typical Deep Learning System Stack. Computation Graph Optimization. Parallel Scheduling. Typical Deep

Logistic Regression in Numpy

Page 7: Deep Learning System Stack - Pooyan Jamshidi · Discussion: Numpy vs TF Program. Typical Deep Learning System Stack. Computation Graph Optimization. Parallel Scheduling. Typical Deep

Logistic Regression in Numpy

Page 8: Deep Learning System Stack - Pooyan Jamshidi · Discussion: Numpy vs TF Program. Typical Deep Learning System Stack. Computation Graph Optimization. Parallel Scheduling. Typical Deep

Logistic Regression in TinyFlow (TensorFlow like API)

Page 9: Deep Learning System Stack - Pooyan Jamshidi · Discussion: Numpy vs TF Program. Typical Deep Learning System Stack. Computation Graph Optimization. Parallel Scheduling. Typical Deep

Logistic Regression in TinyFlow

Page 10: Deep Learning System Stack - Pooyan Jamshidi · Discussion: Numpy vs TF Program. Typical Deep Learning System Stack. Computation Graph Optimization. Parallel Scheduling. Typical Deep

Logistic Regression in TinyFlow

Page 11: Deep Learning System Stack - Pooyan Jamshidi · Discussion: Numpy vs TF Program. Typical Deep Learning System Stack. Computation Graph Optimization. Parallel Scheduling. Typical Deep

Logistic Regression in TinyFlow

Page 12: Deep Learning System Stack - Pooyan Jamshidi · Discussion: Numpy vs TF Program. Typical Deep Learning System Stack. Computation Graph Optimization. Parallel Scheduling. Typical Deep

Logistic Regression in TinyFlow

Page 13: Deep Learning System Stack - Pooyan Jamshidi · Discussion: Numpy vs TF Program. Typical Deep Learning System Stack. Computation Graph Optimization. Parallel Scheduling. Typical Deep

The Declarative Language: Computation Graph

Page 14: Deep Learning System Stack - Pooyan Jamshidi · Discussion: Numpy vs TF Program. Typical Deep Learning System Stack. Computation Graph Optimization. Parallel Scheduling. Typical Deep

Computational Graph Construction by Step

Page 15: Deep Learning System Stack - Pooyan Jamshidi · Discussion: Numpy vs TF Program. Typical Deep Learning System Stack. Computation Graph Optimization. Parallel Scheduling. Typical Deep

Computational Graph Construction by Step

Page 16: Deep Learning System Stack - Pooyan Jamshidi · Discussion: Numpy vs TF Program. Typical Deep Learning System Stack. Computation Graph Optimization. Parallel Scheduling. Typical Deep

Computational Graph Construction by Step

Page 17: Deep Learning System Stack - Pooyan Jamshidi · Discussion: Numpy vs TF Program. Typical Deep Learning System Stack. Computation Graph Optimization. Parallel Scheduling. Typical Deep

Computational Graph Construction by Step

Page 18: Deep Learning System Stack - Pooyan Jamshidi · Discussion: Numpy vs TF Program. Typical Deep Learning System Stack. Computation Graph Optimization. Parallel Scheduling. Typical Deep

Execution only Touches the Needed Subgraph

Page 19: Deep Learning System Stack - Pooyan Jamshidi · Discussion: Numpy vs TF Program. Typical Deep Learning System Stack. Computation Graph Optimization. Parallel Scheduling. Typical Deep

Discussion: Computational Graph

Page 20: Deep Learning System Stack - Pooyan Jamshidi · Discussion: Numpy vs TF Program. Typical Deep Learning System Stack. Computation Graph Optimization. Parallel Scheduling. Typical Deep

Discussion: Numpy vs TF Program

Page 21: Deep Learning System Stack - Pooyan Jamshidi · Discussion: Numpy vs TF Program. Typical Deep Learning System Stack. Computation Graph Optimization. Parallel Scheduling. Typical Deep

Typical Deep Learning System Stack

Page 22: Deep Learning System Stack - Pooyan Jamshidi · Discussion: Numpy vs TF Program. Typical Deep Learning System Stack. Computation Graph Optimization. Parallel Scheduling. Typical Deep

Computation Graph Optimization

Page 23: Deep Learning System Stack - Pooyan Jamshidi · Discussion: Numpy vs TF Program. Typical Deep Learning System Stack. Computation Graph Optimization. Parallel Scheduling. Typical Deep

Parallel Scheduling

Page 24: Deep Learning System Stack - Pooyan Jamshidi · Discussion: Numpy vs TF Program. Typical Deep Learning System Stack. Computation Graph Optimization. Parallel Scheduling. Typical Deep

Typical Deep Learning System Stack

Page 25: Deep Learning System Stack - Pooyan Jamshidi · Discussion: Numpy vs TF Program. Typical Deep Learning System Stack. Computation Graph Optimization. Parallel Scheduling. Typical Deep

GPU Acceleration

Page 26: Deep Learning System Stack - Pooyan Jamshidi · Discussion: Numpy vs TF Program. Typical Deep Learning System Stack. Computation Graph Optimization. Parallel Scheduling. Typical Deep

Typical Deep Learning System Stack

Page 27: Deep Learning System Stack - Pooyan Jamshidi · Discussion: Numpy vs TF Program. Typical Deep Learning System Stack. Computation Graph Optimization. Parallel Scheduling. Typical Deep

Supporting More Hardware backends

Page 28: Deep Learning System Stack - Pooyan Jamshidi · Discussion: Numpy vs TF Program. Typical Deep Learning System Stack. Computation Graph Optimization. Parallel Scheduling. Typical Deep

Each Hardware backend requires a software stack

Page 29: Deep Learning System Stack - Pooyan Jamshidi · Discussion: Numpy vs TF Program. Typical Deep Learning System Stack. Computation Graph Optimization. Parallel Scheduling. Typical Deep

New Trend: Compiler based Approach