21
Copyright © 2016 Synopsys 1 Pierre Paulin May 4 th , 2016 Synopsys experience with OpenVX™ for a Face Tracking Application

for a Face Tracking Application · • May 2015 Embedded Vision Summit Technical Presentation: "Tailoring Convolutional Neural Networks for Low-Cost, Low-Power Implementation," Bruno

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: for a Face Tracking Application · • May 2015 Embedded Vision Summit Technical Presentation: "Tailoring Convolutional Neural Networks for Low-Cost, Low-Power Implementation," Bruno

Copyright © 2016 Synopsys 1

Pierre Paulin

May 4th, 2016

Synopsys experience with OpenVX™

for a Face Tracking Application

Page 2: for a Face Tracking Application · • May 2015 Embedded Vision Summit Technical Presentation: "Tailoring Convolutional Neural Networks for Low-Cost, Low-Power Implementation," Bruno

Copyright © 2016 Synopsys 2

• Optimizing the OpenVX™ Graph Manager for Embedded Multi-core

Architectures

• Face Tracking Example

• Lessons learned

Outline

Page 3: for a Face Tracking Application · • May 2015 Embedded Vision Summit Technical Presentation: "Tailoring Convolutional Neural Networks for Low-Cost, Low-Power Implementation," Bruno

Copyright © 2016 Synopsys 6

Introduction to OpenVX™ Graph Mapping

User

kernels

Embedded Vision Processor Shared

Memory

DMA

CPU

Interconnect

32-Bit

RISC

32-Bit

RISC

32-Bit

RISC

32-Bit

RISC

Vision Accelerators

… …

PE PE PE

PE PE PE

Ui

Vendor kernels

Vm

Ui

Uj

Uk Kn

Vm

K1 Kn … Kernel Lib

graph

Page 4: for a Face Tracking Application · • May 2015 Embedded Vision Summit Technical Presentation: "Tailoring Convolutional Neural Networks for Low-Cost, Low-Power Implementation," Bruno

Copyright © 2016 Synopsys 7

• Some SoC with embedded vision processors may not have a host processor to

run the OpenVX graph creation, verification and deployment steps

• Solution

• Make the vision multi-core processor self-contained/self-hosting

• Full OpenVX API available on the vision processor

• Keep the flexibility to build graphs dynamically

• As opposed to a solution where the graphs are created and verified

with an offline tool

• Avoid the heavy cost of a host processor running Linux

Challenge #1

Page 5: for a Face Tracking Application · • May 2015 Embedded Vision Summit Technical Presentation: "Tailoring Convolutional Neural Networks for Low-Cost, Low-Power Implementation," Bruno

Copyright © 2016 Synopsys 8

• Embedded vision applications have aggressive PPA requirements

• Solution: Optimize OpenVX graph manager to

• Make smart use of available data memories

• Caches, tightly coupled memories, shared on-chip memories, external DRAM …

• Use DMA as much as possible for efficient data buffer movement

• Allow users to fine-tune the graph mapping using OpenVX hints

• Node-to-core assignments

• Data buffer placement

• Scheduler hints

• Support pipelined graph execution

Challenge #2

Page 6: for a Face Tracking Application · • May 2015 Embedded Vision Summit Technical Presentation: "Tailoring Convolutional Neural Networks for Low-Cost, Low-Power Implementation," Bruno

Copyright © 2016 Synopsys 9

• Graph Mapping

• Graph manager

performs

OpenVX node-

to-core

assignment and

load balancing

• Automatic

insertion of

communication

buffers and

memory

allocation

OpenVX Graph Mapping

User

kernels

Embedded Vision Processor Shared

Memory

DMA

CPU

Interconnect

32-Bit

RISC

32-Bit

RISC

32-Bit

RISC

32-Bit

RISC

Vision Accelerators

… …

PE PE PE

PE PE PE

Ui

Vendor kernels

Vm

Ui

Uj

Uk Kn

Vm

K1 Kn … Kernel Lib

graph

Page 7: for a Face Tracking Application · • May 2015 Embedded Vision Summit Technical Presentation: "Tailoring Convolutional Neural Networks for Low-Cost, Low-Power Implementation," Bruno

Copyright © 2016 Synopsys 10

• Delay objects can be used to allow pipelined graph execution

• Each kernel runs in parallel at frame-level order

• K1 and K2 in diagram can be executed in parallel, on different cores for example

• Downside: requires more memory to store the temporary objects between

kernels, compared to tiling

Frame-based Pipelined Execution

Slot -1

Delay Object

Slot 0 K1 K2

vxProcessGraph(graph)

vxAgeDelay(delay)

Page 8: for a Face Tracking Application · • May 2015 Embedded Vision Summit Technical Presentation: "Tailoring Convolutional Neural Networks for Low-Cost, Low-Power Implementation," Bruno

Copyright © 2016 Synopsys 11

• Frame-based kernel implementations require access to full input/output images

• Images may not fit on the small on-chip memory of typical EV processors

• Solutions

• Use kernel aggregation techniques

• Use L1 data caches and frames in external memory

• Only when algorithm does not permit a tiled solution

• Implement the graph using a tiled data flow

Challenge #3

Page 9: for a Face Tracking Application · • May 2015 Embedded Vision Summit Technical Presentation: "Tailoring Convolutional Neural Networks for Low-Cost, Low-Power Implementation," Bruno

Copyright © 2016 Synopsys 12

• Logical Model

• Data flow between Kernels

Tile-based Pipelined Execution

Reducing memory size and power

K1

Frame1

K2

Frame2 Frame3

External DRAM

K1 K2

Frame1

K2

External DRAM

DMA

EV Processor Local Memory

Tile Tile

K1

Tile

Frame3

DMA

• Classical Kernel Implementation

• Host-Device frame buffer movement

• Efficiency/memory size/power issues!

• Tiled implementation

• Enhanced OpenVX runtime

• Data “tunneled” through small(er)

local memory

• No round-trip to host

Page 10: for a Face Tracking Application · • May 2015 Embedded Vision Summit Technical Presentation: "Tailoring Convolutional Neural Networks for Low-Cost, Low-Power Implementation," Bruno

Copyright © 2016 Synopsys 13

• OpenVX standard set of vision functions is currently limited

• Real-life embedded vision applications will require additional functionality

• Solutions

• Extend standard set with “vendor” kernels optimized for target architecture

• Provide an efficient way for users to implement their own kernels

• Including support for user kernel tiling

• Optimize OpenVX graph manager to efficiently map graphs that combine

• Standard, vendor-supplied and user-defined nodes

• Tile-based and frame-based nodes

• Increased standard kernel library planned in future OpenVX releases

Challenge #4

Page 11: for a Face Tracking Application · • May 2015 Embedded Vision Summit Technical Presentation: "Tailoring Convolutional Neural Networks for Low-Cost, Low-Power Implementation," Bruno

Copyright © 2016 Synopsys 14

Face Tracking OpenVX™ Case Study

Page 12: for a Face Tracking Application · • May 2015 Embedded Vision Summit Technical Presentation: "Tailoring Convolutional Neural Networks for Low-Cost, Low-Power Implementation," Bruno

Copyright © 2016 Synopsys 15

• Detects multiple faces, tracks one identified face

• Derived from the Tracking-Learning-Detection (TLD) algorithm

• Modified to use CNN-based face detection

• Introduction of a context-aware tracking that complements the CNN detections

• Improves tracking accuracy, adds distinctiveness

Face Tracking Example

Greyscale Conversion

Image Pyramid

CNN

Context Tracker

Fusion

Detection Cascade

Non-max Suppression

Fusion

Learning

Draw Box Integral Image (x2)

Detection Cascade

Page 13: for a Face Tracking Application · • May 2015 Embedded Vision Summit Technical Presentation: "Tailoring Convolutional Neural Networks for Low-Cost, Low-Power Implementation," Bruno

Copyright © 2016 Synopsys 16

• The face tracking application is captured as an OpenVX™ frame-based graph

• Kernels consume/produce OpenVX data objects

• Images, arrays, matrices, scalars, etc.

Face Tracker Mapping

vxSnps

CnnNode NMS

vxSnps

CnnPyramidNode

SQRIntegralImage

ContextTracker

CascadeDetect

Learning vxSnps

GreyscaleNode

Page 14: for a Face Tracking Application · • May 2015 Embedded Vision Summit Technical Presentation: "Tailoring Convolutional Neural Networks for Low-Cost, Low-Power Implementation," Bruno

Copyright © 2016 Synopsys 17

• Node-to-core assignment is manually done to favor a good load balancing

between cores, and to limit the inter-core data bandwidth

• OpenVX™ hint mechanism for core assignment

Graph Scheduling and Assignment

RISC #1 RISC #2

RISC #3

RISC #4

vxSnps

CnnNode NMS

vxSnps

CnnPyramidNode

SQRIntegralImage

ContextTracker

CascadeDetect

Learning vxSnps

GreyscaleNode

Node-to-core assignment

RISC #4

Page 15: for a Face Tracking Application · • May 2015 Embedded Vision Summit Technical Presentation: "Tailoring Convolutional Neural Networks for Low-Cost, Low-Power Implementation," Bruno

Copyright © 2016 Synopsys 18

• Current OpenVX™ standard kernels are not always flexible enough

• More efficient RGB-to-Y greyscale conversion kernel developed

• Replaces standard Color Convert and Channel Extract kernels

• A more flexible Image Pyramid kernel developed

• Handles any downscaling factor

• A more flexible Integral Image user kernel developed

• Produces square integral images

• Use of non-standard kernels reduces portability across multiple platforms

• Working with Khronos to generalize these functions in future releases

Challenges

Page 16: for a Face Tracking Application · • May 2015 Embedded Vision Summit Technical Presentation: "Tailoring Convolutional Neural Networks for Low-Cost, Low-Power Implementation," Bruno

Copyright © 2016 Synopsys 19

• Shared global data structures cannot be easily captured by OpenVX™

• Large structures (such as face models) are read by multiple kernels

• Capturing face models as OpenVX object and passing it to all nodes

that read it would duplicate data and increase memory requirement

• Updating the face models had to be done outside the scope of

OpenVX to avoid race conditions

• Defined a schedule that kept the worker cores active while the

main application code was updating the models

Open Issues

Page 17: for a Face Tracking Application · • May 2015 Embedded Vision Summit Technical Presentation: "Tailoring Convolutional Neural Networks for Low-Cost, Low-Power Implementation," Bruno

Copyright © 2016 Synopsys 20

• Frames captured

from execution on

HAPS-70 S12

FPGA prototyping

board

Face Tracker Demo – on FPGA board

Page 18: for a Face Tracking Application · • May 2015 Embedded Vision Summit Technical Presentation: "Tailoring Convolutional Neural Networks for Low-Cost, Low-Power Implementation," Bruno

Copyright © 2016 Synopsys 21

Lessons Learned

Page 19: for a Face Tracking Application · • May 2015 Embedded Vision Summit Technical Presentation: "Tailoring Convolutional Neural Networks for Low-Cost, Low-Power Implementation," Bruno

Copyright © 2016 Synopsys 22

• Implementing OpenVX™ for a multi-core vision processor requires a lot

of optimization

• Smart data placement/movement strategies

• Tiled-based data flow execution, with support for user kernels

• Allow users to fine-tune graph mapping decisions using hints

• Efficient support of mix of kernel types

• Standard, vendor and user kernels

• Tiled and frame-based kernels

• Do not rely on a host processor running Linux for graph creation

Lessons Learned

Page 20: for a Face Tracking Application · • May 2015 Embedded Vision Summit Technical Presentation: "Tailoring Convolutional Neural Networks for Low-Cost, Low-Power Implementation," Bruno

Copyright © 2016 Synopsys 23

• Capturing real-life vision applications in OpenVX™ is challenging

• Some of the standard vision kernels are not flexible enough

• Not all vision kernels can easily be tiled

• Not all applications nicely fit into a data flow representation with

nodes that can be well balanced on the available cores

• Some performance degradation is possible due to use of a standard

programming model

• Performance vs. productivity vs. portability trade-off

• Having an optimized graph manager for the target architecture is key

to achieving good performance and win that trade-off

Lessons Learned, cont’d.

Page 21: for a Face Tracking Application · • May 2015 Embedded Vision Summit Technical Presentation: "Tailoring Convolutional Neural Networks for Low-Cost, Low-Power Implementation," Bruno

Copyright © 2016 Synopsys 24

• Synopsys DesignWare EV Family Of Vision Processors:

• https://www.synopsys.com/dw/ipdir.php?ds=ev52-ev54

• May 2015 Embedded Vision Summit Technical Presentation: "Low-power Embedded

Vision: A Face Tracker Case Study," Pierre Paulin, Synopsys

• http://www.embedded-vision.com/platinum-members/synopsys/embedded-vision-

training/videos/pages/may-2015-embedded-vision-summit-2

• May 2015 Embedded Vision Summit Technical Presentation: "Tailoring Convolutional

Neural Networks for Low-Cost, Low-Power Implementation," Bruno Lavigueur,

Synopsys

• http://www.embedded-vision.com/platinum-members/synopsys/embedded-vision-

training/videos/pages/may-2015-embedded-vision-summit

• Please come by to see our EV Processor demos at the Synopsys booth:

• Location tbd

Resources