broom · uc berkeley broom chip (taped out aug 2017) open-source superscalar out-of-order risc-v...

32
UC Berkeley BROOM An open-source out-of-order processor with resilient low-voltage operation in 28nm CMOS Christopher Celio, Pi-Feng Chiu, Krste Asanović, David Patterson, and Borivoje Nikolic Hot Chips 2018

Upload: others

Post on 07-Jun-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: BROOM · UC Berkeley BROOM Chip (Taped out Aug 2017) Open-source superscalar out-of-order RISC-V core Resilient cache for low-voltage operation 2 1 MB L2 Cache BTB L1 D$ core L2 tag

UC Berkeley

BROOM An open-source out-of-order processor with

resilient low-voltage operation in 28nm CMOS

Christopher Celio, Pi-Feng Chiu,Krste Asanović, David Patterson, and Borivoje Nikolic

Hot Chips 2018

Page 2: BROOM · UC Berkeley BROOM Chip (Taped out Aug 2017) Open-source superscalar out-of-order RISC-V core Resilient cache for low-voltage operation 2 1 MB L2 Cache BTB L1 D$ core L2 tag

Async. FIFOs + level shifters

BOOM Domain (0.5V-1V)

Uncore Domain

VDDVDDCORE

BOOM Core

L1-to-L2 Crossbar

MMIO RouterRead/write all counters

and control registers

1MB L2 CacheBank0

μArchCounters

μArchCounters

JTAGDigital

IO Pads

Configurable Memory Traffic Switcher

To FPGA GPIO

BTB

Load/Store Unit

int int agen

Phys. Int RF (semi-custom

bit cell)

FPU

6KBBr Pred

Issue Units

16KB ScalarInst. Cache

(foundry 6T SRAM Macros)

Arbiter

16KB ScalarData Cache

(foundry 8T SRAM Macros)

Phys.FP RF

Tile Link IO Bidirectional SERDES

UC Berkeley BROOM Chip (Taped out Aug 2017)

◾ Open-source superscalar out-of-order RISC-V core◾ Resilient cache for low-voltage operation

2

1 MB L2 Cache

BTB

coreL1 D$

L2 tag array and recycle array

L1 I$BPD

TSMC 28 nm HPM 6 mm2

417k std cells 73 SRAM macros 1.0 GHz @ 0.9 V

Page 3: BROOM · UC Berkeley BROOM Chip (Taped out Aug 2017) Open-source superscalar out-of-order RISC-V core Resilient cache for low-voltage operation 2 1 MB L2 Cache BTB L1 D$ core L2 tag

UC Berkeley Outline◾ What is BROOM?◾ The RISC-V BOOM Core◾ Micro-architectural-level assist techniques- Line Disable (LD)- Line Recycle (LR)-Dynamic Column Redundancy (DCR)-Bit Bypass with SRAM (BB-S)

◾ The Agile Design Experience◾ Chip Implementation◾ Low Voltage Experimental Results◾ Future Directions

3

Page 4: BROOM · UC Berkeley BROOM Chip (Taped out Aug 2017) Open-source superscalar out-of-order RISC-V core Resilient cache for low-voltage operation 2 1 MB L2 Cache BTB L1 D$ core L2 tag

UC Berkeley What is BOOM?

4http://ucb-bar.github.io/riscv-boom

◾ "Berkeley Out-of-Order Machine"◾out-of-order◾superscalar◾ implements RV64G, boots Linux◾ It is synthesizable◾ it is open-source◾written in Chisel (16k loc)◾ It is parameterizable generator◾built on top of Rocket-chip SoC

Ecosystem

integer

load/store

fp

fetchdec, ren,

& dis

issue/rrdqueues

BOOMv2-2f4i

wb

FRFlsu

btbbpd I$D$

IRFIQ1IQ0

ROB

imul DFMA

SFMA

IQ2

idiv

mshrs

csr

dec

Page 5: BROOM · UC Berkeley BROOM Chip (Taped out Aug 2017) Open-source superscalar out-of-order RISC-V core Resilient cache for low-voltage operation 2 1 MB L2 Cache BTB L1 D$ core L2 tag

UC Berkeley Timeline (the path to Hot Chips)

5

TA

2017

2016

2015

2014

2013

2012

2011

Verilog OOO

engine

Chisel'sfirst commit

toy BOOM1-wide

magic memorycaches

boots simplekernel

RV64IMsuper-scalar

atomicsFP

VM TAGEpredictor

BROOMtapeout

RISC-V 2.0

boots linux

TA Thesis

2010

bugfixing

open-sourced

2018

Page 6: BROOM · UC Berkeley BROOM Chip (Taped out Aug 2017) Open-source superscalar out-of-order RISC-V core Resilient cache for low-voltage operation 2 1 MB L2 Cache BTB L1 D$ core L2 tag

UC Berkeley The BOOM Core

6

Page 7: BROOM · UC Berkeley BROOM Chip (Taped out Aug 2017) Open-source superscalar out-of-order RISC-V core Resilient cache for low-voltage operation 2 1 MB L2 Cache BTB L1 D$ core L2 tag

UC Berkeley Leveraging Open-source RTL◾ The Rocket-chip SoC Generator◾ Started in 2011◾ Taped out 10 (13?) 17 times by Berkeley +

many others◾ 6,016 commits◾ 64 contributors◾ Commercial quality◾ Replace standard in-order core with BOOM◾ Leverage Rocket-chip as a library of

processor components

7https://github.com/freechipsproject/rocket-chip

rocket-chipsystem

BootRom

DebugModule interrupts

TileLink-AXITileLink-AXI

AXI AXI

Rocket Tilecore (RV64GC)

I-cache

D-cache

FPU

CoherenceManager

Uncached Tilelink

clintplic

BOOM goes here

Page 8: BROOM · UC Berkeley BROOM Chip (Taped out Aug 2017) Open-source superscalar out-of-order RISC-V core Resilient cache for low-voltage operation 2 1 MB L2 Cache BTB L1 D$ core L2 tag

ProcessorSiFive U54

Rocket (RV64GC)

Berkeley BOOMv2

(RV64G)

OpenSPARC T2

ARM Cortex-A9

Intel Xeon Ivy

Language Chisel Chisel Verilog - SystemVerilog

Core LoC 8,000 16,000 290,000 - -

SoC LoC 34,000 50,000 1,300,000 - -

Foundry TSMC TSMC TI TSMC Intel

Technology 28 nm (HPC)

28 nm (HPM) 65 nm 40 nm

(G) 22 nm

Core+L1 Area 0.54 mm2 0.52 mm2 ~12 mm2 ~2.5 mm2 ~12 mm2

Coremark/MHz 2.75 3.77 1.64* 3.71 5.60

Frequency 1.5 GHz 1.0 GHz 1.17 GHz 1.4 GHz 3.3 GHz

UC Berkeley Core Comparison

8

core+L1+L2

*From eembc.org. 32 threads/8 cores achieve 13 Cm/MHz.

16kB/16kB

Page 9: BROOM · UC Berkeley BROOM Chip (Taped out Aug 2017) Open-source superscalar out-of-order RISC-V core Resilient cache for low-voltage operation 2 1 MB L2 Cache BTB L1 D$ core L2 tag

BOOMv1-2f3i

int/idiv/fdiv

load/store

int/fma

fetch

issue/rrdqueues

wb

integer

load/store

fp

fetchdec, ren,

& dis

issue/rrdqueues

BOOMv2-2f4i

wb

UC Berkeley Case study: how agile is the BOOM generator?

9

BOOM v1 (April 2017)

BOOM v2 (Aug 2017)

BOOMv1 BOOMv2BTB entries 40

(fully-assoc)64 x 4

(set-assoc)

Fetch Width 2 insts 2 insts

Issue Width 3 micro-ops 4 micro-ops

Issue Entries 20 16/20/10

Regfile 7r3w(unified)

6r3w (inst),3r2w (fp)

Exe UnitsiALU+iMul+FMA

iALU+fDivLoad/Store

iALU+iMul+iDiviALU

FMA+fDivLoad/Store

Page 10: BROOM · UC Berkeley BROOM Chip (Taped out Aug 2017) Open-source superscalar out-of-order RISC-V core Resilient cache for low-voltage operation 2 1 MB L2 Cache BTB L1 D$ core L2 tag

UC Berkeley

idx

 redirect

I$Fetch Buffer

Fetch1

PC1

Fetch2

+8backendredirecttarget

Fetch0

PC2

BPD

redirect

BTB

Fetch3

hash

TLB

pre-decode & target compute

checker{hit,

target}next-pc

taken

I-Cache

decode info

RAS

I$

Fetch1

PC1

Fetch2

µBTB

Fetch0

PC2

hash

TLB

idx

next-pc

taken

I-Cachebackendredirecttarget pre-decode

& target compute

Fetch Buffer

BPD  redirect

Frontend Design Changes

◾ BTB in SRAM-set-associative-partially tagged-Checker to verify integrity

◾ BPD (Conditional Predictor)-hash gets entire stage-redirect based on BTB-redirect pushed back (I$)

10

BOOMv1

BOOMv2

Page 11: BROOM · UC Berkeley BROOM Chip (Taped out Aug 2017) Open-source superscalar out-of-order RISC-V core Resilient cache for low-voltage operation 2 1 MB L2 Cache BTB L1 D$ core L2 tag

UC Berkeley Building a Register File (the first P&R)

◾ BOOMv1 -- 7r3w with 110 registers (INT/FP)◾ Initial Regfile design was infeasible for layout◾ critical paths in issue-select and register read◾ Not DRC/LVS clean

11

regfilerob

iq

renamelsu

mshr

bpdalu

fpu

alu

Page 12: BROOM · UC Berkeley BROOM Chip (Taped out Aug 2017) Open-source superscalar out-of-order RISC-V core Resilient cache for low-voltage operation 2 1 MB L2 Cache BTB L1 D$ core L2 tag

UC Berkeley Splitting the Regfile and Issue Queues

12

Page 13: BROOM · UC Berkeley BROOM Chip (Taped out Aug 2017) Open-source superscalar out-of-order RISC-V core Resilient cache for low-voltage operation 2 1 MB L2 Cache BTB L1 D$ core L2 tag

UC Berkeley Multi-port Register File for Design Exploration

13

Advantage

Challenge

Gate-level

• Rapid design exploration• Shared read wires solve

routing congestion

• Guided place-and-routefor area/performanceoptimization

WD0

WD1

WD2

WS[1:0]

D

EN

WE

Q

OE[5:0]

Tri-state buf [5:0]

RD [5

:0]

unit cell

RTL

Advantage

Challenge

• Low design effort• Rapid design exploration

• Large area• Bad performance• Routing congestion

Q

4480

70x6

4 fli

p-flo

ps

..... ...

..............

read_data[5:0][63:0]

7-level deep logic treeCongestion

Advantage

Challenge

Transistor-level

• Compact area• Higher performance

• Long design cycle• Difficult for architecture

design exploration

... ...WBL0 WBLB0

WWL0

WBLn-1WBLBn-1

WWLn-1

RBL[m-1,0]

n write ports

m read portsRWL[m-1,0]

Page 14: BROOM · UC Berkeley BROOM Chip (Taped out Aug 2017) Open-source superscalar out-of-order RISC-V core Resilient cache for low-voltage operation 2 1 MB L2 Cache BTB L1 D$ core L2 tag

UC Berkeley Resilient Cache for Energy Efficiency

14

Freq

uenc

y

VDD

PASS

FAIL

Vmin

Cache failures

◾ Low-voltage operation improves energy efficiency◾ SRAM-based cache fails at low voltages◾ 50 mV reduction in VDD increases BER by 10x◾ Architecture-level assist techniques can tolerate

errors to reduce Vmin◾ Only require RTL changes

Page 15: BROOM · UC Berkeley BROOM Chip (Taped out Aug 2017) Open-source superscalar out-of-order RISC-V core Resilient cache for low-voltage operation 2 1 MB L2 Cache BTB L1 D$ core L2 tag

UC Berkeley Line Recycling (LR)

◾ Line Disable (LD) avoids errors by disabling the faulty cache line◾ Group three faulty lines with no error at the same column ◾ Two patch lines (line P1/P2) used to repair the recycled line (line R)◾ A majority vote of line R/P1/P2 corrects the data output

15

way0 way1 way2 way3

: failing bit

set0set1set2set3

Line R

Line P1

Line P2

Example: write data 1001 to the recycled group

1 1 0 11 0 1 10 0 0 1

1 0 0 1corrected

outputmajority vote logic

Store three identical copies

Page 16: BROOM · UC Berkeley BROOM Chip (Taped out Aug 2017) Open-source superscalar out-of-order RISC-V core Resilient cache for low-voltage operation 2 1 MB L2 Cache BTB L1 D$ core L2 tag

UC Berkeley Dynamic Column Redundancy (DCR)

◾ DCR dynamically selects a different multiplexer shift to avoid the error according to the redundancy address (RA)

◾ Fix 1 bit per set ◾ Require LD/LR to handle multi-bit errors

16

Tags

Data

DC

R D

ec.

==?

# ways x tag bits

DCR address

129 128

7

way 0

4 3 2 1 04 B 2 1 04 3 2 1 B4 3 2 1 0

Row11100100

RedundancyAddress (RA)

Page 17: BROOM · UC Berkeley BROOM Chip (Taped out Aug 2017) Open-source superscalar out-of-order RISC-V core Resilient cache for low-voltage operation 2 1 MB L2 Cache BTB L1 D$ core L2 tag

UC Berkeley Bit Bypass with SRAM (BB-S) for tag

◾ Expand tag arraysto store error entries

◾ Correct more errorwith less area-Fix 2 bits per row-An 8T SRAM bitcell is 6x

smaller than a flip-flop-Shared decoder and

peripheral circuit-Area overhead: 8.6% in

tag arrays17

B B… …

B

255 254 1 063

62

1

0

ColRow

FT 0

…T 1F

Repairentry 1

Repairentry 0

Valid Repairbit

Repaircolumn

FT

…FF

255

Page 18: BROOM · UC Berkeley BROOM Chip (Taped out Aug 2017) Open-source superscalar out-of-order RISC-V core Resilient cache for low-voltage operation 2 1 MB L2 Cache BTB L1 D$ core L2 tag

UC Berkeley Cache Resiliency Techniques

18

Technique Protectedcache

Timing overhead

Area overhead

LR L2 data Small § 0.77%LD L1/2 data Small 0.2%DCR L1/2 data Small 1.1% †

BB-S L1/2 tag Small 0.9% †

SECDED L1/2 Large 10.9% ‡

§Require 3 additional cycles †numbers are reported for L2 ‡1repair/64bit*Data portion is 86.2% of cache area, tag portion is 11% of cache area

L1 cache16KB ICache 16KB DCache

BOOM coreBOOM Tile

Tags Data

DisableBB-S DCR

BIST Tags Data

DisableBB-S DCRTo S

CR

Reprog.Redund.Control

BIST

To S

CR

Reprog.Redund.Control

Crossbar Network1MB L2Cache

Tags

LRBB-SDCR

Data

UNCORE

clock receivers& muxes

SCR

Chip IO

Serial IF

RocketChip

Page 19: BROOM · UC Berkeley BROOM Chip (Taped out Aug 2017) Open-source superscalar out-of-order RISC-V core Resilient cache for low-voltage operation 2 1 MB L2 Cache BTB L1 D$ core L2 tag

UC Berkeley 4 months of agile tape-out

19

*ignore the Y-axis: -- too many parameters/variables changing between each run -- doesn't capture DRC violations

2017

Page 20: BROOM · UC Berkeley BROOM Chip (Taped out Aug 2017) Open-source superscalar out-of-order RISC-V core Resilient cache for low-voltage operation 2 1 MB L2 Cache BTB L1 D$ core L2 tag

UC Berkeley Agile Hardware Development◾ RTL hacking can be very agile- ~6 minutes to compile, build, and run "riscv-tests" regression suite (10

KHz for Verilator simulator)-Chisel allows for quick, far-reaching changes- generator approach allows for late-binding design decisions- small changes, improvements (that don't affect floor plan) are agile

◾ Physical design is a bottleneck- 2-3 hours for synthesis results- 8-24 hours for p&r results-RTL and PD are tightly coupled

◾ Verification is a bottleneck- I can write bugs faster than I can find them

20

Page 21: BROOM · UC Berkeley BROOM Chip (Taped out Aug 2017) Open-source superscalar out-of-order RISC-V core Resilient cache for low-voltage operation 2 1 MB L2 Cache BTB L1 D$ core L2 tag

UC Berkeley Verification◾ Directed tests and a randomized torture generator.◾ Verilator/VCS/FPGA simulation at RTL.◾ VCS for post-gl/par simulation.◾ Speculative OOO pipelines are difficult to get good coverage on.-Need tests that build up a lot of speculative state.-Need tests that cover OS- and platform-level use-cases.

◾ Assertions are king.

21

Page 22: BROOM · UC Berkeley BROOM Chip (Taped out Aug 2017) Open-source superscalar out-of-order RISC-V core Resilient cache for low-voltage operation 2 1 MB L2 Cache BTB L1 D$ core L2 tag

Host FPGA Platform (e.g. Amazon EC2 F1 Instance)Host CPU Host FPGA

MMIOI/O Devices

RTLMemorySystemTimingSimulation

Driver

FPGA DRAM

Main Memory

I/O Tranport

Assertion Checker

Log Stream UnitDMAFunctionalSimulator

LoadmemUnitScanchains

: Target Module :Existing Simulation Component : Debugging Module

UC BerkeleyDESSERT: Debugging RTL Effectively with

State Snapshotting for Error Replays across Trillions of Cycles

◾ Co-simulate, find bugs, and get waveforms from Cloud FPGA-based simulation!

◾ Donggyu Kim, et. al. CARRV 2018◾ https://carrv.github.io/2018/papers/CARRV_2018_paper_10.pdf 22

Page 23: BROOM · UC Berkeley BROOM Chip (Taped out Aug 2017) Open-source superscalar out-of-order RISC-V core Resilient cache for low-voltage operation 2 1 MB L2 Cache BTB L1 D$ core L2 tag

UC Berkeley Incorrect Jump Target◾ 401.bzip2 (assertion error at 500 billion cycles)- JAL jumps to wrong target.-Due to improper signed arithmetic.- 2-3 year old bug.- 3 hours of FPGA time.-Would require 39 years of Verilator simulation to find.-DESSERT found this via a synthesized assertion.

23

Page 24: BROOM · UC Berkeley BROOM Chip (Taped out Aug 2017) Open-source superscalar out-of-order RISC-V core Resilient cache for low-voltage operation 2 1 MB L2 Cache BTB L1 D$ core L2 tag

UC Berkeley Chip Implementation

3mm

24

1MB L2 CacheData array

D$ I$

L2 tag, RIT, PAT

BPD,BTB

iregfile

OoO coreChip Summary

ISA RISC-V RV64IMAFD with Sv39

Fetch Width 2 instsIssue Width 3 micro-ops

Issue Entries 16 (i) 20 (m) 10 (f)

Regfile 6R3W (int),3R2W (fp)

Exe UnitsiALU+iMul+FMA

iALU+fDivLoad/Store

L1 I/D Cache 4-way, 16KBL2 Cache 8-way, 1MB

2mm

Page 25: BROOM · UC Berkeley BROOM Chip (Taped out Aug 2017) Open-source superscalar out-of-order RISC-V core Resilient cache for low-voltage operation 2 1 MB L2 Cache BTB L1 D$ core L2 tag

UC Berkeley Experimental Setup◾ Chip-on-board (COB)

package◾ Voltage and clock generation

on the motherboard◾ Cortex A9 on ZC706 works as

the front-end server◾ Boot Linux

25

Chip

daughterboard

SSH tunneling to the front-end server

Booting Linux!

PerformanceClock frequency 1GHz @0.9V

320MHz @0.6VCoremark/MHz 3.77Instruction Per Cycle 1.11 (@Coremark)

Page 26: BROOM · UC Berkeley BROOM Chip (Taped out Aug 2017) Open-source superscalar out-of-order RISC-V core Resilient cache for low-voltage operation 2 1 MB L2 Cache BTB L1 D$ core L2 tag

UC BerkeleyBit Error Rate and Vmin reduction

26VDD (a.u.)

Bit

Erro

r Rat

e (B

ER)

LR 1%LR 5%

-21.7%

43% energy reduction

*

Vmin

(a.u

.)*: estimated

21.7% Vminreduction

Page 27: BROOM · UC Berkeley BROOM Chip (Taped out Aug 2017) Open-source superscalar out-of-order RISC-V core Resilient cache for low-voltage operation 2 1 MB L2 Cache BTB L1 D$ core L2 tag

UC Berkeley Operating voltage and frequency

27

Freq

uenc

y (M

Hz)

VDD (a.u.)

1000

0.90.4850

VDD (a.u.)

380

20

200

0.47 0.6

PASS w/o assist

FAIL

PASS w/ LR 5%

(0.9V, 1GHz)

0.54 0.70

Benchmark: vvadd

◾ With LR and 5% loss of L2 cache capacity, Vmin is reduced to 0.47V@70MHz◾ 2.3% increase in L2 misses, but only 0.2% degradation in IPC

Page 28: BROOM · UC Berkeley BROOM Chip (Taped out Aug 2017) Open-source superscalar out-of-order RISC-V core Resilient cache for low-voltage operation 2 1 MB L2 Cache BTB L1 D$ core L2 tag

UC Berkeley Future Directions◾ Pi-Feng and Chris have graduated!◾ BOOM will continue to be supported and improved.- github.com/ucb-bar/riscv-boom

28

Page 29: BROOM · UC Berkeley BROOM Chip (Taped out Aug 2017) Open-source superscalar out-of-order RISC-V core Resilient cache for low-voltage operation 2 1 MB L2 Cache BTB L1 D$ core L2 tag

UC Berkeley Lots of opportunities for using the BOOM core◾ Agile Methodology Research-How to verify complex IP?-How do you measure/predict RTL performance, area, power?

◾ Software Studies-Hardware/software co-design.-High visibility of very long-running applications.

◾ Security Research-New class of speculation-based attacks.-How to attack?-How to defend?-Evaluate cost of changes to branch predictors, caches, and more.

◾ New RISC-V extensions-Variable-length vector.-Managed-language support.

29

Page 30: BROOM · UC Berkeley BROOM Chip (Taped out Aug 2017) Open-source superscalar out-of-order RISC-V core Resilient cache for low-voltage operation 2 1 MB L2 Cache BTB L1 D$ core L2 tag

FireSim now supports BOOM!UC Berkeley

◾ FireSim is a open-source cycle-accurate FPGA-accelerated simulation tool that runs on Amazon EC2 F1

◾ Chisel RTL is automatically transformed into cycle-accurate FPGA simulator

◾ Peripheral device support:-UART, Disk, Ethernet NIC, easy to add more

◾ Boot Linux on a multi-core BOOM with 16 GB DDR3, UART, Ethernet NIC in the cloud for 50 cents/hour at ~100 MHz

◾ FireSim is available at:- https://fires.im

◾ ISCA 2018 Paper:

30

Shown: a 32 node rack (128 cores)

https://sagark.org/assets/pubs/firesim-isca2018.pdf

Page 31: BROOM · UC Berkeley BROOM Chip (Taped out Aug 2017) Open-source superscalar out-of-order RISC-V core Resilient cache for low-voltage operation 2 1 MB L2 Cache BTB L1 D$ core L2 tag

UC Berkeley A 2-person tapeout takes a village!◾ RISC-V ISA- very out-of-order friendly!

◾ Chisel hardware construction language- object-oriented, functional programming

◾ FIRRTL- exposed RTL intermediate representation (IR)

◾ Rocket-chip- A full working SoC platform built around the Rocket in-order core

◾ Thanks to:- Rimas Avizienis, Jonathan Bachrach, Scott Beamer, David Biancolin, Henry Cook,

Palmer Dabbelt, John Hauser, Adam Izraelevitz, Sagar Karandikar, Ben Keller, Donggyu Kim, Jack Koenig, Jim Lawson, Yunsup Lee, Richard Lin, Eric Love, Martin Maas, Chick Markley, Albert Magyar, Howard Mao, Miquel Moreto, Quan Nguyen, Albert Ou, Brian Richards, Colin Schmidt, Wenyu Tang, Stephen Twigg, Huy Vo, Andrew Waterman, Angie Wang, Jerry Zhao, and more...

31

Page 32: BROOM · UC Berkeley BROOM Chip (Taped out Aug 2017) Open-source superscalar out-of-order RISC-V core Resilient cache for low-voltage operation 2 1 MB L2 Cache BTB L1 D$ core L2 tag

UC BerkeleyThank you!

◾ Research partially funded by DARPA Award Number HR0011-12-2-0016, the Center for Future Architecture Research, a member of STARnet, a Semiconductor Research Corporation program sponsored by MARCO and DARPA, and ASPIRE Lab industrial sponsors and affiliates Intel, Google, Huawei, Nokia, NVIDIA, Oracle, and Samsung.

◾ Approved for public release; distribution is unlimited. The content of this presentation does not necessarily reflect the position or the policy of the US government and no official endorsement should be inferred.

◾ Any opinions, findings, conclusions, or recommendations in this paper are solely those of the authors and does not necessarily reflect the position or the policy of the sponsors.

32

Funding Acknowledgements