Real-Time Adaptive Signal Processing Development for US Navy ...

0 downloads 95 Views 851KB Size Report
Dec 13, 2006 - software commonality with Mk 48 ... MIT-LL Development Hardware .... Goal: develop real-time stream for T
Real-Time Adaptive Signal Processing Development for US Navy Torpedoes Matthew A. Alexander [email protected] HPEC 2006 20 Sept 2006 This work was sponsored by the Department of the Air Force under Air Force Contract #FA8721-05-C-0002. Opinions, interpretations, conclusions and recommendations are those of the author, and are not necessarily endorsed by the United States Government. Reference to any specific commercial product, trade name, trademark or manufacturer does not constitute or imply endorsement. The author wishes to acknowledge the contributions of MIT/LL staff Francine Rayson, Dr. James C. Anderson, and Dr. Nigel Lee, as well as NUWC/Npt staff Dr. Adam Mirkin MIT Lincoln Laboratory HPEC 2006-1/25 MAA 12/13/2006

Outline



Introduction



Implementation



Results



Summary

HPEC 2006-2/25 MAA 12/13/2006

MIT Lincoln Laboratory

Background on Mk 48 / Mk 54 US Navy Torpedoes •

Mk 48 heavyweight torpedo carried by all U.S. attack (SSN) & ballistic missile (SSBN) subs since 1972 (ADvanced CAPability since 1988) – –



Used against deep-diving nuclear subs & littoral diesel subs (SSK) 50 km range @ 74 km/hr or 38 km @ 102 km/hr (JUWS)

Mk 54 LHT (lightweight hybrid torpedo) has computer hardware & software commonality with Mk 48 – – –

Mk 54 anti-submarine torpedo launched from surface ship or air-dropped Mk 50 (1992) being replaced by Mk 54 (2004) 20 km range @ 83.4 km/hr (JNWS)

1.5m Mk 50/54 (5 ft)

Sea Arrow

HPEC 2006-3/25 MAA 12/13/2006

Mk 48

MIT Lincoln Laboratory

MIT-LL Involvement in Torpedo Development Process •

Current Mk 48 and Mk 54 signal processing use “conventional” (non-adaptive) processing – Conventional beamforming, conventional angle estimation – Performs well in “clean” scenarios (targets in ambient noise)



MIT-LL is working with NUWC/Npt to implement adaptive signal processing stream to improve torpedo performance in countered scenarios – Adaptive beamforming rejects energy from nearby countermeasures to uncover targets – Adaptive angle estimation rejects countermeasure energy to provide unbiased target angle estimates – Adaptive processing provides improved performance but also requires more computations

MIT-LL is developing real-time implementation of torpedo adaptive signal processing stream HPEC 2006-4/25 MAA 12/13/2006

MIT Lincoln Laboratory

Torpedo Adaptive Signal Processor (TASP) Stream Receive processing

Conventional beamforming

Window & FFT

Gain

52 element array Adaptive beamforming (ABF) Adaptive angle estimation (AAE)

Adaptive sidelobe blanking (ASB) Adaptive processing loop

Magnitude

Normalization

Weapon Controller HPEC 2006-5/25 MAA 12/13/2006

Threshold

Clustering

Threshold crossings: Doppler & range parameters Azimuth & elevation estimates MIT Lincoln Laboratory

Signal Processor Prototyping Hardware Torpedo Hardware Radstone G4DSP Quad 400 MHz PowerPC Signal Processor 12.8 GFLOPS Peak

MIT-LL Development Hardware Radstone G4DSP-XE Quad 1 GHz PowerPC Signal Processor 32 GFLOPS Peak

HPEC 2006-6/25 MAA 12/13/2006

MIT Lincoln Laboratory

GFLOPS = Billions of floating point operations per second

MIT Torpedo Advanced Processor Build (TAPB) Testbed Development Target Platform Radstone quad Platform

Lab constructed to support algorithm development and computational assessment

PowerPC DSP

DSP Board Host Server Host

RAID HP ProLiant Server

HPEC 2006-7/25 MAA 12/13/2006



HP ProLiant cluster (initial development) – Supports parallel Matlab, C++, and parallel C++ processing – Provides data server



Radstone G4DSP-XE Quad PPC (emulates target platform) – Final C++ and parallel C++ implementations – Provides real-time analysis platform MIT Lincoln Laboratory

Parallel Matlab (pMatlab) B(:,:)=fft(A) A = rand(M,N,p); B = zeros(M,N,p); B(:,:) = fft(A);

High High Performance Performance Matlab Matlab Applications Applications DoD Sensor Processing

DoD Decision Support

Scientific Simulation

Commercial Applications

User Interface

Parallel Matlab Toolbox Hardware Interface

Parallel Computing Hardware

B(:,:)=fft(A) Messaging B(:,:)=fft(A) my_rank=MPI_Comm_rank(comm); if (my_rank==0)|(my_rank==1)|(my_rank==2)|(my_rank==3) A_local=rand(M,N/4);end if (my_rank==4)|(my_rank==5)|(my_rank==6)|(my_rank==7) B_local=zeros(M/4,N);end A_local=fft(A_local); tag=0;if (my_rank==0)...MPI_Send(4,tag,comm,A_local(1:M/4,:); elseif (my_rank==4)...B_local(:,1:N/4) = MPI_Recv(0,tag,comm);end tag = tag+1;if (my_rank==0)...MPI_Send(5,tag,comm,A_local(M/4+1:2M/4,:); elseif (my_rank==5)...B_local(:,1:N/4) = MPI_Recv(0,tag,comm);end tag=tag+1;if (my_rank==0)...MPI_Send(6,tag,comm,A_local(2M/4+1:3M/4,:); elseif (my_rank==6)...B_local(:,1:N/4) = MPI_Recv(0,tag,comm);end tag=tag+1;if (my_rank==0)...MPI_Send(7,tag,comm,A_local(3M/4+1:M,:); elseif (my_rank==7)...B_local(:,1:N/4) = MPI_Recv(0,tag,comm);end tag=tag+1;if (my_rank==1)...MPI_Send(4,tag,comm,A_local(1:M/4,:); elseif (my_rank==4)...B_local(:,N/4+1:2N/4) = MPI_Recv(1,tag,comm);end tag=tag+1;if (my_rank==1)...MPI_Send(5,tag,comm,A_local(M/4+1:2M/4,:); elseif (my_rank==5)...B_local(:,N/4+1:2N/4) = MPI_Recv(1,tag,comm);end tag=tag+1;if (my_rank==1)...MPI_Send(6,tag,comm,A_local(2M/4+1:3M/4,:); elseif (my_rank==6)...B_local(:,N/4+1:2N/4) = MPI_Recv(1,tag,comm);end tag=tag+1;if (my_rank==1)...MPI_Send(7,tag,comm,A_local(3M/4+1:M,:); elseif (my_rank==7)...B_local(:,N/4+1:2N/4) = MPI_Recv(1,tag,comm);end tag=tag+1;if (my_rank==2)...MPI_Send(4,tag,comm,A_local(1:M/4,:); elseif (my_rank==4)...B_local(:,2N/4+1:3N/4) = MPI_Recv(2,tag,comm);end tag=tag+1;if (my_rank==2)...MPI_Send(5,tag,comm,A_local(M/4+1:2M/4,:); elseif (my_rank==5)...B_local(:,2N/4+1:3N/4) = MPI_Recv(2,tag,comm);end tag=tag+1;if (my_rank==2)...MPI_Send(6,tag,comm,A_local(2M/4+1:3M/4,:); elseif (my_rank==6)...B_local(:,2N/4+1:3N/4) = MPI_Recv(2,tag,comm);end tag=tag+1;if (my_rank==2)...MPI_Send(7,tag,comm,A_local(3M/4+1:M,:); elseif (my_rank==7)...B_local(:,2N/4+1:3N/4) = MPI_Recv(2,tag,comm);end tag=tag+1;if (my_rank==3)...MPI_Send(4,tag,comm,A_local(1:M/4,:); elseif (my_rank==4)...B_local(:,3N/4+1:N) = MPI_Recv(3,tag,comm);end tag=tag+1;if (my_rank==3)...MPI_Send(5,tag,comm,A_local(M/4+1:2M/4,:); elseif (my_rank==5)...B_local(:,3N/4+1:N) = MPI_Recv(3,tag,comm);end tag=tag+1;if (my_rank==3)...MPI_Send(6,tag,comm,A_local(2M/4+1:3M/4,:); elseif (my_rank==6)...B_local(:,3N/4+1:N) = MPI_Recv(3,tag,comm);end tag=tag+1;if (my_rank==3)...MPI_Send(7,tag,comm,A_local(3M/4+1:M,:); elseif (my_rank==7)...B_local(:,3N/4+1:N) = MPI_Recv(3,tag,comm);end

mapA = map([1 4],{},[0:3]); mapB = map([4 1],{},[4:7]); A = rand(M,N,mapA); B = zeros(M,N,mapB); B(:,:) = fft(A);

Automated Maps

Distributed Objects

Goals Matlab Matlab speedup speedup through through transparent transparent parallelism parallelism Near-real-time Near-real-time rapid rapid prototyping prototyping HPEC 2006-8/25 MAA 12/13/2006

MIT Lincoln Laboratory

Parallel Vector Library (PVL) Portable, Portable, scalable scalable middleware middleware for for high high performance performance array array signal signal processing processing applications applications Application Components (Reusable) Scalable Components Portable Kernels

HPEC 2006-9/25 MAA 12/13/2006

MIT Lincoln Laboratory VSIPL = Vector signal image processing library SSE = Streaming SIMD (Single instruction, multiple data) extensions

Parallel Vector Library (PVL) Portable, Portable, scalable scalable middleware middleware for for high high performance performance array array signal signal processing processing applications applications Application Components (Reusable) Scalable Components Portable Kernels

Workstation Simulation

HPEC 2006-10/25 MAA 12/13/2006

Real-Time Cluster

Real-Time Embedded Platform

Workstations to “Roll-on/Roll-Off” Rapid Prototyping • Functionality • Hardware Mapping • Real-time

MIT Lincoln Laboratory VSIPL = Vector signal image processing library SSE = Streaming SIMD (Single instruction, multiple data) extensions

Parallel Vector Library (PVL) Portable, Portable, scalable scalable Matrix Multiply Performance (128×128for * 128×N) middleware high middleware for high performance performance array array signal signal processing processing applications applications % Efficiency

Application Components (Reusable) Scalable Components Portable Kernels

Workstation Simulation

HPEC 2006-11/25 MAA 12/13/2006

Real-Time Cluster

Real-Time Embedded Platform

Workstations to “Roll-on/Roll-Off” Rapid Prototyping • Functionality • Hardware Mapping • Real-time

Columns (N)

MIT Lincoln Laboratory VSIPL = Vector signal image processing library SSE = Streaming SIMD (Single instruction, multiple data) extensions

Outline



Introduction



Implementation



Results



Summary

HPEC 2006-12/25 MAA 12/13/2006

MIT Lincoln Laboratory

Development Methodology Algorithm Development

Computational Optimizations

Intel (Matlab)

Parallel Mapping

Signal Processing Code Parallel Intel (Parallel Mapping Matlab)

Intel (C++)

C Code

PPC C Code

C Code

Intel (Parallel C++)

PPC (C++)

Parallel C Code

Target Platform

PPC (Parallel C++)

Goal: develop real-time stream for Torpedo Adaptive Signal Processor on target platform



Serial processing development: – – –



Finalize Matlab signal processing stream Convert Matlab code to serial C/C++ code Port serial C/C++ implementation to target PowerPC (PPC) platform

Parallel processing development – – –

HPEC 2006-13/25 MAA 12/13/2006

Parallelize Matlab code using pMatlab to determine optimal mappings Convert serial C/C++ code to parallel C/C++ code (using pMatlab maps) Port parallel C/C++ code to target PPC platform MIT Lincoln Laboratory

Development Methodology: Matlab to C++



Intel (Matlab)

Intel (C++)

PPC (C++)

Intel (Parallel Matlab)

Intel (Parallel C++)

PPC (Parallel C++)

Translate Matlab functionality into PVL/C++ – Cell arrays – Strided submatrices – Various mathematical functions (e.g., specgram)



Develop efficient implementations for Matlab memory routines (e.g., reshaping, transposing)



Pre-allocate memory during program initialization for optimal performance (Matlab allocates throughout processing) With PVL we are currently hand converting one line of Matlab code into an average of five lines of C++ code

HPEC 2006-14/25 MAA 12/13/2006

MIT Lincoln Laboratory

Development Methodology: Intel to PPC Intel (Matlab)

Intel (C++)

PPC (C++)

Intel (Parallel Matlab)

Intel (Parallel C++)

PPC (Parallel C++)



To run intel-based C++ application on target platform, it is necessary to port both application, PVL to Radstone board



Reconcile any compiler issues due to: – Different header files – Different or unsupported functions – Single instruction, multiple data (SIMD) optimizations made on Intel platform that need to be converted to their PPC SIMD equivalents

HPEC 2006-15/25 MAA 12/13/2006

MIT Lincoln Laboratory

Development Methodology: Serial to Parallel Intel (Matlab)

Intel (C++)

PPC (C++)

Intel (Parallel Matlab)

Intel (Parallel C++)

PPC (Parallel C++)



Determine optimal computation distribution mappings using pMatlab (i.e. frequency bands, frequency bins, time, other)



Verify that there are no data dependencies among compute nodes

Parallel middleware libraries (pMatlab, PVL) automate parallelism

HPEC 2006-16/25 MAA 12/13/2006

MIT Lincoln Laboratory

Performance Analysis Goal: determine how close we are to achieving real-time processing TASP Theoretical Throughput Analysis

Performance Analysis Steps

(Mk 54 Implementation)

GFLOPS



3.5

Board Threshold (derated 400MHz Quad PPC)

Determine complexity of algorithm

1.6 1.2 TASP Steps 0.8 0.4

HPEC 2006-17/25 MAA 12/13/2006

AAE ASB ABF FFT

Convert workload to theoretical throughput

Evaluate system performance MIT Lincoln Laboratory

GFLOPS = Billions of floating point operations per second

Performance Analysis Simulator Features •

PAS is an interactive GUI for algorithm development and analysis PAS Building Blocks Matlab Scripts

Modifiable Complexity Analysis Scripts

Mk 54/48 Merged Baseline

TCP Sockets

Developer Inputs

GUI Outputs

Software Implementation

Processing Results

Hardware Platform

Computational Performance Results

Parameters and Dataset

Real-time Achievement Factor

HPEC 2006-18/25 MAA 12/13/2006

MIT Lincoln Laboratory

Torpedo Development Performance Analysis Simulator

• • • HPEC 2006-19/25 MAA 12/13/2006

Algorithm development Hardware configuration control Algorithm parameter selection

• • •

Data set selection “Probe” results Latency & throughput results MIT Lincoln Laboratory

Torpedo Development Performance Analysis Simulator

• • • HPEC 2006-20/25 MAA 12/13/2006

Algorithm development Hardware configuration control Algorithm parameter selection

• • •

Data set selection “Probe” results Latency & throughput results MIT Lincoln Laboratory

Torpedo Development Performance Analysis Simulator

• • • HPEC 2006-21/25 MAA 12/13/2006

Algorithm development Hardware configuration control Algorithm parameter selection

• • •

Data set selection “Probe” results Latency & throughput results MIT Lincoln Laboratory

Outline



Introduction



Implementation



Results



Summary

HPEC 2006-22/25 MAA 12/13/2006

MIT Lincoln Laboratory

Complexity Analysis Results

Throughput without weight-sharing

Throughput (MFLOPS) Throughput (MFLOPS)

Window & FFT Beamforming Magnitude Normalization Side-lobe Blanking Angle Estimation Total

10000 8000 6000

4000 SP Board Threshold: 3460

2000 0

12000 Throughput (MFLOPS)

12000

Throughput with Weight-sharing

10000 8000 6000 4000

Window & FFT Beamforming Magnitude Normalization Side-lobe Blanking Angle Estimation Total SP Board Threshold: 3460

2000 0

• • • HPEC 2006-23/25 MAA 12/13/2006

Computations assume reduced Degrees of Freedom (DOF) ABF with White Noise Gain Constraint (WNGC) loading Initial TASP implementation does not fit onto SP board Weight sharing allows TASP to fit onto SP board MIT Lincoln Laboratory

MFLOPS = Millions of floating point operations per second

TASP C++ Hand Optimization Results Latency (Seconds)

300

A

250

C++

200

Matlab

150 100

B

C

50

E

D

6 /2 19 7/

7/

12

/2 0

00

06

06 7/

5/

20

06 6/

28

/2 6/

21

/2 14 6/

• • • • •

/2 0

00

00

6

6

0

A: Verbatim Matlab to C++ translation B: Padded data to allow for SIMD optimizations C: Developed efficient methods for memory routines (i.e. find(), reshape() ) D: Used pointers to access & modify non-contiguous data E: Preprocessed constant variables (i.e. beamformer coefficients)

HPEC 2006-24/25 MAA 12/13/2006

MIT Lincoln Laboratory

TASP performed on a single Intel Xeon processor

Parallel Processing Distribution Distribution along time dimension •Processors cycle around and get data from every 4th range gate

52 element array PPC

PPC

PPC

PPC

Radstone Board Weapon Controller

HPEC 2006-25/25 MAA 12/13/2006

MIT Lincoln Laboratory

Computational Benchmark Results Doppler Bin Sharing

Degrees of Freedom

Percentage of Real-time

1600 1400

Intel Matlab Intel C++ Intel C++ w/ SSE Real-time

1200 1000

Intel Matlab Intel C++ Intel C++ w/ SSE Real-time

800 600

Real-time

Real-time

400 200 0

1

2

4

8

16

Shared Doppler Bins

• • HPEC 2006-26/25 MAA 12/13/2006

32

4

6

8

10

12

14

16

Adaptive Degrees of Freedom

Real-time achieved via Intel C++ with SSE using 8 shared Doppler bins and 9 degrees of freedom Results reflect parallel processing MIT Lincoln Laboratory

18

Outline



Introduction



Implementation



Results



Summary

HPEC 2006-27/25 MAA 12/13/2006

MIT Lincoln Laboratory

Summary •

Formulated strategy for achieving real-time processing requirement – Methodology is being applied to development of Torpedo Adaptive Signal Processor (TASP)



Performed complexity analysis to determine required throughput in order to achieve real-time processing



Developed real-time processing stream in C/C++ using portable/scalable middleware library



Created Performance Analysis Simulator interactive GUI to simplify signal processing development, computation assessment

HPEC 2006-28/25 MAA 12/13/2006

MIT Lincoln Laboratory

MIT-LL Future Efforts in Torpedo Development Process •

Continue to optimize MIT-LL implementation of torpedo adaptive signal processor (TASP)



Help torpedo system engineers to integrate MIT-LL implementation of TASP into actual torpedoes – Apply lessons learned for optimizing C++ version of TASP – Ensure proper communication between torpedo signal processor (adaptive version) and weapon controller



Support real-time implementation of future algorithm variations of TASP

HPEC 2006-29/25 MAA 12/13/2006

MIT Lincoln Laboratory

BACKUPS

HPEC 2006-30/25 MAA 12/13/2006

MIT Lincoln Laboratory

Platform and Throughput Details •

Signal Processor for ADCAP Mk-48 Mod 7: – Radstone G4DSP-7410 – Quad 400 MHz PowerPC card with 1 Gbyte DDR SDRAM



Computational capability de-rating: – Peak throughput per card: 12.8 GFLOPS (3.2 billion floating point operations per second per processor) – Throughput after 50% processor/memory utilization and 54% system efficiency* Throughput and memory thresholds 3.5 GFLOPS with 512 Mbytes DDR SDRAM

for signal processing algorithms.

– I/O utilization is negligible



Algorithm Throughput Calculations: – Workload is calculated per batch – Throughput = Workload x Range Gate Sampling Rate GFLOPS = Billions of floating point operations per second

HPEC 2006-31/25 MAA 12/13/2006

MIT Lincoln Laboratory * maximum efficiency taking into account system processes

Parallel Programming Libraries

Application

Output

Analysis

Input

Vector/Matrix Vector/Matrix

Comp Comp

Conduit

User Interface

Task

Library Library Layer Layer (pMatlab, (pMatlab, PVL) PVL)

Parallel Library

Kernel Kernel Layer Layer

Hardware Interface

Math (Matlab, VSIPL)

Messaging (MatlabMPI, MPI)

Parallel Hardware •• Can Can build build aa parallel parallel library library with with aa few few messaging messaging primitives primitives

HPEC 2006-32/25 MAA 12/13/2006

•• Can Can build build aa application application with with aa few few parallel parallel structures structures and and functions functions MIT Lincoln Laboratory

pMatlab = Parallel Matlab

PVL = Parallel Vector Library

MIT/LL TAPB Laboratory Setup VTrak 15100 6Tbyte RAID5

Radstone G4DSPXE PowerPC Single Board DSP

HP ProLiant BL20p server

SCSI

Gbit Ethernet

Serial

Ethernet Gbit Ethernet

Gbit Ethernet

Sun Blade 100 Host Secure LAN HPEC 2006-33/25 MAA 12/13/2006

Cluster Workstation

MIT Lincoln Laboratory

Signal Processor Prototyping Hardware Radstone G4DSP



Four MPC7410 PowerPC nodes running at 400Mhz –

• • • •



Peak throughput: 12.8 GFLOPS (derated to 3.5 GFLOPS)

256 Mbytes DDR SDRAM per node One 100Base-T ethernet port –

Radstone G4DSP-XE



• •

Peak transfer rate: 12.5 Mbytes/sec

Consumes