I would not expect that big of a difference in the amount of time to process 64-bit versus 32-bit input data. Something else may be afoot here. - Julius
On Tue, Mar 20, 2018 at 3:42 PM, CrocoDuck o'Ducks <crocoduck.odu...@gmail.com> wrote: > Hi guys, > > I think I probably found what was wrong. > > So, I used the -t 0 option and it worked, but it took a really huge time to > compile (almost a hour I think). > > I did some tests and I don't see any problem with fi.fir(), it supports very > large lists. > > > The fact that your times are as so much smaller than mine made me think. I > upgraded to 2.5.23 (that's the latest on Arch repos), but same issue. I was > about to try to build the last version but then I realised that my Julia > code was dumping Float64 literals into the Faust source code. However, I got > the impression that Faust wants C++ float literals, which should be kinda > equivalent to Julia's Float32, while C++ double should be sort of like > Julia's Float64. What suggested that to me is that I could see the numbers > notated with f in few (not related) compiler errors. > > So, I modified my Julia code to convert the FIR taps to Float32 before > writing them down in the .dsp files. Now it compiles quite fast, a bunch of > seconds. > > So, I guess that I was dropping numbers with too high precision into the > Faust source code, and then the compiler was spending a ton of time to > convert them. Is it plausible? > > > On Tue, 20 Mar, 2018 at 7:28 PM, Julius Smith <j...@ccrma.stanford.edu> > wrote: > > I think [complexity] info should be added in the library documentation. > > +1 - Julius On Tue, Mar 20, 2018 at 5:26 AM, Stéphane Letz <l...@grame.fr> > wrote: > > ba.take ==> complexity O(n^2) I think that this kind of info should be added > in the library documentation. And also as a general rule in the « > Contributing » section of > https://github.com/grame-cncm/faustlibraries/blob/master/README.md, to push > library writers to document this kind of things. Stéphane > > Le 20 mars 2018 à 04:32, Yann Orlarey <orla...@grame.fr> a écrit : HI, I did > some tests and I don't see any problem with fi.fir(), it supports very large > lists. Here is the test file I used: // ------- fir500.dsp ------ > import("stdfaust.lib"); process = fi.fir(( 1,2,3,4,5,6,7,8,9,10, ...48 > copies... 1,2,3,4,5,6,7,8,9,10)); //--------------------------------- time > faust fir500.dsp -o /dev/null real 0m0.446s user 0m0.375s sys 0m0.030s If > instead, I use the second code you mentioned // ------- fur500.dsp ------ > import("stdfaust.lib"); fur(coeffs) = _ <: par(i, 500, @(i) * ba.take(i + 1, > coeffs)) :> _; process = fur(( 1,2,3,4,5,6,7,8,9,10, ...48 copies... > 1,2,3,4,5,6,7,8,9,10)); //--------------------------------- The compilation > will take a very long time because ba.take() is really not the way to go in > this case (complexity O(n^2)). Here are the results I get: time faust > fur500.dsp -o /dev/null real 1m18.270s user 1m16.947s sys 0m0.900s The > difference is enormous (x170)! If in your case you don't see any difference > of performances between the two, then there is a problem with the fi.fir > implementation you are using. Can you try with the latest version of Faust > (version 2.5.25)? Cheers Yann 2018-03-19 15:01 GMT-07:00 Oliver Larkin via > Faudiostream-users <faudiostream-users@lists.sourceforge.net>: depending on > what faust version you are using, a foreign function might help. I had to do > this to do a convolution in my tambura synthesiser for exactly the same > reason https://github.com/olilarkin/Tambura/blob/master/bridgeIR.dsp > https://github.com/olilarkin/Tambura/blob/master/bridgeIR.h it would be > great if faust’s FIR didn’t bork like this oli > > On 19 Mar 2018, at 21:32, CrocoDuck o'Ducks <crocoduck.odu...@gmail.com> > wrote: Hi again! Thank you for all your tips! > > I suggest placing all of your coefficients into a large parallel signal > bank: coeffs = (b0, b1, b2, ..., b511); // FIR filter coefficients for > length 512 and then use par() etc. > > I tried both of these: process = fi.fir(coeffs); process = _ <: par(i, 512, > @(i) * ba.take(i + 1, coeffs)) :> _; Which, unfortunately, both suffer from > the same problem. Did I got the suggestion right? > > You can set unlimited time by adding -t 0 to your compile command. > > I am currently trying this. > > Interesting ! Do you have some code to show? Is is part of an official JULIA > ==> Faust project? > > No, it isn't an official project. I just design some filters using DSP.jl > then I try to generate Faust code that implements them. I just open a file > for writing and I fill it with Faust code. I guess I can cook a few minimal > examples to share, I cannot share my code right away as it is sort of > confidential. On Mon, 19 Mar, 2018 at 8:20 AM, Stéphane Letz <l...@grame.fr> > wrote: > > Le 18 mars 2018 à 23:06, CrocoDuck o'Ducks <crocoduck.odu...@gmail.com > a > écrit : Hi there! I currently have some Julia code producing 512 taps for an > FIR filter. Interesting ! Do you have some code to show? Is is part of an > official JULIA ==> Faust project? Stéphane > > ------------------------------------------------------------------------------ > Check out the vibrant tech community on one of the world's most engaging > tech sites, Slashdot.org! > http://sdm.link/slashdot_______________________________________________ > Faudiostream-users mailing list Faudiostream-users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/faudiostream-users > > ------------------------------------------------------------------------------ > Check out the vibrant tech community on one of the world's most engaging > tech sites, Slashdot.org! http://sdm.link/slashdot > _______________________________________________ Faudiostream-users mailing > list Faudiostream-users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/faudiostream-users > ------------------------------------------------------------------------------ > Check out the vibrant tech community on one of the world's most engaging > tech sites, Slashdot.org! > http://sdm.link/slashdot_______________________________________________ > Faudiostream-users mailing list Faudiostream-users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/faudiostream-users > > ------------------------------------------------------------------------------ > Check out the vibrant tech community on one of the world's most engaging > tech sites, Slashdot.org! http://sdm.link/slashdot > _______________________________________________ Faudiostream-users mailing > list Faudiostream-users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/faudiostream-users > > -- > Julius O. Smith III <j...@ccrma.stanford.edu> Professor of Music and, by > courtesy, Electrical Engineering CCRMA, Stanford University > http://ccrma.stanford.edu/~jos/ > ------------------------------------------------------------------------------ > Check out the vibrant tech community on one of the world's most engaging > tech sites, Slashdot.org! http://sdm.link/slashdot > _______________________________________________ Faudiostream-users mailing > list Faudiostream-users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/faudiostream-users > > > ------------------------------------------------------------------------------ > Check out the vibrant tech community on one of the world's most > engaging tech sites, Slashdot.org! http://sdm.link/slashdot > _______________________________________________ > Faudiostream-users mailing list > Faudiostream-users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/faudiostream-users > -- Julius O. Smith III <j...@ccrma.stanford.edu> Professor of Music and, by courtesy, Electrical Engineering CCRMA, Stanford University http://ccrma.stanford.edu/~jos/ ------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot _______________________________________________ Faudiostream-users mailing list Faudiostream-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/faudiostream-users