Been quite some time since my last update. So far, I have been able to
put together some new VOLK kernels for operations like exp, pow, log
and trigonometric functions. These performed really well compared to
glibc implementations. I also added AVX proto-kernels for heavily used
volk kernels, though that didn’t offer significant performance gains.
A commonly held view is that the way to get more performance out of
volk is to implement more complex operations (combining many separate
volk functions that are used to achieve the same), at the same time
maintaining a level of generality. An example is the calculation of
timing utility metric for the detection of OFDM frame signal. So far,
I have put together a volk kernel with the desired functionality
(though not optimized), that will be used by a frame detection
gr-block, which I am currently working on. More details on this to
come in the next blog post, which I aim to put out by early next week.
Going ahead, one of the tasks is to incorporate channel coding blocks
such as Viterbi/Turbo from OpenAirInterfaces. This will be followed by
another new volk kernel targeting ofdm equalization, but the exact
nature of the operation to be volk’ified is yet to be finalized.
Through the latter part of the program, I want to spend more time
identifying the different aspects of gr applications that can benefit
from vectorization, this will be the focus of my work post Gsoc.
Of course, suggestions from the community on potential new operations
desirable in volk and other feedback, is greatly appreciated. One such
suggestion that came during the proposal submission phase was
acceleration of the out-of-tree gr-dvbt block by Bogdan D., so
that is a good candidate for post gsoc work.
On Sat, Jun 14, 2014 at 11:07 PM, Abhishek B.
[email protected] wrote:
University (will be joining) : Carnegie Mellon University, USA
Looking forward to working with the community and eager to get started soon.