discuss-gnuradio
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Discuss-gnuradio] VOLK - vector multiplication


From: Nasi
Subject: Re: [Discuss-gnuradio] VOLK - vector multiplication
Date: Thu, 20 Mar 2014 22:16:57 +0400

I've got this error:


/tmp/ccE79VRG.o: In function `main':

t2_rx_ompalg.cc:(.text+0x6a5): undefined reference to `volk_32fc_x2_dot_prod_32fc'
collect2: error: ld returned 1 exit status

I was running it inside main function as

g++ -std=c++11 t2_rx_ompalg.cc -o t2_rx_ompalg -lm -lfftw3

 
Do you know what is it for?

-
NE



Thu, 20 Mar 2014 13:04:02 -0400 от Tom Rondeau <address@hidden>:
On Thu, Mar 20, 2014 at 12:51 PM, Nasi <address@hidden> wrote:
> Thanks!
>
> As I see you apply it to the first element of x as in
> volk_32fc_something_32fc(&x[0], ...);.
> I want to multiply the whole vector like as a inner product of two vectors.
> Is it possible?
>
> -
> NE

Not sure I exactly follow your comment, but you can do something like this:

int N;
vector<gr_complex> x(N);
vector<gr_complex> y(N);
vector<gr_complex> z(N);

// fill x and y with stuff

volk_32fc_x2_dot_prod_32fc(&z[0], &x[0], &y[0], N);

That will take the dot product of x and y and put the results in z.

Tom


> Четверг, 20 марта 2014, 10:28 -04:00 от Tom Rondeau <address@hidden>:
>
> On Thu, Mar 20, 2014 at 10:09 AM, Aditya Dhananjay <address@hidden>
> wrote:
>> I had the same question. Thanks! :)
>
> One thing that I forgot to mention is that VOLK is written purely in
> C, so C++ vectors as-is won't work. You need to index them, but
> luckily, std::vector's are guaranteed to be contiguous in memory when
> indexed.
>
> In other words:
>
> std::vector<gr_complex> x;
> volk_32fc_something_32fc(&x[0], ...);
>
> Tom
>
>
>
>> On Thu, Mar 20, 2014 at 10:07 AM, Tom Rondeau <address@hidden> wrote:
>>>
>>> On Thu, Mar 20, 2014 at 7:05 AM, Nasi <address@hidden> wrote:
>>> > Hi all,
>>> >
>>> > I am using ubuntu 13.04, GNUradio 3.7.
>>> > I have a question related to VOLK library.
>>> >
>>> > When I create a vector, lets say:
>>> >
>>> > vector<gr_complex> y1;
>>> >
>>> > Can I multiply this vector to another vector using VOLK?
>>> > Is there any good documentation for this?
>>> >
>>> > --
>>> > NE
>>>
>>> Myself and Nick McCarthy have published and presented on VOLK. Here's
>>> a pretty good overview video of using it:
>>> http://www.trondeau.com/blog/2013/6/12/nearly-50-minutes-of-volk.html
>>>
>>> To answer your question, yes, building a vector like that is
>>> acceptable for use with volk kernels as long as you are using the
>>> correct data types. Be aware of alignment requirements, though, which
>>> the link above explains.
>>>
>>> Tom
>>>
>>> _______________________________________________
>>> Discuss-gnuradio mailing list
>>> address@hidden
>>> https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
>>>
>>
>
>
>
> --
> NE


--
NE

reply via email to

[Prev in Thread] Current Thread [Next in Thread]