On Sat, 27 May 2006, Miller Puckette wrote:
I used to think the same thing, that floating-point computation would never be feasible on video... but Mathieu has demonstrated that, if you schedule the computations carefully, you can do blindingly fast video crunching in floating-point.
I don't know where I demonstrated that, cause I never implemented SSE1 support in GridFlow, and I don't know what else would qualify as "blindingly". Even though GridFlow supports float images since jan.2003, I didn't use the feature until this year, when I started making video FFTW. If you want an example of something blindingly fast, look at FFTW (which uses both SSE1 and great algorithms).
The gap between the speed of floating-point and integer computations has been shrinking over the years, but in the last 10 years it has also expanded and shrunk back and re-expanded and... it's difficult to know where things are heading. I'm sticking with integers as much as I can, with small integers whenever it's worth it, and with floats when I have no other option (e.g. FFTW).
much more storage space, so you end up using a lot of memory bandwidth (a read or write to external memory costs the same as tens or hundreds of CPU cycles these days).
It's difficult to really measure it, because when such a read happens, a whole chunk is read at once, some of which can be useful later on, if the cache keeps it long enough, etc. And then, there are often a dozen instructions running at once in various stages of completion, each taking a dozen ticks, all documented as single-tick instructions because engineers figure a dozen divided by a dozen is one. Analysis of computation time really can't be done the same as it was being done in 1990.
But anyway, I'll probably make it conditionally compilable in other formats so we can just benchmark it and find out for sure.
Yes, I approve that.
_ _ __ ___ _____ ________ _____________ _____________________ ... | Mathieu Bouchard - tél:+1.514.383.3801 - http://artengine.ca/matju | Freelance Digital Arts Engineer, Montréal QC Canada