QUOTE(rutra80 @ Dec 18 2004, 01:03 AM)
QUOTE(Cerbie @ Dec 18 2004, 05:27 AM)
It will also be an ironic day when you can recommend a Geforce 7800 Ultra to a guy who is using his PC for mixing music

Yeah, so I think it's time for APU (Audio Processing Unit) engineers to at last get to work and implement such technologies in the audio chips of our sound-cards. It's not hard to notice that audio-acceleration technology development is far behind technologies connected with video and general processing. In 10 years CPUs switched from 32bits to 64bits, from 40MHz to 4000MHz, from 32kbyte caches to 2MB ones, got MMX, SSE, HT and other stuff. In 5 years GPUs got shaders, are more and more programmable, I bet that in few years GPUs will have real ray-tracking technologies implemented,
Not likely. Even hollywood has gone to using raster shortcuts. However, video cards are catching up quite fast.
QUOTE
not to mention about programmable encoding & decoding of compressed video which more or less is already available in the newest ATI & nVidia cards.
Fully available in NVidia, but requiring special support and there are still some kinks
QUOTE
And what do we have in APUs? Hardware mixing. Sometimes simple environment simulation technologies like EAX. Hardware decoding of stuff like MPEG or Dolby is still rare and very expensive,
Yes, but with quality differing like it does...eh.
QUOTE
hardware audio encoding is even more rare and expensive. One could say that all we got since 20 years is more speaker outputs, higher frequencies, and more bits. I should have a sound card with powerful programmable APU a long time ago, so all that encoding & decoding of MP3, OggVorbis, MPC, or OptimFROG wouldn't have to be the job of my CPU.
Unfortunately the engineers that matter when into doing games.
QUOTE
If audio-processing technology development were more brisky, you could even dream about ray-tracking-alike technologies in your sound-card (air-tracking?), so primitive stuff like EAX would be obsolete
Aside from use in games, isn't it?
QUOTE
...then you could even program the shape of trumpet, the strenght of blow, and your APU would compute the sound of trumpet

Instead of that I am going to have reverb performed by my Radeon

Very interesting but wrong way.
What would be equally nice would be for CPUs to have dedicated vector units, natively able to deal with 32- abd 64-bit floats, and natively manufacture 128-bit ones. A fully powered processor that did nothing but series of SIMD tasks on data. Or for NVidia and ATi to get into sound, and make it a commodity part of the GPU--integrate the shaders and generic processing to just be vector units with some other units off to the side that controled how the output was to be used.
The neat thing about using video cards is that the power is already there. It's merely a matter of unwrapping it and getting it to main RAM (something PCI-E should be a boon for). Also, you won't be doing 3d work near that complex at the time (at most, using Aero or Looking Glass for the desktop), so the power is just sitting there, waiting.
For those who previously mentioned CPUs being more powerful, here's a little, VERY high level, info on how it works:
A modern processor has pipelined units. ALU and FPU being the important ones for general tasks. The pipeline has stages, each stage being 1 clock cycle, and doing a portion of the work. A longer pipeline helps get the processor to higher speeds, though it does less work per clock cycle, and runs into power consumption issues (Prescott).
So, as an example, a Prescott Pentium 4 has a 31 stage ALU pipeline (arithmatic and logic--it does booleans and integers, basically), and an Athlon64 has 12 stages in that pipeline. So if you need to check the value of something, you may do several parts at once, using 3 or 4 of the stages, then at the end, use another few pipeline passes to put them together, then use one or two to test them (=, <, >, !=, etc.). Now this takes time, and is at the mercy of memory. Most of the CPU is made up of cache memory. If what it needs cannot be found in cache, it must go out to main memory, which is much slower. The longer the pipeline, the worse of a performance hit this is.
So, all the floating point must be balanced together. All the integer and boolean maths must be balanced together, even if what they need to do differs.
Well, you could put multiple cores on a CPU. Doing that. Hyperthreading helps a bit, too. But still, you've got one integer and one floating point math unit to do the work. In most tasks, any more would not net performance gains, since what you're most often waiting on are serial tasks, where one part must be completed to see what needs to be done next.
Now video cards are entirely different. They don't do much decision making. Shaders are changing that a little bit, but still not much. The vast majority of work requires very simple decision making, and whole tons of basic operations on large data sets. This means that those 170 or so million transistors of a new GPU can do real work, not all that programmed checking values and moving things around. Also, not having much to check, pipelines can be outrageously long, in the hundreds of cycles, to get higher speeds. For powering Word, a typical GPU would probably be comparable to a VIA C3. On the other hand, for doing high precision multiplication, division, addition, and exponential work on several large arrays of numbers, it would take a big iron machine, like a Power, to reach the kind of performance of a Radeon 9800.