I remember a while back there were several P4 optimised projects
out; a version of Pd, some externals. Is that stuff still valid, active, worthwhile?
David
. . Please note that my e-mail address is changing. . Either use this address, or check my website for the most recent. . . Music wants to be free . http://mentalfloss.ca/sintheta/ .
I once compiled pd with P4 optimizations for Windows. I could do so again in case somebody wants it. It gives slightly better performance and fixes these 'CPU jumps up after a while' problems. Some of my objects / libraries still come with an extra DLL compiled with P4 optimizations (maxlib, PeRColate and some others).
Olaf
David McCallum schrieb:
I remember a while back there were several P4 optimised projects
out; a version of Pd, some externals. Is that stuff still valid, active, worthwhile?
David
. . Please note that my e-mail address is changing. . Either use this address, or check my website for the most recent. . . Music wants to be free . http://mentalfloss.ca/sintheta/ .
PD-list mailing list PD-list@iem.kug.ac.at http://iem.kug.ac.at/cgi-bin/mailman/listinfo/pd-list
i get these CPU jumps in a big way under Linux and Win both. i've been told it has a lot to do with signals which are very near zero, but not quite. johannes taelman told me the technical name for this, but i have forgotten it... "denormal numbers", maybe ....
anyway, if there are any patches which can be applied to a Linux compile of PD which are bug fixes for this, can somebody let me know? otherwise, how do people usually handle this. thomas musil says he just pumps a very small signal that is over this threshold through the whole system. could you also "clip~" the signal streams, except to clip them on the low end?
just musings...
thx, d.
Quoting Olaf Matthes olaf.matthes@gmx.de:
I once compiled pd with P4 optimizations for Windows. I could do so again in case somebody wants it. It gives slightly better performance and fixes these 'CPU jumps up after a while' problems. Some of my objects / libraries still come with an extra DLL compiled with P4 optimizations (maxlib, PeRColate and some others).
Olaf
David McCallum schrieb:
I remember a while back there were several P4 optimised projects
out; a version of Pd, some externals. Is that stuff still valid, active, worthwhile?
David
. . Please note that my e-mail address is changing. . Either use this address, or check my website for the most recent. . . Music wants to be free . http://mentalfloss.ca/sintheta/ .
PD-list mailing list PD-list@iem.kug.ac.at http://iem.kug.ac.at/cgi-bin/mailman/listinfo/pd-list
PD-list mailing list PD-list@iem.kug.ac.at http://iem.kug.ac.at/cgi-bin/mailman/listinfo/pd-list
derek@x-i.net schrieb:
i get these CPU jumps in a big way under Linux and Win both. i've been told it has a lot to do with signals which are very near zero, but not quite. johannes taelman told me the technical name for this, but i have forgotten it... "denormal numbers", maybe ....
That's right. The CPU switches to an 'extra accurate and very slow' (i.e. foating point) mode when it is asked to calculate very small values. A fix in terms of changing the source code it to add the following:
#define undenormalise(sample) if(((*(unsigned int*)&sample)&0x7f800000)==0) sample=0.0
and add
undenormalise(myfloatvalue);
wherever a calculation might have produced very small values (reüplaye 'myfloatvalue' with the variable that stores the float). There are many many places in the Pd sources (and in every external) where this happens. My freeverb~ (and also cverb~) just wouldn't work work without his since reverb tails tend to get weaker and weaker but (due to unaccurate calculation) probably never really get 0.0.
anyway, if there are any patches which can be applied to a Linux compile of PD which are bug fixes for this, can somebody let me know? otherwise, how do people usually handle this.
I once realised that this problem (on Win) is reduced when I compile with the intel compiler and optimisation for P4. Don't know if this would work for Linux as well. The compiler can be downloaded from Intel and has a 30-day trial time, maybe someone can give it a try. 'Fresh' P4-optimised binaries for Win can be downloaded from http://www.akustische-kunst.org/puredata/experimental/pd0.36-win-P4.zip (based on pd0.36-0 since pd0.37-test4 does not work with my Motu 828). Just unzip the files into Pd's bin directory.
thomas musil says he just pumps a very small signal that is over this threshold through the whole system. could you also "clip~" the signal streams, except to clip them on the low end?
The trick is to avoid signals of getting below a certain limit. The code above does this by setting them to 0.0, adding a signal does it by always keeping the signals above this threshold.
Olaf
Hi Derek, list,
derek@x-i.net schrieb:
has a lot to do with signals which are very near zero, but not quite. johannes taelman told me the technical name for this, but i have forgotten it... "denormal numbers", maybe ....
Yup, that was what I was talking about at pdStaminee. I don't think it explains 100% of the cpu load variations. CPU cache management decisions may be another cause.
Here's an overview of denormal handling: http://www.musicdsp.org/files/denormal.pdf
and http://phonophunk.phreakin.com/p4denormal.html
mvg, j#|@
I just always add a noise~ to critical sections. I think jMax actually detects these denormalized values in some way. This might probably help to find the missing problematic spots and handle it inplace with the PD_BADFLOAT macro.
Guenter
On Sat, 24 May 2003, Johannes Taelman wrote:
Hi Derek, list,
derek@x-i.net schrieb:
has a lot to do with signals which are very near zero, but not quite. johannes taelman told me the technical name for this, but i have forgotten it... "denormal numbers", maybe ....
Yup, that was what I was talking about at pdStaminee. I don't think it explains 100% of the cpu load variations. CPU cache management decisions may be another cause.
Here's an overview of denormal handling: http://www.musicdsp.org/files/denormal.pdf
and http://phonophunk.phreakin.com/p4denormal.html
mvg, j#|@
PD-list mailing list PD-list@iem.kug.ac.at http://iem.kug.ac.at/cgi-bin/mailman/listinfo/pd-list
Johannes, Olaf, Guenter....
thanks for these explanations. according to the very informative docs that Johannes sent, Intel doesn't consider this denormal bug to be their problem, and expect that software manufacturers will code around it.
also, looking at Olaf's patches, they make sense, but i lack the programming know-how to put them in the "critical spots".
so my question: could we "officially" incorperate these patches to fix the denormal problem into the PD release? such patches would have no detrimental effect on other processors/operating systems, right? perhaps they would even improve performance of other processors, since denormal numbers must eat CPU time of any machine to calculate, not just P4s.
best, derek
Johannes Taelman wrote:
Here's an overview of denormal handling: http://www.musicdsp.org/files/denormal.pdf
anyone experience (and then solve) a prob with compiling pd under debian unstable.
keep getting (with gcc 3.3)
dereferencing type-punned pointer will break strict-aliasing rules.
taking away -Wall lets it compile, but makes me wonder.
-august.
anyone experience (and then solve) a prob with compiling pd under debian unstable. keep getting (with gcc 3.3) dereferencing type-punned pointer will break strict-aliasing rules. taking away -Wall lets it compile, but makes me wonder.
i suppose they just added some more compiler warnings in the version upgrade from 3.2.3 to 3.3. i got the same problem with suse 8.2.
but i even had some trouble to compile the linux kernel... so i downdated to gcc 3.2.3 ... i'll wait for the next update...
Tim mailto:TimBlechmann@gmx.net ICQ: 96771783 http://www.nyds-exp-discogs.tk -- The only people for me are the mad ones, the ones who are mad to live, mad to talk, mad to be saved, desirous of everything at the same time, the ones who never yawn or say a commonplace thing, but burn, burn, burn, like fabulous yellow roman candles exploding like spiders across the stars and in the middle you see the blue centerlight pop and everybody goes "Awww!" Jack Kerouac
On Sunday 25 May 2003 19:47, Tim Blechmann wrote:
but i even had some trouble to compile the linux kernel... so i downdated to gcc 3.2.3 ... i'll wait for the next update...
on #debian : /msg apt 2.4bug
apt < 2.4bug
i guess 2.4bug is look at http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=194287 as it says there, gcc-3.3 cannot compile 2.4 kernels, apt-get install gcc-3.2 or gcc-2.95 (preferred) then edit the top level Makefile before you make dep with: perl -pi.bak -e 's/gcc/gcc-2.95/' Makefile
otherwise, if you want to compile something with a special gcc, export CC=gcc-2.95 works well
cheers, paul.
hi all,
i compiled pd and several externals with intel's c++ compiler (icc). you can optimize the targets using the pentium4 instruction sets (sse,sse2) ... and icc is compatible with the gnu compiler. in general you just have to edit the makefiles...
icc is no open source compiler, but there is a free, unsupported version for linux that's easy got get...
if someone is interested in making a benchmark, i can send you an edited makefile or a binary...
and maybe someone can offer some webspace that i can put my optimized binaries online...
Tim mailto:TimBlechmann@gmx.net ICQ: 96771783 http://www.nyds-exp-discogs.tk -- The only people for me are the mad ones, the ones who are mad to live, mad to talk, mad to be saved, desirous of everything at the same time, the ones who never yawn or say a commonplace thing, but burn, burn, burn, like fabulous yellow roman candles exploding like spiders across the stars and in the middle you see the blue centerlight pop and everybody goes "Awww!" Jack Kerouac
Zitiere Tim Blechmann TimBlechmann@gmx.net:
and maybe someone can offer some webspace that i can put my optimized binaries online...
hi, you can put it onto the IEM-ftp server. there should be an incoming-folder that will allow you to put files on our server with an anonymous-access. i will then move it into ftp://iem.at/pd/LINUX/ by hand. Maybe we will find a better solution in the future (authenticated accounts)
mfg.ad.sr IOhannes
you can put it onto the IEM-ftp server. there should be an incoming-folder that will allow you to put files on our server with an anonymous-access. i will then move it into ftp://iem.at/pd/LINUX/ by hand.
i'll upload my binaries tomorrow...
Maybe we will find a better solution in the future (authenticated accounts)
if you could create one, it would be nice...
Tim mailto:TimBlechmann@gmx.net ICQ: 96771783 http://www.nyds-exp-discogs.tk -- The only people for me are the mad ones, the ones who are mad to live, mad to talk, mad to be saved, desirous of everything at the same time, the ones who never yawn or say a commonplace thing, but burn, burn, burn, like fabulous yellow roman candles exploding like spiders across the stars and in the middle you see the blue centerlight pop and everybody goes "Awww!" Jack Kerouac
there should be an incoming-folder that will allow you to put files on our server with an anonymous-access.
i've uploaded my binaries to the incoming folder... i haven't uploaded any externals, yet... i'll have to check which ones are compiled with icc...
Tim mailto:TimBlechmann@gmx.net ICQ: 96771783 http://www.nyds-exp-discogs.tk -- The only people for me are the mad ones, the ones who are mad to live, mad to talk, mad to be saved, desirous of everything at the same time, the ones who never yawn or say a commonplace thing, but burn, burn, burn, like fabulous yellow roman candles exploding like spiders across the stars and in the middle you see the blue centerlight pop and everybody goes "Awww!" Jack Kerouac