davinci: a scalablearchitecture for neural network computing · system cache/ buffer da vinci core...

35
DaVinci: A Scalable Architecture for Neural Network Computing

Upload: others

Post on 20-May-2020

34 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: DaVinci: A ScalableArchitecture for Neural Network Computing · System Cache/ Buffer Da Vinci Core ARM N SPECIFICATIONS Description Architecture AI co-processor Performance Up to

DaVinci: A ScalableArchitecture

for Neural Network Computing

Page 2: DaVinci: A ScalableArchitecture for Neural Network Computing · System Cache/ Buffer Da Vinci Core ARM N SPECIFICATIONS Description Architecture AI co-processor Performance Up to

AI Computation for All Scenarios

Smart

Toy

Memory Footprint (GB)

IP

Camer

a

Smart

phone

IoT

Robotics

Industrial

EmbeddedAI

Driving

Cloud

AI Inference

Drones

Model

Training

Auto ML

Meta-Learning

Algorithm

Discovery

AutonomousSmart CityIntelligent

Surveillance

GeneralArtificial

Intelligence

Computation Requirement Range for Applications

Computation

(TOPS)

Page 3: DaVinci: A ScalableArchitecture for Neural Network Computing · System Cache/ Buffer Da Vinci Core ARM N SPECIFICATIONS Description Architecture AI co-processor Performance Up to

Huawei AI Processor for All Scenarios

D-Tiny

D-Lite

D-Mini

DaVinci

Max

Cloud-

training

Robot

Wireless

Phone

Wearable

DaVinci

Edge-

training

Memory Footprint (GB)

Computation (TOPS)

Page 4: DaVinci: A ScalableArchitecture for Neural Network Computing · System Cache/ Buffer Da Vinci Core ARM N SPECIFICATIONS Description Architecture AI co-processor Performance Up to
Page 5: DaVinci: A ScalableArchitecture for Neural Network Computing · System Cache/ Buffer Da Vinci Core ARM N SPECIFICATIONS Description Architecture AI co-processor Performance Up to

Architecture Overview of DaVinci

Page 6: DaVinci: A ScalableArchitecture for Neural Network Computing · System Cache/ Buffer Da Vinci Core ARM N SPECIFICATIONS Description Architecture AI co-processor Performance Up to

Building Blocks and their Computation Intensity

N N2 N3

1 1 1GPU +

Tensor core

AI core +

SRAM2 4 8

4 16 128 Area

(normalized

to 12 nm)5.2mm^2 13.2mm^28 64 512

16 256 4096

32 1024 32768 Compute

power

1.7Tops

fp16

8Tops

fp1664 4096 262144

1D Scalar Unit +

Full flexibility

2D Vector Unit + 3D Matrix Unit

Rich & efficient operations High intensity

Page 7: DaVinci: A ScalableArchitecture for Neural Network Computing · System Cache/ Buffer Da Vinci Core ARM N SPECIFICATIONS Description Architecture AI co-processor Performance Up to

DaVinci Core

• Cube:4096(16^3) FP16 MACs + 8192 INT8 MACs

• Vector:2048bit INT8/FP16/FP32 vector with special functions

(activation functions, NMS- Non Minimum Suppression, ROI, SORT)

• Explicit memory hierarchy design, managed by MTE

1 6 ^ 3 C u b eA / B

D F F 16̂2

accu

mulat

or

B u f f e r A L 0

( 6 4 K B )

B u f f e r B L 0

( 6 4 K B )

U n i f i e d B u f f e r ( 2 5 6 K B )

D a V i n c i C o r e ( 1 6 ^ 3 C u b e )

MT

E

Acc

umDFF

L1 B

uffe

r(1M

B)

L1DM

AC

B I U

B u f f e r C L 0 ( 2 5 6 K B )

I C a c h e

( 3 2 K B ) Sca

la

r PSQ

L 0 l o a d

4 0 9 6 -b it

L 1 l o a d

2 0 4 8 -b it

S y s te m

C on t ro lC o n f ig

P o r t

F P 1 6 -> F P 3 2 F P 3 2 -> F P 16 R e L U

8 * 1 6 V e c t o r U n i t

L / S

2 0 4 8 -b it

SPR S c a l a r U n i t / A G U /

M a s k G e n GPR

C u b e Q u e u e

V e c t o r Q u e u e

M T E Q u e u e

E v e n t S y n cI ns t r .

D is p a tc h

deco

mp

img

2c

ol

trans

L 2 a c c e s s

1024-b i t * 2

Page 8: DaVinci: A ScalableArchitecture for Neural Network Computing · System Cache/ Buffer Da Vinci Core ARM N SPECIFICATIONS Description Architecture AI co-processor Performance Up to

Micro Architecture Configurations

Core

Version

Cube

Ops/cycle

Vector

Ops/Cycle

L0

Bus width

L1

Bus Width

L2

Bandwidth

Davinci

Max8192 256

Match

Execution

Units

Not

bottleneck

A:8192

B:2048

910: 3TB/s ÷32

610: 2TB/s ÷8

310: 192GB/s÷2

Davinci

Lite4096 128

A:8192

B:204838.4GB/s

Davinci

Tiny512 32

A:2048

B:512None

Set the

performance

baseline

Minimize vector

bound

Ensure this is

not a bound

Scarce, limited by NoC,

avoid bound where possible

Page 9: DaVinci: A ScalableArchitecture for Neural Network Computing · System Cache/ Buffer Da Vinci Core ARM N SPECIFICATIONS Description Architecture AI co-processor Performance Up to

Overview of the Software Stack

Instruction Set Architecture

Low Level 1 Compiler (Intrinsic C) (Architecture defined programming)

Level 1 Library (written by expert)

Level 2 Compiler (parallel/kernel programming model)

Level 2 Library (written by skilled programmer)

Level 3 Compiler (mathematical programming model)

Level 3 Library (written by novice programmer)

GPU

Cuda/OpenCL

NPU

CCE C

CCE Lib

TIK

TIK LIB

TBE

TBE LIB

CudaNN/ CuBLAS

TVM/XLA

Page 10: DaVinci: A ScalableArchitecture for Neural Network Computing · System Cache/ Buffer Da Vinci Core ARM N SPECIFICATIONS Description Architecture AI co-processor Performance Up to

Putting All This Together

PytorchTensorflow Mindspore

Graph Engine (L2: Architecture independent)

CANN (L1: Architecture dependent)

Task scheduler

Davinci Core Davinci Core Davinci Core

User Program: AI model description

Operator Library, User defined operators

• User program AI model using familiar frameworks

• Extends operator library when necessary

• The tasks are executed in a single node, or over a network cluster

Page 11: DaVinci: A ScalableArchitecture for Neural Network Computing · System Cache/ Buffer Da Vinci Core ARM N SPECIFICATIONS Description Architecture AI co-processor Performance Up to

DaVinci AI Processors and Products

Page 12: DaVinci: A ScalableArchitecture for Neural Network Computing · System Cache/ Buffer Da Vinci Core ARM N SPECIFICATIONS Description Architecture AI co-processor Performance Up to

Mobile AP SoC: Kirin 990 contain D-lite version NPU

Page 13: DaVinci: A ScalableArchitecture for Neural Network Computing · System Cache/ Buffer Da Vinci Core ARM N SPECIFICATIONS Description Architecture AI co-processor Performance Up to

Mobile AP SoC: Kirin 990 contain D-lite version NPU

Page 14: DaVinci: A ScalableArchitecture for Neural Network Computing · System Cache/ Buffer Da Vinci Core ARM N SPECIFICATIONS Description Architecture AI co-processor Performance Up to

Ascend 910

High Computing Density

Ascend 310

High Power Efficiency

Ascend-Mini

Architecture: DaVinci

FP16:8 TeraFLOPS

INT8 :16 TeraOPS

16 Channel Video Decode –H.264/265

1 Channel Video Encode – H.264/265

Power:8W

Process: 12nm

Ascend-Max Architecture: DaVinci

FP16: 256 TeraFLOPS

INT8: 512 TeraOPS

128 Channel Video Decode –

H.264/265

Power: 300W

Process: 7+ nm EUV

Ascend AI Processor: 310 and 910

Page 15: DaVinci: A ScalableArchitecture for Neural Network Computing · System Cache/ Buffer Da Vinci Core ARM N SPECIFICATIONS Description Architecture AI co-processor Performance Up to

Huawei AI Solutions For Inference

Page 16: DaVinci: A ScalableArchitecture for Neural Network Computing · System Cache/ Buffer Da Vinci Core ARM N SPECIFICATIONS Description Architecture AI co-processor Performance Up to

Huawei Confidential

Ascend 310 Specification: D-mini version

16

Note: This is typical configuration, high performance and low power sku can be offered

based on your requirement.

CubeL

S

U Cache/Buffer

Vector

Scalar

FHD Video

Image CodecPeripherals/IO DDR

System

Cache/

Buffer

Da Vinci CoreARM

N

SPECIFICATIONS Description

Architecture AI co-processor

PerformanceUp to 8T @FP16

Up to 16T@INT8

Codec16 Channel Decoder –H.264/265 1080P301 Channel Encoder

Memory Controller LPDDR4X

Memory Bandwidth 2*64bit @3733MT/S

System Interface PCIe3.0 /USB 3.0/GE

Package 15mm*15mm

Max Power 8Tops@4W, 16Tops@8W

Process 12nm FFC

Page 17: DaVinci: A ScalableArchitecture for Neural Network Computing · System Cache/ Buffer Da Vinci Core ARM N SPECIFICATIONS Description Architecture AI co-processor Performance Up to

Applications Built on Atlas 200 DK

Facial recognition

Facial

recognition

Vehicle detection

Classification

network

Unmanned vehicle

Handwritten text recognition

Robotic arm

Age recognition

Blocked face detection

Robots

Image processing

Image marking

Facial expression

transplant

Protein subcellular

position prediction

Fundus retinal vascular

segmentation

NPL

Image edge detection

Cartoon image generation

Semantic assisted high-precision

3D reconstruction

AR shadow generationHDR

Page 18: DaVinci: A ScalableArchitecture for Neural Network Computing · System Cache/ Buffer Da Vinci Core ARM N SPECIFICATIONS Description Architecture AI co-processor Performance Up to

Huawei AI Solutions For Training: Ascend 910 Server

X86 Node

8* Ascend 910

Davinci Node

Page 19: DaVinci: A ScalableArchitecture for Neural Network Computing · System Cache/ Buffer Da Vinci Core ARM N SPECIFICATIONS Description Architecture AI co-processor Performance Up to

AI Training SoC: Atlas 910 contains D-max version

Ascend 910

DDR4 DIMM

On-chip Buffer32MB

HBM 2.0

DMA Engine

Da VinciAI Core

Da VinciAI Core

HBM 2.0

DMA Engine

HBM 2.0

DMA Engine

HBM 2.0

DMA Engine

DVPPDVPP0~1

DVPP

DVPP2~3

SubsysTS

Subsys

DDR4

L3 Cache

TaishanCluster

MP40~3

DDR4

CHIE NOC (Mesh)

TaishanCluster

MP40~3

TaishanCluster

MP40~3

TaishanMP40~15

Da VinciAI Core

Da VinciAI Core

Da VinciAI Core

Da VinciAI Core

Da VinciAI Core16~23

Da VinciAI Core

Da VinciAI Core

Da VinciAI Core

Da VinciAI Core

Da VinciAI Core

Da VinciAI Core

Da VinciAI Core24~31

Da VinciAI Core

Da VinciAI Core

Da VinciAI Core

Da VinciAI Core

Da VinciAI Core

Da VinciAI Core

Da VinciAI Core

0~7

Da VinciAI Core

Da VinciAI Core

Da VinciAI Core

Da VinciAI Core

Da VinciAI Core

Da VinciAI Core

Da VinciAI Core

8~15

DDR4 DIMMDDR4 DIMM

DDR4 DIMM

On-chip HBM DIE On-chip HBM DIE

On-chip HBM DIE On-chip HBM DIE

Nimbus V3

X86/ARMHost

FPGA

ExtendedDa Vinci Board

NetworkHAC

Subsys

PCIESubsys

HydraSubsys

CCIX

NetworkSubsys

IOSubsys

IMU

Virtuvian

Page 20: DaVinci: A ScalableArchitecture for Neural Network Computing · System Cache/ Buffer Da Vinci Core ARM N SPECIFICATIONS Description Architecture AI co-processor Performance Up to

Ascend 910 Specification

SPECIFICATIONS Description

Architecture AI co-processor

Performance

Up to 256T @FP16

Up to 512T@INT8

Decoder Codec128 Channel FHD Video Decoder –H.264/265

Memory Interface 32GB HBM Gen2

System Interface PCIe3.0 x16 & HCCS & 100G RoCE

Max Power Up to 350W

Process 7nm+

Ascend 910 Specification

Page 21: DaVinci: A ScalableArchitecture for Neural Network Computing · System Cache/ Buffer Da Vinci Core ARM N SPECIFICATIONS Description Architecture AI co-processor Performance Up to

Ascend 910 Cluster

……

Ascend

Cluster

D

D

D D D

D D D

AI

Server

D

D

D D D

D D D

AI

Server

• 2048 Node x 256TFlops = 512 Peta Flops

• 1024~2048 Node Cluster

Cluster Network

Board level interconnection

Ascend910 Board

Page 22: DaVinci: A ScalableArchitecture for Neural Network Computing · System Cache/ Buffer Da Vinci Core ARM N SPECIFICATIONS Description Architecture AI co-processor Performance Up to

Development Tool: Mind Studio

Page 23: DaVinci: A ScalableArchitecture for Neural Network Computing · System Cache/ Buffer Da Vinci Core ARM N SPECIFICATIONS Description Architecture AI co-processor Performance Up to

Mind Studio —— Atlas 200 DK Tool Chain

Operator development Offline model tool Service orchestration tool App Development Tool

Page 24: DaVinci: A ScalableArchitecture for Neural Network Computing · System Cache/ Buffer Da Vinci Core ARM N SPECIFICATIONS Description Architecture AI co-processor Performance Up to

Service Orchestrator

Datasets ModelPre

ProcessDeep LearningExecute Engine

PostProcess

Drag-and-drop mode: auto-generate codes

Page 25: DaVinci: A ScalableArchitecture for Neural Network Computing · System Cache/ Buffer Da Vinci Core ARM N SPECIFICATIONS Description Architecture AI co-processor Performance Up to

Model Manager

Wizard for OMG, configuring AI preprocessing (AIPP) inside of offline model.

AIPP involves image cropping, color space conversion (CSC), and mean subtraction and multiplication coefficient (pixel changing). All these functions are implemented by the AI core.

Page 26: DaVinci: A ScalableArchitecture for Neural Network Computing · System Cache/ Buffer Da Vinci Core ARM N SPECIFICATIONS Description Architecture AI co-processor Performance Up to

DVPP —— Brief Review

DVPP(Digital Video Pre-Processor) : image/video encoding, decoding, resizing, cropping, format conversion.

DVPP

VPC JPEGD JPEGE PNGD VDEC VENC

DVPP Digital Vision Pre-Process

VPC Vision Preprocess Core

JPEGD JPEG Decode

JPEGE JPEG Encoder

PNGD Portable Network Graphics Decoder

VDEC Video Decoder

VENC Video Encoder

Page 27: DaVinci: A ScalableArchitecture for Neural Network Computing · System Cache/ Buffer Da Vinci Core ARM N SPECIFICATIONS Description Architecture AI co-processor Performance Up to

DVPP ——VPC Common Operation

Real width

Width Stride-aligned width

Real height

Height Stride–aligned height

Aligned o

utput stride

height

Aligned output stride width

Cropped

AreaOverwritten Area

Cropped area top left coordinates

Cropping area bottom right coordinates Bottom right

coordinates

Top left Coordinates

VPC Common Operation: Crop+Resize:

Page 28: DaVinci: A ScalableArchitecture for Neural Network Computing · System Cache/ Buffer Da Vinci Core ARM N SPECIFICATIONS Description Architecture AI co-processor Performance Up to

Conversion Capabilities

The OMG adapts to different network files and weight files in various frameworks and converts them into offline files in

DaVinci format for the OME to use.

The OMG is independently executed offline on the host (Linux Ubuntu) and is provided to the IDE as an OMG

executable program. The OMG can be called by command lines.

Model

Weights

GraphDavinci

Offline Model

Offline Model Generator(OMG)

Weights Parser

ModelBuilder

Model Parser

AuthenticationModel

OptimizerGraph

Optimizer

Open-Source

FrameworkInput File Storage Format

Caffe*.prototxt, network structure file Protobuf format

*.caffemodel, weight file Binary file

Caffe2

predict_net.pb, network definition file Protobuf format

All input data of the init_net.pb network,

including all weight data and input data

description of the first operator

Protobuf format

Mxnet

xx-symbol.json, network structure file JSON format

xx.params, weight file including the data, data

type, and data format of the weight nodeBinary file

Tensorsfolw*.pb: The network model and weight data are

in the same file.Protobuf format

Page 29: DaVinci: A ScalableArchitecture for Neural Network Computing · System Cache/ Buffer Da Vinci Core ARM N SPECIFICATIONS Description Architecture AI co-processor Performance Up to

OMG —— CMD IntroductionSample cmd:

./omg --model=./alexnet.prototxt --weight=./alexnet.caffemodel --framework=0 --output=./domi

./omg --model=$HOME/ResNet18_deploy.prototxt --weight= $HOME/ResNet18_model.caffemodel --framework=0 --output=$HOME/outdata/ResNet18 --input_shape= “data:1 ,3, 224, 224” –-insert_op_conf= ./aipp_con.cfg

Common Paras:--model path to original model file

--weight path to weight file (Caffe)

--framework 0:caffe3:tensorflow

--output output om file path

--plugin_path customized Operator path

--insert_op_conf aipp config file path

--input_shape input data shape。

--fp16_high_prec generate FP16 model

0:generate davinci model--mode 1:om model to json

3:only pre-check

For other parameters, please refer to Atlas200DK model conversion guide

Page 30: DaVinci: A ScalableArchitecture for Neural Network Computing · System Cache/ Buffer Da Vinci Core ARM N SPECIFICATIONS Description Architecture AI co-processor Performance Up to

MindSpore: All-scenario AI computing framework

AI applications

Device-edge-cloud cooperative distributed

architecture (for deployment, scheduling,

communications, etc.)

Business Number 02

Pipeline parallelismOn-device executionDeep graph

optimization

Unified APIs for all scenarios

Automatic

differentiation

Automatic

parallelizationAutomatic tuning

MindSpore intermediate representation (IR) for

computation graphs

Easy development: AI Algorithm As Code

Efficient execution: Optimized for Ascend, GPU

support

Flexible deployment: On-demand cooperation across all

scenarios

MindSpore

Processors: Ascend, GPU, CPU

Page 31: DaVinci: A ScalableArchitecture for Neural Network Computing · System Cache/ Buffer Da Vinci Core ARM N SPECIFICATIONS Description Architecture AI co-processor Performance Up to

ModelArts: Full-pipeline model production services

4,000+ training tasks per day (total of 32,000 training hours)

Visual tasks: 85%; audio tasks: 10%; ML tasks: 5%

ModelArts 30,000+ developers

Supports full pipeline – From data collection and model development to

model training and deployment

Page 32: DaVinci: A ScalableArchitecture for Neural Network Computing · System Cache/ Buffer Da Vinci Core ARM N SPECIFICATIONS Description Architecture AI co-processor Performance Up to

Software + hardware co-optimization:

Stronger performance

AI computing challenges

Complex computing

Scalar, vector, and tensor computing

Hybrid precision computing

Parallelism between data augmentation and minibatch

computing

Parallelism between gradient aggregation and minibatch

computing

Diverse computing power

CPUs, GPUs, and Ascend processors

Diverse computing units: scalar, vector, and tensor

MindSpore

ResNet 50 V1.5

ImageNet 2012

Based on optimal batch sizes

Framework optimization

Pipeline parallelism

Cross-layer memory reuse

Software + hardware co-

optimization

On-device execution

Deep graph optimization

Mainstream

training chip +

TensorFlow

Ascend 910 +

MindSpore

(Images/Second)

(Images/Second)

965

1802

Page 33: DaVinci: A ScalableArchitecture for Neural Network Computing · System Cache/ Buffer Da Vinci Core ARM N SPECIFICATIONS Description Architecture AI co-processor Performance Up to

Ascend Developer Community: End-to-End Services for Developers

One-stop support services

Technical documents, online resources, development

tools, video tutorials, support services, interactive

communities, and information release

Developer-centric experience

Provides rich, friendly, easy-to-use, and quick portal

experience for developers

Ascend developer portal

Unified channel for open capability release and operation

https://ascend.huawei.com

Page 34: DaVinci: A ScalableArchitecture for Neural Network Computing · System Cache/ Buffer Da Vinci Core ARM N SPECIFICATIONS Description Architecture AI co-processor Performance Up to

We also already started in Canada:• SFU:2020 Spring Term Computer Vision class for Professional Master program;• MakeUofT Hackathon: Feb 15 -16

Ascend Eco-Systems in China

Page 35: DaVinci: A ScalableArchitecture for Neural Network Computing · System Cache/ Buffer Da Vinci Core ARM N SPECIFICATIONS Description Architecture AI co-processor Performance Up to

Copyright©2020 Huawei Technologies Co., Ltd.

All Rights Reserved.

The information in this document may contain predictive

statements including, without limitation, statements regarding

the future financial and operating results, future product portfolio, new technology, etc. There are a number of factors that

could cause actual results and developments to differ materially from those expressed or implied in the predictive statements.

Therefore, such information is provided for reference purpose only and constitutes neither an offer nor an acceptance. Huawei

may change the information at any time without notice.

Huawei Confidential

Bring digital to every person, home and organization for a fully connected,

intelligent world.

Thank you.

Da Vinci Ascend Atlas