Expression Level Parallelism for Distributed Spice Circuit - - PowerPoint PPT Presentation

expression level parallelism for distributed spice
SMART_READER_LITE
LIVE PREVIEW

Expression Level Parallelism for Distributed Spice Circuit - - PowerPoint PPT Presentation

Expression Level Parallelism for Distributed Spice Circuit Simula:on Dylan Pfeifer The University of Texas at Aus6n Intel Corpora6on Dr. Andreas Gerstlauer


slide-1
SLIDE 1

Expression ¡Level ¡Parallelism ¡for ¡Distributed ¡ Spice ¡Circuit ¡Simula:on ¡

Dylan ¡Pfeifer ¡

The ¡University ¡of ¡Texas ¡at ¡Aus6n ¡ Intel ¡Corpora6on ¡

  • Dr. ¡Andreas ¡Gerstlauer ¡

The ¡University ¡of ¡Texas ¡at ¡Aus6n ¡

The ¡15th ¡IEEE/ACM ¡Interna6onal ¡Symposium ¡on ¡Distributed ¡ Simula6on ¡and ¡Real ¡Time ¡Applica6ons ¡ ¡

MediaCityUK, ¡Salford, ¡Manchester, ¡U.K. ¡ ¡

  • Sep. ¡5 ¡, ¡2011 ¡
slide-2
SLIDE 2

Topics ¡

I. Introduc6on ¡and ¡Requirements ¡

  • II. ¡ ¡ ¡ ¡Kahn ¡Process ¡Networks ¡and ¡Interpolated ¡Events ¡
  • III. Applica6on: ¡ ¡Expression-­‑level ¡parallelism ¡for ¡Spice ¡
  • V. ¡ ¡ ¡ ¡Q ¡& ¡A ¡
slide-3
SLIDE 3

System ¡Level ¡Design ¡(SLD): ¡ ¡“The ¡next ¡fron6er ¡in ¡EDA ¡[1]” ¡

  • 1. Support ¡concurrent ¡simula6on ¡of ¡mul6ple ¡engineering ¡

domains ¡– ¡electrical, ¡mechanical, ¡fluid, ¡thermal, ¡and ¡ biomedical ¡engineering ¡

  • 2. Support ¡mul6ple ¡levels ¡of ¡model ¡abstrac6on, ¡from ¡

transac6on-­‑level ¡modeling ¡(TLM), ¡to ¡register ¡transfer ¡ level ¡(RTL), ¡to ¡conserva6ve ¡signal ¡networks ¡KVL/KCL ¡

  • I. ¡ ¡Introduc6on ¡and ¡Requirements ¡[1 ¡of ¡7]

¡ ¡

[1] ¡ ¡Sangiovanni-­‑Vincentelli, ¡A.; ¡, ¡"Quo ¡Vadis, ¡SLD? ¡Reasoning ¡ About ¡the ¡Trends ¡and ¡Challenges ¡of ¡System ¡Level ¡Design," ¡ Proceedings ¡of ¡the ¡IEEE ¡, ¡vol.95, ¡no.3, ¡pp.467-­‑506, ¡March ¡2007 ¡

Need: ¡ ¡To ¡concurrently ¡simulate ¡the ¡hardware ¡and ¡sofware ¡ behavior ¡of ¡real-­‑6me ¡embedded ¡and ¡cyber-­‑physical ¡systems ¡ ¡

slide-4
SLIDE 4
  • 3. * ¡Enable ¡source ¡level ¡sofware ¡debugging ¡over ¡

a ¡virtual ¡system ¡target ¡that ¡includes ¡models ¡of ¡ embedded ¡processors, ¡board ¡level ¡devices, ¡ transducers, ¡and ¡world ¡physical ¡effects ¡

  • 4. Model ¡closed ¡loop ¡systems ¡with ¡feedback ¡

(cycles ¡in ¡subsystem ¡dependencies ¡and ¡signal ¡ flow), ¡ ¡emphasizing ¡sofware ¡interac6on ¡with ¡ physical ¡processes ¡

  • 5. Support ¡wide ¡area ¡distributed ¡simula6on ¡ ¡
  • I. ¡ ¡Introduc6on ¡and ¡Requirements ¡[2 ¡of ¡7]

¡ ¡

slide-5
SLIDE 5

Example: ¡ ¡EKG ¡signal ¡condi:oning ¡[1] ¡

  • I. ¡ ¡Introduc6on ¡and ¡Requirements ¡[3 ¡of ¡7]

¡ ¡

[1] ¡Valvano, ¡Real ¡Time ¡Embedded ¡Instrumenta6on ¡ hjp://users.ece.utexas.edu/~valvano ¡

slide-6
SLIDE 6

Solu:on ¡Design ¡Choices ¡

  • ¡Created ¡a ¡distributed, ¡heterogeneous, ¡mul6-­‑domain ¡simulator ¡

connec6on ¡system ¡that ¡supports ¡independent, ¡concurrently ¡ running ¡simulators ¡of ¡choice ¡that ¡best ¡model ¡subsystem ¡ components ¡

  • ¡Created ¡a ¡client/server-­‑based ¡simulator ¡backplane ¡called ¡

“SimConnect” ¡

  • ¡Created ¡lightweight ¡socket-­‑based ¡message ¡passing ¡protocol ¡

called ¡“SimTalk” ¡

  • ¡Structure ¡backplane ¡around ¡an ¡abstracted ¡dataflow ¡model: ¡

Kahn ¡Process ¡Network ¡

  • ¡Use ¡interpolated ¡event ¡(IE) ¡data ¡types ¡as ¡KPN ¡tokens ¡
  • I. ¡ ¡Introduc6on ¡and ¡Requirements ¡[4 ¡of ¡7]

¡ ¡

slide-7
SLIDE 7

Cosimula:on ¡view: ¡ ¡ ¡ CAN ¡network ¡

  • I. ¡ ¡Introduc6on ¡and ¡Requirements ¡[5 ¡of ¡7]

¡ ¡

  • Each ¡simulator ¡runs ¡

independently ¡as ¡its ¡

  • wn ¡process ¡
  • Communica6on ¡occurs ¡

through ¡IPC ¡to ¡ backplane ¡data ¡server ¡

  • Synchroniza6on ¡occurs ¡

through ¡“interpolated ¡ event” ¡data ¡tokens ¡ from ¡backplane ¡server ¡

  • SimTalk/SimConnect ¡

implements ¡KPN ¡ dataflow ¡rules ¡

slide-8
SLIDE 8

Cosimula:on ¡view: ¡ ¡ ¡ Distributed ¡Spice ¡

  • I. ¡ ¡Introduc6on ¡and ¡Requirements ¡[6 ¡of ¡7]

¡ ¡

  • Instan6ate ¡<n> ¡

independent ¡Spice ¡ simula6on ¡processes ¡

  • Par66on ¡model ¡into ¡<n> ¡

subcircuits ¡assigned ¡over ¡ <n> ¡simulators ¡ (“expression-­‑level” ¡ parallelism) ¡

  • Simulators ¡require ¡no ¡

code-­‑changes ¡if ¡they ¡offer ¡ a ¡device-­‑level ¡host ¡OS ¡ interface ¡with ¡socket ¡ support ¡

slide-9
SLIDE 9

Challenges ¡inherited ¡from ¡Parallel ¡Discrete ¡Event ¡Simula:on ¡(PDES) ¡

  • I. ¡ ¡Introduc6on ¡and ¡Requirements ¡[7 ¡of ¡7]

¡ ¡

  • ¡Each ¡simulator, ¡having ¡an ¡independent ¡process ¡and ¡address ¡

space, ¡maintains ¡its ¡own ¡copy ¡of ¡6me ¡(“local ¡virtual ¡6me”) ¡

  • ¡Simulators ¡(“logical ¡processes”) ¡may ¡advance ¡their ¡local ¡6me ¡

at ¡different ¡rates ¡-­‑ ¡no ¡central ¡6me ¡controller ¡or ¡master-­‑slave ¡ topology ¡ ¡

  • ¡Simulators ¡are ¡signal-­‑interdependent: ¡ ¡internal ¡state ¡depends ¡
  • n ¡signals ¡and ¡events ¡produced ¡by ¡other ¡simulators ¡progressing ¡

at ¡different ¡rates ¡

  • ¡To ¡preserve ¡global ¡event ¡causality, ¡the ¡“local ¡causality ¡

constraint” ¡(LCC) ¡applies: ¡ ¡simulators ¡must ¡process ¡events ¡in ¡ 6mestamp ¡order ¡(simulators ¡cannot ¡advance ¡local ¡6me ¡beyond ¡ the ¡6mestamp ¡of ¡input ¡events ¡from ¡other ¡simulators, ¡unless ¡ rollback ¡is ¡offered) ¡

slide-10
SLIDE 10

Topics ¡

I. Introduc6on ¡and ¡Requirements ¡

  • II. ¡ ¡ ¡ ¡Kahn ¡Process ¡Networks ¡and ¡Interpolated ¡Events ¡
  • III. Applica6on: ¡ ¡Expression-­‑level ¡parallelism ¡for ¡Spice ¡
  • V. ¡ ¡ ¡ ¡Q ¡& ¡A ¡
slide-11
SLIDE 11

Kahn ¡Process ¡Network ¡(KPN): ¡ ¡Proper:es ¡I ¡

  • II. ¡ ¡KPN ¡and ¡Interpolated ¡Events ¡[1 ¡of ¡5] ¡
  • ¡The ¡KPN ¡is ¡a ¡directed ¡graph ¡with ¡arcs, ¡

represen6ng ¡simplex ¡FIFOs, ¡and ¡ nodes, ¡represen6ng ¡concurrent ¡ compute ¡elements ¡without ¡ interdependent ¡side-­‑effects ¡ ¡

  • ¡Nodes ¡may ¡read ¡from ¡input ¡FIFOs ¡and ¡

write ¡to ¡output ¡FIFOs, ¡but ¡reads ¡are ¡ blocking ¡(the ¡node ¡stalls) ¡if ¡the ¡FIFO ¡is ¡ empty, ¡while ¡writes ¡always ¡succeed ¡ (the ¡node ¡does ¡not ¡stall) ¡

slide-12
SLIDE 12

Kahn ¡Process ¡Network ¡(KPN): ¡ ¡Proper:es ¡II ¡

  • II. ¡ ¡KPN ¡and ¡Interpolated ¡Events ¡[2 ¡of ¡5] ¡
  • ¡The ¡KPN ¡is ¡independent ¡on ¡the ¡
  • rder ¡of ¡node ¡execu6on ¡if ¡the ¡KPN ¡

dataflow ¡rules ¡are ¡followed ¡ ¡

  • ¡The ¡KPN ¡is ¡completely ¡determined ¡

by ¡its ¡node ¡set, ¡arc ¡set, ¡ini6al ¡ condi6ons, ¡and ¡FIFO ¡producer ¡rates ¡

  • ¡Nodes ¡may ¡not ¡condi6onally ¡

execute ¡by ¡FIFO ¡sniffing ¡

  • ¡FIFOs ¡are ¡unbounded ¡(infinite ¡

depth) ¡ ¡

  • ¡Execu6on ¡is ¡determinis6c ¡
slide-13
SLIDE 13

KPN ¡to ¡distributed ¡cosimula:on ¡mapping: ¡

  • II. ¡ ¡KPN ¡and ¡Interpolated ¡Events ¡[3 ¡of ¡5] ¡
  • ¡FIFO’s ¡are ¡simplex ¡
  • utput ¡–to ¡– ¡input ¡

channels ¡between ¡ simulators, ¡signal ¡ producer ¡to ¡signal ¡ consumer ¡

  • ¡Simulators ¡stalled ¡iff ¡

input ¡FIFOs ¡empty ¡(sync ¡ is ¡then ¡achieved ¡as ¡a ¡ result ¡of ¡dataflow) ¡ ¡

  • ¡Nodes ¡are ¡simulators ¡
  • ¡Nodes ¡consume ¡inputs, ¡

compute, ¡produce ¡outputs, ¡ and ¡repeat ¡

slide-14
SLIDE 14

Synchroniza:on: ¡ ¡Tokens ¡are ¡“Interpolated ¡Event” ¡types ¡

  • II. ¡ ¡KPN ¡and ¡Interpolated ¡Events ¡[4 ¡of ¡5] ¡
  • ¡Event ¡ ¡= ¡(v, ¡t). ¡ ¡{ ¡V ¡} ¡any ¡set ¡of ¡values. ¡ ¡{ ¡T ¡} ¡a ¡set ¡of ¡tags. ¡
  • ¡Examples: ¡{ ¡V ¡}= ¡{ ¡Z[n] ¡}, ¡{ ¡R[n] ¡}, ¡or ¡{ ¡C[n] ¡}, ¡ ¡T ¡= ¡{ ¡R1 ¡} ¡
  • ¡An ¡“interpolated ¡event” ¡(IE) ¡is ¡an ¡element ¡of ¡the ¡set ¡V ¡× ¡T ¡× ¡

T, ¡an ¡element ¡(v, ¡tm, ¡tn). ¡ ¡If ¡T ¡is ¡ordered, ¡we ¡define ¡the ¡value ¡v ¡ to ¡be ¡constant ¡on ¡the ¡half-­‑open ¡interval ¡[tm, ¡tn ¡) ¡for ¡the ¡ interpolated ¡event ¡specified ¡by ¡the ¡tuple ¡(v, ¡tm, ¡tn). ¡ ¡It ¡includes ¡ all ¡single ¡events ¡(v, ¡t) ¡of ¡the ¡signal ¡such ¡that ¡v ¡is ¡constant ¡and ¡ tm ¡≤ ¡t ¡< ¡tn. ¡ ¡Interpolated ¡events ¡collapse ¡to ¡single ¡events ¡iff ¡tm ¡= ¡

  • tn. ¡ ¡Interpolated ¡events ¡collapse ¡to ¡un6med ¡events ¡iff ¡tm ¡= ¡tn ¡= ¡

null, ¡such ¡that ¡null ¡is ¡defined ¡to ¡be ¡the ¡absence ¡of ¡a ¡tag. ¡ ¡

slide-15
SLIDE 15

Interpolated ¡Events: ¡ ¡simulator ¡advancement ¡

  • II. ¡ ¡KPN ¡and ¡Interpolated ¡Events ¡[5 ¡of ¡5] ¡
  • ¡If ¡a ¡simulator ¡consumes ¡an ¡interpolated ¡event, ¡it ¡may ¡

assume ¡the ¡value ¡v ¡for ¡the ¡signal ¡is ¡stable ¡on ¡the ¡tag ¡interval ¡ [tm, ¡tn), ¡and ¡not ¡need ¡sample ¡its ¡input ¡FIFO ¡again ¡un6l ¡local ¡ 6me ¡tn. ¡ ¡The ¡simulator ¡blocks ¡at ¡6me ¡tn ¡if ¡its ¡input ¡FIFO ¡is ¡ empty, ¡awaking ¡only ¡when ¡a ¡producing ¡simulator ¡has ¡posted ¡ a ¡new ¡token ¡star6ng ¡at ¡tn ¡, ¡so ¡that ¡the ¡LCC ¡is ¡observed ¡ ¡ ¡

  • ¡SimTalk ¡protocol ¡implements ¡message-­‑based ¡passing ¡of ¡

interpolated ¡event ¡tuples ¡(v, ¡tm, ¡tn) ¡over ¡IPC. ¡ ¡ ¡

  • ¡See: ¡ ¡Pfeifer, ¡D. ¡and ¡J. ¡Valvano, ¡"Kahn ¡process ¡networks ¡

applied ¡to ¡distributed ¡heterogeneous ¡HW/SW ¡cosimula6on,“ ¡ ECSI ¡Electronic ¡System ¡Level ¡Synthesis ¡Conference ¡(ESLsyn), ¡ 5-­‑6 ¡June ¡2011 ¡

slide-16
SLIDE 16

Topics ¡

I. Introduc6on ¡and ¡Requirements ¡

  • II. ¡ ¡ ¡ ¡Kahn ¡Process ¡Networks ¡and ¡Interpolated ¡Events ¡
  • III. Applica6on: ¡ ¡Expression-­‑level ¡parallelism ¡for ¡Spice ¡
  • V. ¡ ¡ ¡ ¡Q ¡& ¡A ¡
slide-17
SLIDE 17

Need: ¡ ¡Simula:ng ¡analog ¡conserva:ve-­‑signal ¡networks ¡(KVL/KCL) ¡ is ¡required ¡in ¡System-­‑on-­‑Chip ¡IC ¡and ¡PCB ¡design ¡ ¡ ¡ ¡

  • III. ¡ ¡Applica6on: ¡ ¡Expression-­‑level ¡parallelism ¡for ¡Spice ¡[1 ¡of ¡13] ¡ ¡
  • ¡Examples: ¡
  • ¡Printed ¡circuit ¡board ¡analog ¡signal ¡condi6oning ¡
  • ¡SoC ¡mixed-­‑signal ¡circuits: ¡PLL’s, ¡ADC’s ¡
  • ¡Transducers ¡and ¡transmission ¡lines ¡(LRC) ¡
  • ¡Challenges: ¡
  • ¡Sequen6al ¡SPICE ¡based ¡transient ¡simula6on ¡6me ¡increases ¡

non-­‑linearly ¡with ¡the ¡number ¡of ¡circuit ¡devices ¡in ¡the ¡ simula6on ¡

  • ¡Realism ¡in ¡non-­‑trivial ¡circuits ¡(> ¡1k ¡transistors, ¡> ¡1ms) ¡can ¡

take ¡hours/days ¡for ¡a ¡transient ¡simula6on ¡

slide-18
SLIDE 18

Techniques ¡for ¡transient ¡analysis ¡accelera:on ¡[2] ¡ ¡

  • III. ¡ ¡Applica6on: ¡ ¡Expression-­‑level ¡parallelism ¡for ¡Spice ¡[2 ¡of ¡13] ¡

Two ¡basic ¡phases ¡to ¡each ¡6me ¡point ¡itera6on ¡in ¡Spice: ¡

  • ¡“Model ¡evalua6on” ¡phase ¡– ¡each ¡device ¡queried ¡sequen6ally ¡ ¡

for ¡instantaneous ¡conductance ¡value ¡to ¡populate ¡the ¡system ¡ conductance ¡matrix ¡(order ¡and ¡value ¡independent) ¡

  • ¡“Matrix-­‑solve” ¡phase ¡– ¡solve ¡for ¡node ¡voltages ¡by ¡solu6on ¡of ¡

the ¡circuit ¡conductance ¡matrix ¡ ¡ Opportuni6es ¡for ¡accelera6on: ¡

  • ¡HW ¡accelerate ¡FP ¡arithme6c ¡in ¡each ¡phase ¡by ¡GPU ¡or ¡FPGA ¡
  • ffloading: ¡ ¡2x-­‑50x ¡speedup ¡reported ¡
  • ¡Exploit ¡sofware ¡data ¡parallelism ¡in ¡each ¡phase ¡through ¡

OpenMP ¡or ¡MPI: ¡ ¡2x-­‑24x ¡speedup ¡reported ¡

[2] ¡Kapre, ¡N.; ¡DeHon, ¡A.; ¡, ¡"Accelera6ng ¡SPICE ¡Model-­‑Evalua6on ¡using ¡FPGAs," ¡17th ¡IEEE ¡ Symposium ¡on ¡Field ¡Programmable ¡Custom ¡CompuFng ¡Machines, ¡pp.37-­‑44, ¡5-­‑7 ¡April ¡2009 ¡

slide-19
SLIDE 19

Evalua:on ¡of ¡reported ¡accelera:on ¡techniques ¡

¡ ¡

  • III. ¡ ¡Applica6on: ¡ ¡Expression-­‑level ¡parallelism ¡for ¡Spice ¡[3 ¡of ¡13] ¡

“Execu6on-­‑level ¡parallelism” ¡

  • ¡100% ¡accurate ¡(to ¡the ¡sequen6al, ¡non-­‑accelerated ¡result) ¡
  • ¡Scalability: ¡ ¡Sandia ¡Na6onal ¡Lab’s ¡Xyce ¡reports ¡a ¡14-­‑million ¡

device ¡analog ¡circuit ¡simulated ¡over ¡1k ¡processors ¡with ¡MPI ¡[3] ¡ Drawbacks: ¡

  • ¡Hardware ¡dependencies ¡(clusters, ¡GPU, ¡or ¡FPGA ¡accelera6on) ¡
  • ¡Modifica6ons ¡to ¡SPICE ¡kernel ¡(OpenMP ¡or ¡MPI) ¡
  • ¡Studied ¡parallel ¡opportuni6es ¡must ¡exist ¡in ¡the ¡simulator ¡

Alterna6ve: ¡

  • ¡Parallelize ¡at ¡the ¡circuit ¡“expression-­‑level” ¡

[3] ¡Sandia ¡Lab ¡News, ¡vol. ¡55, ¡no. ¡12, ¡June ¡13, ¡2003 ¡

slide-20
SLIDE 20

Expression-­‑level ¡Ngspice ¡Execu:on ¡ ¡

  • III. ¡ ¡Applica6on: ¡ ¡Expression-­‑level ¡parallelism ¡for ¡Spice ¡[4 ¡of ¡13] ¡

Example: ¡ ¡Simulate ¡at ¡transistor ¡level ¡the ¡rollover ¡delay ¡of ¡a ¡ ¡ 128 ¡bit ¡asynchronous ¡ripple ¡counter ¡

  • ¡2 ¡inverters, ¡1 ¡posi6ve ¡edge ¡triggered ¡D ¡flip ¡flop ¡per ¡counter ¡bit ¡
  • ¡Num ¡transistors/inverter:

¡2 ¡

  • ¡Num ¡transistors/flop: ¡ ¡

¡26 ¡

  • ¡Total ¡transistors: ¡

¡ ¡ ¡ ¡3838 ¡(no ¡inverter ¡on ¡last ¡bit) ¡

slide-21
SLIDE 21

Sequen:al ¡transient ¡analysis ¡:me ¡per ¡number ¡of ¡transistors ¡

  • III. ¡ ¡Applica6on: ¡ ¡Expression-­‑level ¡parallelism ¡for ¡Spice ¡[5 ¡of ¡13] ¡

0.45 ¡ 1.34 ¡ 5.22 ¡ 18.26 ¡ 77.35 ¡ 340.25 ¡

0 ¡ 50 ¡ 100 ¡ 150 ¡ 200 ¡ 250 ¡ 300 ¡ 350 ¡ 400 ¡

118 ¡ 238 ¡ 478 ¡ 958 ¡ 1918 ¡ 3838 ¡

Seconds ¡ Number ¡of ¡ ¡ transistors ¡ Number ¡of ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡4 ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡8 ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡16 ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡32 ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡64 ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡128 ¡ counter ¡bits ¡

1.5 ¡us ¡of ¡Ngspice ¡simulated ¡:me ¡

slide-22
SLIDE 22

Expression-­‑level ¡parallelism: ¡ ¡par::on ¡at ¡model-­‑descrip:on ¡level ¡

  • III. ¡ ¡Applica6on: ¡ ¡Expression-­‑level ¡parallelism ¡for ¡Spice ¡[6 ¡of ¡13] ¡
  • ¡Simulate ¡<n> ¡independent ¡subcircuits ¡over ¡<n> ¡concurrent ¡

Ngspice ¡instances ¡ ¡

  • ¡Break ¡counter ¡into ¡<n> ¡socket-­‑device ¡connected ¡subcircuits, ¡each ¡

with ¡N/<n> ¡bits, ¡where ¡N ¡is ¡counter ¡width, ¡<n> ¡is ¡factor ¡of ¡ parallelism ¡

slide-23
SLIDE 23

Example: ¡ ¡8x ¡parallel, ¡system ¡simula:on ¡view ¡ ¡

  • III. ¡ ¡Applica6on: ¡ ¡Expression-­‑level ¡parallelism ¡for ¡Spice ¡[7 ¡of ¡13] ¡
  • ¡128 ¡bit ¡counter ¡

simulated ¡with ¡8x ¡ parallelism ¡

  • ¡Each ¡subcircuit ¡is ¡16 ¡bits ¡
  • ¡Subcircuits ¡

communicate ¡node ¡ voltage ¡value ¡IEs ¡of ¡fixed ¡ dura6on ¡through ¡Xspice ¡ socket ¡devices ¡

slide-24
SLIDE 24

2.21 ¡ 4.52 ¡ 8.93 ¡ 16.84 ¡ 28.32 ¡ 52.15 ¡ 29.77 ¡ 0 ¡ 10 ¡ 20 ¡ 30 ¡ 40 ¡ 50 ¡ 60 ¡

2 ¡ 4 ¡ 8 ¡ 16 ¡ 32 ¡ 64 ¡ 128 ¡

Speedup ¡factor ¡as ¡a ¡func:on ¡of ¡paralleliza:on, ¡128 ¡bit ¡counter ¡

  • III. ¡ ¡Applica6on: ¡ ¡Expression-­‑level ¡parallelism ¡for ¡Spice ¡[8 ¡of ¡13] ¡

1.5 ¡us ¡of ¡Ngspice ¡simulated ¡:me ¡

Single ¡circuit ¡ ¡ analysis ¡:me/ ¡ Parallel ¡circuit ¡ analysis ¡:me ¡

Number ¡of ¡parallel ¡instances ¡ Bits ¡per ¡instance ¡ ¡ ¡ ¡64 ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡32 ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡16 ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡8 ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡4 ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡2 ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡1 ¡ ¡ ¡ ¡ ¡ ¡

10 ¡ns ¡IE ¡ dura:on ¡

slide-25
SLIDE 25

Percent ¡error ¡of ¡rollover ¡:me ¡measurement ¡as ¡a ¡func:on ¡of ¡ paralleliza:on, ¡128 ¡bit ¡counter ¡

  • III. ¡ ¡Applica6on: ¡ ¡Expression-­‑level ¡parallelism ¡for ¡Spice ¡[9 ¡of ¡13] ¡

1.5 ¡us ¡of ¡Ngspice ¡simulated ¡:me ¡

Percent ¡error ¡

Number ¡of ¡parallel ¡instances ¡ Bits ¡per ¡instance ¡

64 ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡32 ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡16 ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡8 ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡4 ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡2 ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡1 ¡ ¡ ¡ ¡ ¡ ¡

10 ¡ns ¡IE ¡ dura:on ¡

0.21 ¡ 5.25 ¡ 5.23 ¡ 8.19 ¡ 8.47 ¡ 8.59 ¡ 9.75 ¡

0 ¡ 2 ¡ 4 ¡ 6 ¡ 8 ¡ 10 ¡ 12 ¡ 2 ¡ 4 ¡ 8 ¡ 16 ¡ 32 ¡ 64 ¡ 128 ¡

slide-26
SLIDE 26

2.18 ¡ 4.57 ¡ 9.19 ¡ 17.84 ¡ 28.74 ¡ 11.94 ¡ 5.40 ¡

0 ¡ 5 ¡ 10 ¡ 15 ¡ 20 ¡ 25 ¡ 30 ¡ 35 ¡ 2 ¡ 4 ¡ 8 ¡ 16 ¡ 32 ¡ 64 ¡ 128 ¡

Speedup ¡factor ¡as ¡a ¡func:on ¡of ¡paralleliza:on, ¡128 ¡bit ¡counter, ¡ increased ¡resolu:on ¡(2 ¡ns ¡IE) ¡

  • III. ¡ ¡Applica6on: ¡ ¡Expression-­‑level ¡parallelism ¡for ¡Spice ¡[10 ¡of ¡13] ¡

1.5 ¡us ¡of ¡Ngspice ¡simulated ¡:me ¡

Single ¡circuit ¡ ¡ analysis ¡:me/ ¡ Parallel ¡circuit ¡ analysis ¡:me ¡

Number ¡of ¡parallel ¡instances ¡ Bits ¡per ¡instance ¡

¡64 ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡32 ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡16 ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡8 ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡4 ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡2 ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡1 ¡ ¡ ¡ ¡ ¡ ¡

2 ¡ns ¡IE ¡ dura:on ¡

slide-27
SLIDE 27

Percent ¡error ¡of ¡rollover ¡:me ¡measurement ¡as ¡a ¡func:on ¡of ¡ paralleliza:on, ¡128 ¡bit ¡counter, ¡increased ¡resolu:on ¡(2 ¡ns ¡IE) ¡

  • III. ¡ ¡Applica6on: ¡ ¡Expression-­‑level ¡parallelism ¡for ¡Spice ¡[11 ¡of ¡13] ¡

1.5 ¡us ¡of ¡Ngspice ¡simulated ¡:me ¡

Percent ¡error ¡

Number ¡of ¡parallel ¡instances ¡ Bits ¡per ¡instance ¡

64 ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡32 ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡16 ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡8 ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡4 ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡2 ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡1 ¡ ¡ ¡ ¡ ¡ ¡

2 ¡ns ¡IE ¡ dura:on ¡

0.14 ¡ 0.10 ¡ 0.52 ¡ 0.69 ¡ 1.62 ¡ 1.61 ¡ 3.87 ¡ 0 ¡ 1 ¡ 1 ¡ 2 ¡ 2 ¡ 3 ¡ 3 ¡ 4 ¡ 4 ¡ 5 ¡

2 ¡ 4 ¡ 8 ¡ 16 ¡ 32 ¡ 64 ¡ 128 ¡

slide-28
SLIDE 28

Summary ¡I: ¡ ¡128b ¡counter ¡example ¡with ¡ expression-­‑level ¡parallelism ¡ ¡

  • III. ¡ ¡Applica6on: ¡ ¡Expression-­‑level ¡parallelism ¡for ¡Spice ¡[12 ¡of ¡13] ¡
  • ¡3838 ¡transistors, ¡5.6 ¡minutes ¡to ¡simulate ¡1.5 ¡us ¡as ¡one ¡circuit ¡
  • ¡52x ¡speedup ¡(6.5 ¡s) ¡at ¡64x ¡parallel, ¡8.59 ¡% ¡error, ¡10ns ¡IE ¡dura6on ¡
  • ¡17x ¡speedup ¡(19 ¡s) ¡at ¡16x ¡parallel, ¡0.69 ¡% ¡error, ¡2ns ¡IE ¡dura6on ¡
  • ¡No ¡changes ¡to ¡Ngspice ¡kernel, ¡or ¡host ¡machine ¡required ¡(!) ¡
  • ¡Each ¡independent ¡Spice ¡instance ¡can ¡determine ¡its ¡own ¡dynamic ¡

6me-­‑step ¡(versus ¡execu6on-­‑level ¡techniques) ¡

  • ¡Percent ¡error ¡of ¡measurement ¡reduces ¡as ¡IE ¡resolu6on ¡increases ¡
  • ¡There ¡exists ¡a ¡point ¡of ¡diminishing ¡returns ¡as ¡parallelism ¡or ¡

resolu6on ¡increases ¡(increased ¡communica6on ¡to ¡backplane) ¡

slide-29
SLIDE 29
  • III. ¡ ¡Applica6on: ¡ ¡Expression-­‑level ¡parallelism ¡for ¡Spice ¡[13 ¡of ¡13] ¡

¡ ¡ ¡ ¡ ¡Summary ¡II: ¡Limita:ons ¡ ¡

  • ¡There ¡is ¡a ¡trade-­‑off ¡in ¡speedup ¡versus ¡accuracy ¡compared ¡to ¡

100% ¡accurate ¡execu6on-­‑level ¡techniques ¡ ¡ ¡

  • ¡Ngspice ¡socket ¡devices ¡are ¡presently ¡limited ¡to ¡digital ¡device ¡

node ¡voltages ¡(circuit ¡par66on ¡points ¡are ¡at ¡inverter ¡outputs) ¡ ¡ ¡ ¡ ¡ ¡Summary ¡III: ¡ ¡Opportuni:es ¡

  • ¡Technique ¡applies ¡to ¡simulators ¡with ¡no ¡studied ¡internal ¡

parallelism, ¡such ¡that ¡the ¡simulator ¡offers ¡a ¡host ¡OS ¡interface ¡ ¡

  • ¡Possible ¡to ¡combine ¡execu6on-­‑level ¡and ¡expression-­‑level ¡Spice ¡

parallelism ¡for ¡a ¡mul6plica6ve ¡speedup: ¡<n> ¡model ¡subcircuits ¡ distributed ¡over ¡<n> ¡simulators ¡each ¡with ¡<m> ¡6mes ¡execu6on-­‑ level ¡speedup ¡poten6ally ¡results ¡in ¡an ¡<n> ¡* ¡<m> ¡total ¡speedup ¡

slide-30
SLIDE 30

Topics ¡

I. Introduc6on ¡and ¡Requirements ¡

  • II. ¡ ¡ ¡ ¡Kahn ¡Process ¡Networks ¡and ¡Interpolated ¡Events ¡
  • III. Applica6on: ¡ ¡Expression-­‑level ¡parallelism ¡for ¡Spice ¡
  • IV. ¡ ¡ ¡Q ¡& ¡A ¡
slide-31
SLIDE 31

Example: ¡ ¡Thermocouple ¡signal ¡condi:oning ¡and ¡ADC ¡[1] ¡

  • V. ¡ ¡Appendix ¡[1 ¡of ¡2] ¡

¡ ¡Choice ¡of ¡op-­‑amps ¡and ¡passive ¡components ¡just ¡as ¡affec6ng ¡as ¡firmware ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡

[1] ¡Valvano, ¡Real ¡Time ¡Embedded ¡Instrumenta6on ¡ hjp://users.ece.utexas.edu/~valvano ¡

slide-32
SLIDE 32

Feedback ¡with ¡TExaS ¡and ¡Ngspice ¡

  • V. ¡ ¡Appendix ¡[2 ¡of ¡2] ¡