[patch] HPEC CFAR Detection benchmark
Don McCoy
don at codesourcery.com
Tue May 2 00:43:27 UTC 2006
The attached patch implements the CFAR benchmark. Briefly, this problem
involves finding targets based on data within a three-dimensional cube
of 'beam locations', 'range gates' and 'doppler bins'. It does this by
comparing the signal in a given cell to that of nearby cells in order to
avoid false-detection of targets. The range gate parameter is varied
when considering 'nearby' cells. A certain number of guard cells are
skipped, resulting in a computation that sums the values from two thick
slices of this data cube (one on either side of the slice for a
particular range gate). The HPEC PCA Kernel-Level benchmark paper has a
diagram that shows one cell under consideration. Please refer to it if
needed.
The algorithm involves these basic steps:
- compute the squares of all the values in the data cube
- for each range gate:
- sum the squares of desired values around the current range gate
- compute the normalized power for each cell in the slice
- search for values that exceed a certain threshold
Some of the code relates to boundary conditions (near either end of the
'range gates' parameter), but otherwise it follows the above description.
For now, the original implementation used get/put (actually operator())
instead of using subviews and the element-wise operators. Switching
from one to the other resulted in about a 25% improvement in performance
for the first set of data (see attached graph). The other sets
experienced improvement as well, to varying degrees. I'd like to
consider how we can improve the throughput further. Switching the
processing order may help possibly. Thoughts are welcome.
The benchmark only varies the number of range gates based upon the four
sets of parameters defined in the HPEC paper. As the workload is
equally dependent on each of the three dimensions, sweeping the other
two would not add much value.
Regards,
--
Don McCoy
don (at) CodeSourcery
(888) 776-0262 / (650) 331-3385, .712
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: cf.changes
URL: <http://sourcerytools.com/pipermail/vsipl++/attachments/20060501/08091759/attachment.ksh>
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: cf.diff
URL: <http://sourcerytools.com/pipermail/vsipl++/attachments/20060501/08091759/attachment-0001.ksh>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: cfar_optimized_mflops.png
Type: image/png
Size: 4346 bytes
Desc: not available
URL: <http://sourcerytools.com/pipermail/vsipl++/attachments/20060501/08091759/attachment.png>
More information about the vsipl++
mailing list