Am Thu, 09 May 2013 12:18:34 +0200
schrieb Orlarey Yann <[email protected]>:

> Hi Marc,

Hi,

> Thanks for your email and welcome to the mailing list. I still have to play 
> with your programs, but I am impressed by your code considering you just 
> started using Faust, congratulation !

Well, shucks :) .

I suppose reading many of the papers and the documentation, watching all of the
LAC videos and reading through the standard library helped ;) .

> I did some compilation benchmark of your code using faust1 on a macbook air. 
> The compilation is decomposed in 4 phases :
> - parsing
> - evaluation : translates the algorithmically described block-diagram into a 
> big flat block-diagram in normal form
> - propagation : propagates symbolic signals into the block-diagram in order 
> to discover how each output signal is expressed
> - compilation : translates output signal expressions into C++ code
> 
> 
> Here is what I get :
> 
> mbstereophony.dsp
> =================
> parser (duration : 0.0188298)
> evaluation (duration : 60.66)
> propagation (duration : 20.5604)
> compilation (duration : 0.170211)
> 
> real    1m21.447s
> user    1m20.855s
> sys    0m0.576s
> 
> 
> rmfbd_sum.dsp
> ==============
> parser (duration : 0.02108)
> evaluation (duration : 26.707)
> propagation (duration : 152.806)
> compilation (duration : 0.0284498)
> 
> real    2m59.700s
> user    2m59.090s
> sys    0m0.467s
> 
> 
> rmfbd_syn.dsp
> ==============
> parser (duration : 0.017298)
> evaluation (duration : 56.7303)
> propagation (duration : 596.579)
> compilation (duration : 0.0540679)
> 
> real    10m53.404s
> user    10m52.247s
> sys    0m1.091s
> 
> 
> rmfbs_sum.dsp
> ==============
> parser (duration : 0.020314)
> evaluation (duration : 8.90142)
> propagation (duration : 4.13869)
> compilation (duration : 0.048768)
> 
> real    0m13.181s
> user    0m12.987s
> sys    0m0.134s
> 
> 
> rmfbs_syn.dsp
> ==============
> parser (duration : 0.019501)
> evaluation (duration : 21.5213)
> propagation (duration : 8.68882)
> compilation (duration : 0.090451)
> 
> real    0m30.341s
> user    0m30.071s
> sys    0m0.264s
> 
> Clearly rmfbd_syn.dsp was very slow to compile : 11mn  essentially spent in 
> the propagation phase !

Yes, rmfbd_syn was what I was writing about. Of course I forgot to mention that
I was using -vec, with which I got one hour compilation time. My experience is
that using -vec (and auto-vectorisable code in general) really does make a
difference in run-time performance, so I don't even bother with scalar code by
default.

Also, how do you get those numbers above?

> But you can accelerate the compilation time by changing the way you declare 
> the UI to
> 
> freq_slider(i) = hgroup("Filterbank edge frequencies", vslider("Freq. %j 
> [unit:Hz]", fdef(i),fmin(i),fmax(i),1)) with {
>         j=i+1;
>         fmin(i) = take(i+1,freq_minima);
>         fmax(i) = take(i+1,freq_maxima);
>         fdef(i) = take(i+1,freq_defaults);
>         };
> 
> freqs = par(i,N,freq_slider(i));
> 
> With this modification I was able to get better timings for the same 
> resulting C++ code :
> 
> parser (duration : 0.017338)
> evaluation (duration : 29.548)
> propagation (duration : 133.139)
> compilation (duration : 0.051075)
> 
> real    2m42.789s
> user    2m42.201s
> sys    0m0.535s
> 
> 
> Let me know if that improves the situation on your side...

Yes! I thought the inputs might be the problem after the "-vec and multiple
control inputs" thread (and also because I get the feeling that "selector" in
general is quite expensive to compile), but didn't see how to simplify it. Of
course, now it looks totally obvious :) .

Anyway, after making the changes to rmfbd_{syn,sum}.dsp, the total compile time
(via "scons -j2 all CXX=clang++") on my system (with -vec) went down to about
15 minutes :) .

This also made it feasible to add frequency sliders to mbstereophony, even if
it still takes about 40 minutes to compile with -vec :) . Therefore, as with
rmfb*, I added four mbstereophony* variants. Of course, that shot the compile
time for all 8 programs up to about an hour, but I'm still happy about the
results :) .

> Cheers
> 
> Yann

Thanks a lot
-- 
Marc Joliet
--
"People who think they know everything really annoy those of us who know we
don't" - Bjarne Stroustrup

Attachment: signature.asc
Description: PGP signature

------------------------------------------------------------------------------
Learn Graph Databases - Download FREE O'Reilly Book
"Graph Databases" is the definitive new guide to graph databases and 
their applications. This 200-page book is written by three acclaimed 
leaders in the field. The early access version is available now. 
Download your free book today! http://p.sf.net/sfu/neotech_d2d_may
_______________________________________________
Faudiostream-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/faudiostream-users

Reply via email to