Neal, I just wrote some fast-ish multirate FIR functions. I seems like 
you're probable looking for an exercise to learn the language, but if you 
want a reference you can check them out here 
<https://github.com/JayKickliter/Radio.jl/blob/master/src/Filter/FIRFilter.jl>. 
For the interpolating FIR is mostly within 2x of Intel's IPP speed.

On Friday, August 1, 2014 5:33:57 AM UTC-6, Neal Becker wrote:
>
> Thanks for your help. 
>
> FYI, there are 2 reasons I passed a slice instead of a single element: 
>
> 1. This is just the first of several types of FIR filter.  In the case of 
> an 
> (efficient) decimating FIR filter, the length of the slice is >1 element 
>
> 2. I want to see how well julia can handle slices 
>
> Sam L wrote: 
>
> > u[i:i] or view(u, i:i) create a one element array/view, so the u in 
> > shift_and_compute1 and compute1 always has length 1. I changed those 
> > functions to take a scalar instead of an array and got about a 6 to 9x 
> > speed up. 
> > 
> > Also, you can get rid of most of the type annotations without affecting 
> the 
> > performance. The only ones you need are in compute and compute1 
> functions, 
> > because the types are used in those functions. You could alternatively 
> get 
> > the types with eltype(f.in) for example and drop those too. 
> > 
> > My version is here: https://gist.github.com/lendle/897eea1e5458eedb8e43. 
>
> > 
> > On Thursday, July 31, 2014 10:10:13 AM UTC-7, Neal Becker wrote: 
> >> 
> >> Daniel Jones wrote: 
> >> 
> >> > 
> >> > Here's a version that's 7x faster (and almost 8x if you disable 
> bounds 
> >> > checking). The main thing is to avoid indexing into arrays with 
> ranges 
> >> (as 
> >> > in u[i:j]) if you can, since that will allocate and copy a new array 
> >> each 
> >> > time. And also, like Patrick said, globals should usually be declared 
> >> with 
> >> > 'const'. 
> >> > 
> >> > On Thursday, July 31, 2014 8:38:33 AM UTC-7, Neal Becker wrote: 
> >> >> 
> >> >> Attached is my 1st attempt at julia, it is a simple FIR filter, 
> which I 
> >> >> translated from my c++ version. 
> >> >> 
> >> >> It is benchmarking about 10x slower than python wrapped c++ version. 
> >> >> 
> >> >> Any suggestions? 
> >> 
> >> I was concerned about that indexing arrays causing copying, and to get 
> >> closer to 
> >> the c++ version (which does not copy), I tried out ArrayViews.  I'll 
> >> attach that 
> >> version, but I did not see any speedup. 
>
>
>

Reply via email to