10.07.2015 Views

GPU Based Polyphase Filter Banks for VLBI - MIT Haystack ...

GPU Based Polyphase Filter Banks for VLBI - MIT Haystack ...

GPU Based Polyphase Filter Banks for VLBI - MIT Haystack ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Introduction Implemenation Results Future Work Conclusions<strong>GPU</strong> <strong>Based</strong> <strong>Polyphase</strong> <strong>Filter</strong> <strong>Banks</strong><strong>for</strong> <strong>VLBI</strong>Mark McCurryChristopher Beaudoin & Geoff Crew<strong>MIT</strong> <strong>Haystack</strong> REU Program 2011<strong>GPU</strong> <strong>Based</strong> <strong>Polyphase</strong> <strong>Filter</strong> <strong>Banks</strong> <strong>for</strong> <strong>VLBI</strong>


Introduction Implemenation Results Future Work ConclusionsOutlineIntroductionWhat is being done?PFBHardwareImplemenationCUDAResultsQualityQuantityFuture WorkConclusions<strong>GPU</strong> <strong>Based</strong> <strong>Polyphase</strong> <strong>Filter</strong> <strong>Banks</strong> <strong>for</strong> <strong>VLBI</strong>


Introduction Implemenation Results Future Work ConclusionsWhat is being done?DSP◮ Input of Analog values from data source near 4 Gb/s<strong>GPU</strong> <strong>Based</strong> <strong>Polyphase</strong> <strong>Filter</strong> <strong>Banks</strong> <strong>for</strong> <strong>VLBI</strong>


Introduction Implemenation Results Future Work ConclusionsWhat is being done?DSP◮ Input of Analog values from data source near 4 Gb/s◮ Per<strong>for</strong>m <strong>Polyphase</strong> <strong>Filter</strong> Bank (PFB) on a Nvidia <strong>GPU</strong><strong>GPU</strong> <strong>Based</strong> <strong>Polyphase</strong> <strong>Filter</strong> <strong>Banks</strong> <strong>for</strong> <strong>VLBI</strong>


Introduction Implemenation Results Future Work ConclusionsWhat is being done?DSP◮ Input of Analog values from data source near 4 Gb/s◮ Per<strong>for</strong>m <strong>Polyphase</strong> <strong>Filter</strong> Bank (PFB) on a Nvidia <strong>GPU</strong>◮ Output of channelized frequency spectrum<strong>GPU</strong> <strong>Based</strong> <strong>Polyphase</strong> <strong>Filter</strong> <strong>Banks</strong> <strong>for</strong> <strong>VLBI</strong>


Introduction Implemenation Results Future Work ConclusionsHardwareRoach Digital Backend (RDBE)<strong>GPU</strong> <strong>Based</strong> <strong>Polyphase</strong> <strong>Filter</strong> <strong>Banks</strong> <strong>for</strong> <strong>VLBI</strong>


Introduction Implemenation Results Future Work ConclusionsHardwareNvidia <strong>GPU</strong>s<strong>GPU</strong> <strong>Based</strong> <strong>Polyphase</strong> <strong>Filter</strong> <strong>Banks</strong> <strong>for</strong> <strong>VLBI</strong>


Introduction Implemenation Results Future Work ConclusionsCUDAWhat is CUDA?<strong>GPU</strong> <strong>Based</strong> <strong>Polyphase</strong> <strong>Filter</strong> <strong>Banks</strong> <strong>for</strong> <strong>VLBI</strong>


Introduction Implemenation Results Future Work ConclusionsCUDACUDAg l o b a l voidc u u n q u a n t i z e ( f l o a t ∗ dest , const i n t 8 t ∗ s r c ,s i z e t N){const s i z e t i = blockDim . x∗ b l o c k I d x . x +t h r e a d I d x . x ;i f ( i


Introduction Implemenation Results Future Work ConclusionsCUDACUDA 2// Setup v i a cudaMemcpy// i n p u t and output a r e on the <strong>GPU</strong>c u u n q u a n t i z e (output , input , 1 0 0 ) ;// Return v i a cudaMemcpy<strong>GPU</strong> <strong>Based</strong> <strong>Polyphase</strong> <strong>Filter</strong> <strong>Banks</strong> <strong>for</strong> <strong>VLBI</strong>


Introduction Implemenation Results Future Work ConclusionsQualityQuality of output: Actual1Magnitude response of 256 tap FIR, 32 tap FFT based PFB0.90.80.7Normalized Gain0.60.50.40.30.20.100 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1Frequency (half−cycles/second)<strong>GPU</strong> <strong>Based</strong> <strong>Polyphase</strong> <strong>Filter</strong> <strong>Banks</strong> <strong>for</strong> <strong>VLBI</strong>


Introduction Implemenation Results Future Work ConclusionsQualityQuality of output: Matlab1Matlab Prototype PFB0.90.80.7Normalized Gain0.60.50.40.30.20.100 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1Frequency (half−cycles/second)<strong>GPU</strong> <strong>Based</strong> <strong>Polyphase</strong> <strong>Filter</strong> <strong>Banks</strong> <strong>for</strong> <strong>VLBI</strong>


Introduction Implemenation Results Future Work ConclusionsQuantitySpeedTable: Per<strong>for</strong>mance of <strong>GPU</strong> Code 1Per<strong>for</strong>mance MetricsData Input RateReference Implementaiton744 MB/sNo extra channels540 MB/sHardcoding FIR size756 MB/sHardcoded FIR, Hand Tuned Block Size 890 MB/sUsing 1/10 cost 470GTX637 MB/s1 As of August 1st<strong>GPU</strong> <strong>Based</strong> <strong>Polyphase</strong> <strong>Filter</strong> <strong>Banks</strong> <strong>for</strong> <strong>VLBI</strong>


Introduction Implemenation Results Future Work ConclusionsIncreasing SpeedsHow to proceed:◮ Profiling, and extensive testing<strong>GPU</strong> <strong>Based</strong> <strong>Polyphase</strong> <strong>Filter</strong> <strong>Banks</strong> <strong>for</strong> <strong>VLBI</strong>


Introduction Implemenation Results Future Work ConclusionsIncreasing SpeedsHow to proceed:◮ Profiling, and extensive testing◮ Effective use of CUDA resources<strong>GPU</strong> <strong>Based</strong> <strong>Polyphase</strong> <strong>Filter</strong> <strong>Banks</strong> <strong>for</strong> <strong>VLBI</strong>


Introduction Implemenation Results Future Work ConclusionsIncreasing SpeedsHow to proceed:◮ Profiling, and extensive testing◮ Effective use of CUDA resources◮ Waiting <strong>for</strong> new cards<strong>GPU</strong> <strong>Based</strong> <strong>Polyphase</strong> <strong>Filter</strong> <strong>Banks</strong> <strong>for</strong> <strong>VLBI</strong>


Introduction Implemenation Results Future Work ConclusionsConclusions◮ CUDA makes heavyweight software processing possible<strong>GPU</strong> <strong>Based</strong> <strong>Polyphase</strong> <strong>Filter</strong> <strong>Banks</strong> <strong>for</strong> <strong>VLBI</strong>


Introduction Implemenation Results Future Work ConclusionsConclusions◮ CUDA makes heavyweight software processing possible◮ Real time processing is possible at lower rates<strong>GPU</strong> <strong>Based</strong> <strong>Polyphase</strong> <strong>Filter</strong> <strong>Banks</strong> <strong>for</strong> <strong>VLBI</strong>


Introduction Implemenation Results Future Work ConclusionsConclusions◮ CUDA makes heavyweight software processing possible◮ Real time processing is possible at lower rates◮ <strong>GPU</strong> processing is applicable to Astronomy and scientificcomputation<strong>GPU</strong> <strong>Based</strong> <strong>Polyphase</strong> <strong>Filter</strong> <strong>Banks</strong> <strong>for</strong> <strong>VLBI</strong>

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!