a high-speed inter-process communication architecture for fpga-based hardware acceleration of...

39
A High-Speed Inter-Process A High-Speed Inter-Process Communication Architecture Communication Architecture for FPGA-based Hardware for FPGA-based Hardware Acceleration Acceleration of Molecular Dynamics of Molecular Dynamics Presented by: Presented by: Chris Comis Chris Comis September 23, 2005 September 23, 2005 Supervisor: Supervisor: Professor Paul Chow Professor Paul Chow

Upload: gordon-smith

Post on 12-Jan-2016

214 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: A High-Speed Inter-Process Communication Architecture for FPGA-based Hardware Acceleration of Molecular Dynamics Presented by: Chris Comis September 23,

A High-Speed Inter-Process A High-Speed Inter-Process Communication Architecture Communication Architecture

for FPGA-based Hardware Acceleration for FPGA-based Hardware Acceleration of Molecular Dynamicsof Molecular Dynamics

Presented by: Presented by: Chris ComisChris ComisSeptember 23, 2005September 23, 2005

Supervisor:Supervisor: Professor Paul ChowProfessor Paul Chow

Page 2: A High-Speed Inter-Process Communication Architecture for FPGA-based Hardware Acceleration of Molecular Dynamics Presented by: Chris Comis September 23,

2

OutlineOutline

1.1. MotivationMotivation2.2. System-Level OverviewSystem-Level Overview3.3. Protocol DevelopmentProtocol Development4.4. ResultsResults5.5. Integration into a Programming ModelIntegration into a Programming Model6.6. Conclusions/QuestionsConclusions/Questions

Page 3: A High-Speed Inter-Process Communication Architecture for FPGA-based Hardware Acceleration of Molecular Dynamics Presented by: Chris Comis September 23,

3

What is Molecular Dynamics?What is Molecular Dynamics?

A method of calculating the time-evolution of A method of calculating the time-evolution of molecular configurationsmolecular configurations

Useful in the analysis of protein foldingUseful in the analysis of protein folding Many applications in rational drug designMany applications in rational drug design

Page 4: A High-Speed Inter-Process Communication Architecture for FPGA-based Hardware Acceleration of Molecular Dynamics Presented by: Chris Comis September 23,

4

1.1. Forces (i.e. F=ma) are calculated between an atom Forces (i.e. F=ma) are calculated between an atom and all other atoms in the systemand all other atoms in the system

An O(nAn O(n22) problem across 10,000+ atoms) problem across 10,000+ atoms

2.2. Force calculations are performed at femtosecond Force calculations are performed at femtosecond timestepstimesteps

Interesting results may take several Interesting results may take several μμs of s of simulation (10simulation (1099+ timesteps required)+ timesteps required)

MD is Computationally MD is Computationally ChallengingChallenging

MD simulations are typically run on supercomputersMD simulations are typically run on supercomputers

Page 5: A High-Speed Inter-Process Communication Architecture for FPGA-based Hardware Acceleration of Molecular Dynamics Presented by: Chris Comis September 23,

5

An FPGA-based MD AcceleratorAn FPGA-based MD Accelerator

An ongoing collaborative project involves An ongoing collaborative project involves the development of an FPGA-based MD the development of an FPGA-based MD AcceleratorAccelerator

Advantages to an FPGA-based approach:Advantages to an FPGA-based approach:1.1. Massive parallel computationMassive parallel computation2.2. Forces can be parallelizedForces can be parallelized3.3. Force computations can be accelerated ~88xForce computations can be accelerated ~88x4.4. High-speed Serial I/O (SERDES) may be High-speed Serial I/O (SERDES) may be

leveragedleveraged

Page 6: A High-Speed Inter-Process Communication Architecture for FPGA-based Hardware Acceleration of Molecular Dynamics Presented by: Chris Comis September 23,

6

Area of FocusArea of Focus

Develop communication protocol using Develop communication protocol using high-speed SERDES linkshigh-speed SERDES links

Requirements:Requirements: ReliabilityReliability Light-weightLight-weight Minimal trip-time for small packets Minimal trip-time for small packets Must be abstracted at the hardware and Must be abstracted at the hardware and

software levelssoftware levels

Page 7: A High-Speed Inter-Process Communication Architecture for FPGA-based Hardware Acceleration of Molecular Dynamics Presented by: Chris Comis September 23,

7

OutlineOutline

1.1. MotivationMotivation2.2. System-Level OverviewSystem-Level Overview3.3. Protocol DevelopmentProtocol Development4.4. ResultsResults5.5. Integration into a Programming ModelIntegration into a Programming Model6.6. Conclusions/QuestionsConclusions/Questions

Page 8: A High-Speed Inter-Process Communication Architecture for FPGA-based Hardware Acceleration of Molecular Dynamics Presented by: Chris Comis September 23,

8

Blocks Blocks →→ computation computationArrows Arrows →→ communication communication

A Partial MD SimulatorA Partial MD Simulator

Computation blocksComputation blockscan be hardwarecan be hardwareor software executedor software executedon MicroBlazeon MicroBlazesoft processorssoft processors

Software must be writtenSoftware must be writtenusing a programming using a programming modelmodel

Page 9: A High-Speed Inter-Process Communication Architecture for FPGA-based Hardware Acceleration of Molecular Dynamics Presented by: Chris Comis September 23,

9

System-Level OverviewSystem-Level Overview

The MD simulator is The MD simulator is simplified to a simplified to a Producer/Consumer modelProducer/Consumer model

Page 10: A High-Speed Inter-Process Communication Architecture for FPGA-based Hardware Acceleration of Molecular Dynamics Presented by: Chris Comis September 23,

10

System-Level OverviewSystem-Level Overview

The MD simulator is The MD simulator is simplified to a simplified to a Producer/Consumer modelProducer/Consumer model

The model is then adapted The model is then adapted for SERDES developmentfor SERDES development

Page 11: A High-Speed Inter-Process Communication Architecture for FPGA-based Hardware Acceleration of Molecular Dynamics Presented by: Chris Comis September 23,

11

System-Level OverviewSystem-Level Overview

The MD simulator is The MD simulator is simplified to a simplified to a Producer/Consumer modelProducer/Consumer model

The model is then adapted The model is then adapted for SERDES developmentfor SERDES development

1.1. Producers and consumer Producers and consumer hardware blocks are hardware blocks are implementedimplemented

Page 12: A High-Speed Inter-Process Communication Architecture for FPGA-based Hardware Acceleration of Molecular Dynamics Presented by: Chris Comis September 23,

12

System-Level OverviewSystem-Level Overview

The MD simulator is The MD simulator is simplified to a simplified to a Producer/Consumer modelProducer/Consumer model

The model is then adapted The model is then adapted for SERDES developmentfor SERDES development

1.1. Producers and consumer Producers and consumer hardware blocks are hardware blocks are implementedimplemented

2.2. An FSL (FIFO) is used as an An FSL (FIFO) is used as an abstracted method of data abstracted method of data transport with SERDES logictransport with SERDES logic

Page 13: A High-Speed Inter-Process Communication Architecture for FPGA-based Hardware Acceleration of Molecular Dynamics Presented by: Chris Comis September 23,

13

System-Level OverviewSystem-Level Overview

The MD simulator is The MD simulator is simplified to a simplified to a Producer/Consumer modelProducer/Consumer model

The model is then adapted The model is then adapted for SERDES developmentfor SERDES development

1.1. Producers and consumer Producers and consumer hardware blocks are hardware blocks are implementedimplemented

2.2. An FSL is used as an An FSL is used as an abstracted method of data abstracted method of data transport with SERDES logictransport with SERDES logic

3.3. An OPB bus interface is An OPB bus interface is added for register access of added for register access of componentscomponents

Page 14: A High-Speed Inter-Process Communication Architecture for FPGA-based Hardware Acceleration of Molecular Dynamics Presented by: Chris Comis September 23,

14

System-Level OverviewSystem-Level Overview

The MD simulator is The MD simulator is simplified to a simplified to a Producer/Consumer modelProducer/Consumer model

The model is then adapted The model is then adapted for SERDES developmentfor SERDES development

1.1. Producers and consumer Producers and consumer hardware blocks are hardware blocks are implementedimplemented

2.2. An FSL is used as an An FSL is used as an abstracted method of data abstracted method of data transport with SERDES logictransport with SERDES logic

3.3. An OPB bus interface is An OPB bus interface is added for register access of added for register access of componentscomponents

4.4. Deep FIFOs are added for Deep FIFOs are added for logging high-speed datalogging high-speed data

Page 15: A High-Speed Inter-Process Communication Architecture for FPGA-based Hardware Acceleration of Molecular Dynamics Presented by: Chris Comis September 23,

15

OutlineOutline

1.1. MotivationMotivation2.2. System-Level OverviewSystem-Level Overview3.3. Protocol DevelopmentProtocol Development4.4. ResultsResults5.5. Integration into a Programming ModelIntegration into a Programming Model6.6. Conclusions/QuestionsConclusions/Questions

Page 16: A High-Speed Inter-Process Communication Architecture for FPGA-based Hardware Acceleration of Molecular Dynamics Presented by: Chris Comis September 23,

16

Protocol OverviewProtocol Overview A synchronous acknowledgement-based protocol was A synchronous acknowledgement-based protocol was

chosenchosen Simple and predictableSimple and predictable An inherent delay in waiting for acknowledgementsAn inherent delay in waiting for acknowledgements

To mask this delay:To mask this delay: Multiple producers are connected to the SERDES interfaceMultiple producers are connected to the SERDES interface The link is time-multiplexed across multiple producersThe link is time-multiplexed across multiple producers

Page 17: A High-Speed Inter-Process Communication Architecture for FPGA-based Hardware Acceleration of Molecular Dynamics Presented by: Chris Comis September 23,

17

Protocol OverviewProtocol Overview All data has a word width of 4 bytesAll data has a word width of 4 bytes Data packets:Data packets:

Variable size (between 32 and 2016 bytes)Variable size (between 32 and 2016 bytes) A 32-bit CRC is appendedA 32-bit CRC is appended

Acknowledgements:Acknowledgements: 8 bytes in size8 bytes in size Can interrupt transmission of data packetsCan interrupt transmission of data packets

Page 18: A High-Speed Inter-Process Communication Architecture for FPGA-based Hardware Acceleration of Molecular Dynamics Presented by: Chris Comis September 23,

18

Transmit LogicTransmit Logic

Transmitter consists mainly of two componentsTransmitter consists mainly of two components1.1. Dual-port buffers:Dual-port buffers:

The start address of the packet is kept in case a resend is The start address of the packet is kept in case a resend is necessarynecessary

2.2. Scheduler:Scheduler: Schedules ready packets in a round-robin fashionSchedules ready packets in a round-robin fashion

From Producer via FSL To Scheduler of SERDES Link

Page 19: A High-Speed Inter-Process Communication Architecture for FPGA-based Hardware Acceleration of Molecular Dynamics Presented by: Chris Comis September 23,

19

Receive LogicReceive Logic

Receiver consists mainly of two components:Receiver consists mainly of two components:1.1. Dual-port buffers:Dual-port buffers:

The start address of the packet is kept in case errors occurThe start address of the packet is kept in case errors occur

2.2. Three-stage Dataflow Pipeline:Three-stage Dataflow Pipeline:Stage 1: Determine if incoming data is properly formattedStage 1: Determine if incoming data is properly formattedStage 2: Evaluate incoming data against all possible errors Stage 2: Evaluate incoming data against all possible errors Stage 3: Pass results to acknowledgement handlerStage 3: Pass results to acknowledgement handler

From SERDES Link To Consumer via FSL

Page 20: A High-Speed Inter-Process Communication Architecture for FPGA-based Hardware Acceleration of Molecular Dynamics Presented by: Chris Comis September 23,

20

Design EffortDesign Effort

Majority of design effort was in error Majority of design effort was in error handling:handling: Transmitter: Transmitter:

Determine which packet combinations corrupt Determine which packet combinations corrupt the systemthe system

Establish a priority among conflicting packet Establish a priority among conflicting packet typestypes

Receiver: Receiver: Handle all possible combinations of Handle all possible combinations of

transmission errorstransmission errors

Page 21: A High-Speed Inter-Process Communication Architecture for FPGA-based Hardware Acceleration of Molecular Dynamics Presented by: Chris Comis September 23,

21

OutlineOutline

1.1. MotivationMotivation2.2. System-Level OverviewSystem-Level Overview3.3. Protocol DevelopmentProtocol Development4.4. ResultsResults5.5. Integration into a Programming ModelIntegration into a Programming Model6.6. Conclusions/QuestionsConclusions/Questions

Page 22: A High-Speed Inter-Process Communication Architecture for FPGA-based Hardware Acceleration of Molecular Dynamics Presented by: Chris Comis September 23,

22

Test EnvironmentTest Environment

All SERDES tests performed across a Xilinx All SERDES tests performed across a Xilinx Virtex-II Pro XC2VP7 and XC2VP30 series FPGAsVirtex-II Pro XC2VP7 and XC2VP30 series FPGAs

Ribbon cables were used to transfer serial data Ribbon cables were used to transfer serial data between non-impedance controlled connectorsbetween non-impedance controlled connectors

Page 23: A High-Speed Inter-Process Communication Architecture for FPGA-based Hardware Acceleration of Molecular Dynamics Presented by: Chris Comis September 23,

23

Reliability and SustainabilityReliability and Sustainability

Verification test environment:Verification test environment: Send data concurrently from three producers to Send data concurrently from three producers to

three respective consumersthree respective consumers Pseudo-random packet lengthPseudo-random packet length Consumers read from FSL at variable ratesConsumers read from FSL at variable rates

Reliability:Reliability: Run this test under extremely poor line conditionsRun this test under extremely poor line conditions

Sustainability: Sustainability: Run this test under normal line conditions for a Run this test under normal line conditions for a

long period of timelong period of time

Page 24: A High-Speed Inter-Process Communication Architecture for FPGA-based Hardware Acceleration of Molecular Dynamics Presented by: Chris Comis September 23,

24

ReliabilityReliability

Reliability: 128-second Test ResultsReliability: 128-second Test ResultsType of ErrorType of Error Average # of ErrorsAverage # of Errors

Soft Error (x10Soft Error (x1066)) 1.3121.312

Hard ErrorHard Error 722977722977

Frame ErrorFrame Error 2222

CRC ErrorCRC Error 1841418414

Receive Buffer Full (x10Receive Buffer Full (x1066)) 1.8041.804

Lost AcknowledgmentLost Acknowledgment 8176981769

Page 25: A High-Speed Inter-Process Communication Architecture for FPGA-based Hardware Acceleration of Molecular Dynamics Presented by: Chris Comis September 23,

25

SustainabilitySustainability

Sustainability: 8-hour Test Results Sustainability: 8-hour Test Results MeasurementMeasurement ResultResult

Resent Packets due to Resent Packets due to Receive Buffer Full (x10Receive Buffer Full (x1066))

502.353502.353

Successful Packets (x10Successful Packets (x1066)) 5666.8215666.821

Total Packets (x10Total Packets (x1066)) 6169.1746169.174

Approximate Bit-Rate (x10Approximate Bit-Rate (x1099)) 1.7551.755

Page 26: A High-Speed Inter-Process Communication Architecture for FPGA-based Hardware Acceleration of Molecular Dynamics Presented by: Chris Comis September 23,

26

Comparison Against Other Comparison Against Other Communication MechanismsCommunication Mechanisms

Two configurations are usedTwo configurations are used Configuration A: Saturate the channel with Configuration A: Saturate the channel with

packetspackets Configuration B: Loop-back testConfiguration B: Loop-back test

Compare against:Compare against: Simple FPGA-based 100BaseT EthernetSimple FPGA-based 100BaseT Ethernet TCP/IP FPGA-based 100BaseT EthernetTCP/IP FPGA-based 100BaseT Ethernet TCP/IP Cluster-based Gigabit EthernetTCP/IP Cluster-based Gigabit Ethernet

Page 27: A High-Speed Inter-Process Communication Architecture for FPGA-based Hardware Acceleration of Molecular Dynamics Presented by: Chris Comis September 23,

27

Throughput ResultsThroughput Results

Page 28: A High-Speed Inter-Process Communication Architecture for FPGA-based Hardware Acceleration of Molecular Dynamics Presented by: Chris Comis September 23,

28

One-way Trip Time ResultsOne-way Trip Time Results

Page 29: A High-Speed Inter-Process Communication Architecture for FPGA-based Hardware Acceleration of Molecular Dynamics Presented by: Chris Comis September 23,

29

Area ConsumptionArea Consumption

Each SERDES Interface takes approximately Each SERDES Interface takes approximately 8% of a Xilinx XC2VP308% of a Xilinx XC2VP30

Debug logic substantially increases area Debug logic substantially increases area consumption:consumption:

FF usage increases 68% FF usage increases 68% LUT usage increases 43%LUT usage increases 43%

Area MeasurementArea Measurement FFsFFs LUTsLUTs

Area with Debug LogicArea with Debug Logic 34863486 32183218

Area without Debug LogicArea without Debug Logic 20742074 22442244

Page 30: A High-Speed Inter-Process Communication Architecture for FPGA-based Hardware Acceleration of Molecular Dynamics Presented by: Chris Comis September 23,

30

OutlineOutline

1.1. MotivationMotivation2.2. System-Level OverviewSystem-Level Overview3.3. Protocol DevelopmentProtocol Development4.4. ResultsResults5.5. Integration into a Programming ModelIntegration into a Programming Model6.6. Conclusions/QuestionsConclusions/Questions

Page 31: A High-Speed Inter-Process Communication Architecture for FPGA-based Hardware Acceleration of Molecular Dynamics Presented by: Chris Comis September 23,

31

Integration into a Integration into a Programming ModelProgramming Model

while (1) {

MPI_Send(data_outgoing, 64, MPI_INT, 0, 0,

MPI_COMM_WORLD);

MPI_Recv(data_incoming, 64, MPI_INT, 0, 0,

MPI_COMM_WORLD, &status);

}

Hardware abstraction: FSLHardware abstraction: FSL Software abstraction: An MPI-based Software abstraction: An MPI-based

Programming ModelProgramming Model

Modified MPI_Send and MPI_Recv function Modified MPI_Send and MPI_Recv function callscalls

Page 32: A High-Speed Inter-Process Communication Architecture for FPGA-based Hardware Acceleration of Molecular Dynamics Presented by: Chris Comis September 23,

32

Integration into a Integration into a Programming ModelProgramming Model

Replaced producers and consumers with a Replaced producers and consumers with a MicroBlaze processorMicroBlaze processor

Several communication scenarios were testedSeveral communication scenarios were tested

ScenarioScenario Bit-Rate (Mbps)Bit-Rate (Mbps)

MicroBlaze to MicroBlaze (no traffic)MicroBlaze to MicroBlaze (no traffic) 4.304.30

MicroBlaze to MicroBlaze (traffic)MicroBlaze to MicroBlaze (traffic) 4.104.10

MicroBlaze to Hardware Consumer (no traffic)MicroBlaze to Hardware Consumer (no traffic) 7.787.78

Hardware Producer to MicroBlaze (no traffic)Hardware Producer to MicroBlaze (no traffic) 8.908.90

Page 33: A High-Speed Inter-Process Communication Architecture for FPGA-based Hardware Acceleration of Molecular Dynamics Presented by: Chris Comis September 23,

33

OutlineOutline

1.1. MotivationMotivation2.2. System-Level OverviewSystem-Level Overview3.3. Protocol DevelopmentProtocol Development4.4. ResultsResults5.5. Incorporation into a Programming ModelIncorporation into a Programming Model6.6. Conclusions/QuestionsConclusions/Questions

Page 34: A High-Speed Inter-Process Communication Architecture for FPGA-based Hardware Acceleration of Molecular Dynamics Presented by: Chris Comis September 23,

34

ConclusionsConclusions

Final Results:Final Results: Reliable and sustainableReliable and sustainable Abstracted at the software and hardware levelAbstracted at the software and hardware level 2074 FFs and 2244 LUTs required for SERDES 2074 FFs and 2244 LUTs required for SERDES

logic onlylogic only Given a channel rate of 2.5Gbps, maximum Given a channel rate of 2.5Gbps, maximum

bidirectional throughput of bidirectional throughput of 1.928Gbps1.928Gbps Minimum packet trip-time of Minimum packet trip-time of 1.231.23μμss

Page 35: A High-Speed Inter-Process Communication Architecture for FPGA-based Hardware Acceleration of Molecular Dynamics Presented by: Chris Comis September 23,

35

AcknowledgementsAcknowledgements

Y. Gu, T. VanCourt, M. C. Herbordt, FPGA Acceleration of Molecular Dynamics Computations, To appear: Proceedings of Field Programmable Logic and Applications, August 2005.

Professor RProfessor Réégis Pomgis Pomèès, Chris Madills, Chris Madill Professor Paul Chow, Professor C.Y. Chen, Professor Paul Chow, Professor C.Y. Chen,

Lesley Shannon, Arun Patel, Manuel Lesley Shannon, Arun Patel, Manuel Saldaña, David Chui, Sam Lee, Andrew Saldaña, David Chui, Sam Lee, Andrew House,, Nathalie Chan, Lorne Applebaum, House,, Nathalie Chan, Lorne Applebaum, Patrick AklPatrick Akl

ReferencesReferences

Page 36: A High-Speed Inter-Process Communication Architecture for FPGA-based Hardware Acceleration of Molecular Dynamics Presented by: Chris Comis September 23,

36

Transmitter Packet Collision Transmitter Packet Collision HandlingHandling

Packets are enclosed by 8B/10B control Packets are enclosed by 8B/10B control characters (K-characters) characters (K-characters)

The type of packet is distinguished by the The type of packet is distinguished by the K-characters usedK-characters used

Certain combinations of control characters Certain combinations of control characters cannot be nestedcannot be nested Clock correction has priority over acknowledgementClock correction has priority over acknowledgement Acknowledgement cannot interrupt the end of a Acknowledgement cannot interrupt the end of a

data packetdata packet Clock correction must avoid the beginning and end Clock correction must avoid the beginning and end

of a data packetof a data packet

Page 37: A High-Speed Inter-Process Communication Architecture for FPGA-based Hardware Acceleration of Molecular Dynamics Presented by: Chris Comis September 23,

37

Receiver Error HandlingReceiver Error Handling

All combinations of errors at the receiver are All combinations of errors at the receiver are handled correctlyhandled correctly Data errors (CRC errors)Data errors (CRC errors) Disparity errors or invalid characters (soft errors)Disparity errors or invalid characters (soft errors) Errors in framing (frame errors)Errors in framing (frame errors) Channel failures (hard errors)Channel failures (hard errors) Lost acknowledgements/repeat packetsLost acknowledgements/repeat packets Receiver buffers fullReceiver buffers full

Page 38: A High-Speed Inter-Process Communication Architecture for FPGA-based Hardware Acceleration of Molecular Dynamics Presented by: Chris Comis September 23,

38

Test Configuration ATest Configuration A

Send data concurrently from three producers to Send data concurrently from three producers to three respective consumersthree respective consumers

Producers write to FSL as fast as possibleProducers write to FSL as fast as possible Consumers read from FSL as fast as possibleConsumers read from FSL as fast as possible Analyze best-case throughput results Analyze best-case throughput results

Page 39: A High-Speed Inter-Process Communication Architecture for FPGA-based Hardware Acceleration of Molecular Dynamics Presented by: Chris Comis September 23,

39

Test Configuration BTest Configuration B

Send data from a producer to a consumerSend data from a producer to a consumer Delay a packet write from a producer until a packet Delay a packet write from a producer until a packet

has been completely received by the consumer on has been completely received by the consumer on the same FPGAthe same FPGA

A communication loop results that determines A communication loop results that determines round-trip trip time (and therefore one-way trip time)round-trip trip time (and therefore one-way trip time)