On Wed, Jan 23, 2013 at 10:43 AM, Michael Dickens <m...@alum.mit.edu> wrote:
> On Jan 23, 2013, at 10:34 AM, Tom Rondeau <t...@trondeau.com> wrote: > >> On Wed, Jan 23, 2013 at 10:29 AM, Michael Dickens <m...@alum.mit.edu> > wrote: > >> I'm wondering what "volk_profile" is doing? It looks like it's running > through (all?) available kernels for a given algorithm and finding the > "best" (fastest?) one. Is this correct? > >> > > Yes, that's correct. It runs each proto-kernel available on your machine > and compares how long it took to execute them, then it stores the fastest > version in the config file. This is then read when your program initializes > a new VOLK kernel to find the right one to use. > > Ah; OK. Sort of like what FFTW does for fft's, but probably with its own > twist. So if the "volk_config" file exists, VOLK reads it and uses it to > determine which kernel to use for a given VOLK algorithm instantiation. > [Is there a proper VOLK-like name for a "VOLK algorithm instantiation"?] > If this file does not exist, how does VOLK pick the kernel? Is this info > somewhere in a Wiki? I haven't looked, so forgive me if I'm asking FAQ's. > - MLD We call the "VOLK algorithm instantiations" VOLK proto-kernels. When the volk_config file doesn't exist or if it does not contain a reference to the kernel (say you've installed a new version and did not update your profile), then VOLK takes the set of proto-kernels that your machine can run and selects the 'highest' version. So ACX > SSE4 > SS2 > MMX, etc. While this isn't always the best kernel to use on a given machine, it's definitely the best way to select barring other information. Will have to check the wiki to see how complete it currently is. Also, we just published a paper describing VOLK at the SDR conference. I should upload that to the website. Tom
_______________________________________________ Discuss-gnuradio mailing list Discuss-gnuradio@gnu.org https://lists.gnu.org/mailman/listinfo/discuss-gnuradio