Adapting Parallel Backprojection to an FPGA
Enhanced Distributed Computing Environment
Albert Conti, Ben Cordes,
Miriam Leeser, Eric Miller
Northeastern University
Richard Linderman
Air Force Research Labs
High Performance Embedded Computing
22 SEP 2005
Distribution Statement A: Cleared for Public Release. Distribution is unlimited.
1
Outline
HHPC Architecture
Synthetic Aperture Radar and Backprojection
Implementing Backprojection on the HHPC
Results
Analysis
Distribution Statement A: Cleared for Public Release. Distribution is unlimited.
2
HHPC Processing
HPTi 48 Node Beowulf Cluster
Each node
Dual 2.2 GHz Xeon processors
4 Gigabytes of RAM
Annapolis Wildstar II FPGA board
2 x Virtex II 6000
12 Megabytes of SRAM
128 Megabytes of DRAM
32 bit PCI to host PC
Distribution Statement A: Cleared for Public Release. Distribution is unlimited.
3
HHPC Communication
MPI programming interface
commands two communication
channels
10/100/1000 Ethernet
Multi-Gigabit Myrinet
Each FPGA board has a
daughter card that supports
LVDS. LVDS interconnections
are daisy chained.
Distribution Statement A: Cleared for Public Release. Distribution is unlimited.
4
Synthetic Aperture Radar
Synthetic Aperture Radar (SAR) is a method
through which high resolution images can be
rendered with a single transceiver.
Data from samples at different points in time
and space are combined to synthetically
generate an array of transceivers.
Distribution Statement A: Cleared for Public Release. Distribution is unlimited.
5
SAR Data
SAR data exists as an array
of time indexed projections
of the target area as seen
from the multiple sample
points in space.
Data in each time index of a
projection represent the
reflectivity of points in space
a known distance away from
the transceiver.
Each pixel in the target area
is a function of data at
different time indices of each
projection.
Distribution Statement A: Cleared for Public Release. Distribution is unlimited.
6
Backprojection
Backprojection is an algorithm to reconstruct images
from SAR data.
For each pixel in the target image, data from each
projection corresponding to that pixel is accumulated.
Result is a collective value of reflectivity for each pixel
which can be directly translated to a normalized RGB
value to create an image.
Backprojection is a highly parallelizable algorithm that
filters out physical effects of radar.
Distribution Statement A: Cleared for Public Release. Distribution is unlimited.
7
Motivation for Acceleration
With current radar technology, transceivers have the
ability to collect gigabytes of data per second.
Reconstructing images from such large amounts of
data is computationally prohibitive in terms of
processing and input bandwidth requirements.
Currently, data is collected and then processed later
on the ground.
Clearly, processing in real time and on-site is
desirable.
Distribution Statement A: Cleared for Public Release. Distribution is unlimited.
8
Parallelism
Processing in parallel can
provide for a gain in
performance.
Data dependencies reduce
opportunity for acceleration
due to parallel processing.
Few data dependencies
exist in backprojection
algorithm for SAR.
Both pixel level and
projection level parallelism
can be exploited with
backprojection.
Distribution Statement A: Cleared for Public Release. Distribution is unlimited.
9
Projection Level Parallelism
Projections can be indexed
in parallel and data can be
accumulated sequentially.
Projection level parallelism
is limited by input memory
bandwidth as well as
available processing
elements.
Distribution Statement A: Cleared for Public Release. Distribution is unlimited.
10
Pixel Level Parallelism
The target image can be
partitioned spatially so that
pixels can be processed in
parallel.
Pixel level parallelism is
limited by input memory
bandwidth.
Our system exploits both
pixel level and projection
level parallelism.
Distribution Statement A: Cleared for Public Release. Distribution is unlimited.
11
Mapping to FPGAs
Processing requirements are simple for
backprojection
LUTs can be used to determine which index into each
projection corresponds to each pixel in the target area.
After data is fetched, adders are all that is required for
computation.
Virtex II has more than enough resources to efficiently
support parallel backprojection.
Total size of target image that can be processed by a
single FPGA is limited by the memory available to
store the intermediate results.
Global target image can be partitioned spatially and
distributed between multiple FPGAs.
Distribution Statement A: Cleared for Public Release. Distribution is unlimited.
12
Implementation
Single-Processing node is configured to backproject
the maximum size target image.
Exploit projection level parallelism using fine grain
parallelism with FPGAs and on-board SRAM.
Multi-node system partitions global target image
according to single-node implementation and
distributes processing.
Exploit pixel level parallelism using coarse grain
parallelism with MPI software.
Distribution Statement A: Cleared for Public Release. Distribution is unlimited.
13
Processing Node Data-Flow
1. Host loads projection data into memory from a shared
disk.
2. Host programs FPGA board with bitstream.
3. Host downloads as much projection data as hardware
can process in parallel.
4. Repeat step 3 until all projections have been
processed by hardware.
5. Host uploads target image data from FPGA board.
Distribution Statement A: Cleared for Public Release. Distribution is unlimited.
14
Processing Node Hardware
Virtex6000 FPGA On-Board Memories
Control Controller
Registers State Machine
Glue logic Swath Logic
LAD Interface Target SRAMs
(PCI Bridge) (2x1MB)
L-Clock domain P-Clock domain
Distribution Statement A: Cleared for Public Release. Distribution is unlimited.
15
Using Multiple Processing Nodes
Global target image is partitioned spatially to minimize
(eliminate) the need to transmit redundant data.
Exploit pixel level parallelism with MPI software.
Each node processes a fixed size partition of the
image. For global images that are too large, partitions
are time-multiplexed.
Master Node(s) is used to control processing and
collect resulting images so they can be merged and
written to a file.
Distribution Statement A: Cleared for Public Release. Distribution is unlimited.
16
Process Control
Master Node Processing Node
Setup Initialize
Setup
File Read
Process
Receive Transmit
File Write
Distribution Statement A: Cleared for Public Release. Distribution is unlimited.
17
Data, Preprocessing
To test our system and measure performance, we
used Matlab to produce synthetic data.
Matlab allowed us to test with multiple image
dimensions, radar sample rates and plane speeds
resulting in different values for image resolution.
Data preprocessing/filtering/formatting done with C
code to transform Matlab output into our system s
input.
Soumekh, M. Synthetic Aperture Radar Signal Processing with MATLAB
Algorithms, ISBN 0-471-29706-2
Distribution Statement A: Cleared for Public Release. Distribution is unlimited.
18
Resolution
Images show the
result of processing
increasing amounts
of data per projection.
There is much
redundancy in
1k 2k
projection data.
For target images
with equal range and
azimuth resolution,
we chose 4k.
4k 8k
Distribution Statement A: Cleared for Public Release. Distribution is unlimited.
19
Processing Node Timing
1 Projection
Setup Read datafile Processing D/L
Pipeline
0.57 0.01 3.40 1.40 0.45
Processing: Upload Run x1024
700 us 675 us
4 Projection
Setup Read datafile Proc. D/L
Pipeline
0.57 0.01 3.40 0.84 0.45
Processing: Upload x4 Run x256
2600 us 700 us
Distribution Statement A: Cleared for Public Release. Distribution is unlimited.
20
Multi-node Timing
Master Node
Idle Receive targets Write imagefile
4-5 6-8 7-8
Processing Nodes
Read datafile Proc & Transmit Idle
4-5 6-8 7-8
Reset SRAM
Processing D/L & Transmit x2
Proc & Transmit:
0.01 1.40 1-2
Runtime diagram for 32 processing nodes reconstructing a global
target area 64 times the size a single node can process.
Distribution Statement A: Cleared for Public Release. Distribution is unlimited.
21
Benchmark, Comparison Basis
Three sets of benchmark data were used to measure
accuracy and runtime performance.
Matlab code generates complex double precision
floating point data after a transform to and from the
frequency domain.
Preprocessing filter transforms Matlab data into 16 bit
fixed point data.
Multiple parallel instances of our system as well an
efficient software solution run on a single processor of
the HHPC were tested.
Distribution Statement A: Cleared for Public Release. Distribution is unlimited.
22
Images
Single Target High Reflectivity Coefficient
Three Targets Ranging Reflectivity Coefficients
Eight Targets Low Reflectivity Coefficients
Distribution Statement A: Cleared for Public Release. Distribution is unlimited.
23
Performance Comparison
Runtime as a function of Parallelism
0 10 20 30 40
Number of Processing Nodes
Distribution Statement A: Cleared for Public Release. Distribution is unlimited.
24
Bottlenecks
Backprojection system is restricted by file I/O
capabilities of the HHPC.
Increasing projection level parallelism beyond our
current implementation will not improve overall
performance because input file read time dominates.
Increasing pixel level parallelism so that a larger
target area can be processed at once will not be able
to improve much beyond our current implementation
because output file write time dominates.
Distribution Statement A: Cleared for Public Release. Distribution is unlimited.
25
Parallel File I/O Performance Analysis
Parallel file I/O would allow for parallel backprojection without
inter-process communication prior to the write back stage. There
would be no need for a master node. Runtime projections are
based on experimental results using multiple output files.
Master Node
Idle Receive targets Write imagefile
4-5 6-8 7-8
Processing Nodes
Read datafile Proc & Transmit Idle
4-5 6-8 7-8
Processing Nodes
Read datafile Proc & Write With Parallel File I/O
4-5 6.5-8.5
Distribution Statement A: Cleared for Public Release. Distribution is unlimited.
26
Projected Performance with Parallel File I/O
Runtime as a Function of Parallelism
0 *-**-**-**-**-** 35
Number of Processing Nodes
Overall Speedup would increase from 26x to no less than 41x.
Distribution Statement A: Cleared for Public Release. Distribution is unlimited.
27
Extensions, Improvements
Current MPI libraries on HHPC do not support parallel
file I/O. File system is major bottleneck of overall
system.
Currently, one of the two FPGAs on each Wildstar II is
being utilized. Making use of the other FPGA so that
access to the additional SRAM would make each
node able to process a target image twice as large.
DMA rather the PIO for data movement between host
PC and Wildstar II.
LVDS interconnect.
Distribution Statement A: Cleared for Public Release. Distribution is unlimited.
28
Summary
We successfully mapped backprojection for SAR onto
the AFRL HHPC.
Made efficient use of the Annapolis Wildstar II FPGA
board.
Achieved 26x speedup over an efficient serial
solution.
Current system able to process data as fast as it can
be read and written from the file system.
Distribution Statement A: Cleared for Public Release. Distribution is unlimited.
29
Acknowledgement
This publication was made possible through support
provided by DoD HPCMP PET activities through
Mississippi State University under contract No.
N62306-01-D-7110.
Distribution Statement A: Cleared for Public Release. Distribution is unlimited.
30
For more information:
Northeastern Reconfigurable Computing Lab
www.ece.neu.edu/groups/rpl
AFRL/IF Distributed Center
www.rl.af.mil/tech/facilities/HPC/hpcf.html
Contact
******@***.***.***
Distribution Statement A: Cleared for Public Release. Distribution is unlimited.
31