Re: multithreaded mixer
Re: multithreaded mixer
- Subject: Re: multithreaded mixer
- From: Jeff Moore <email@hidden>
- Date: Wed, 4 Feb 2004 14:39:18 -0800
On Feb 4, 2004, at 1:56 PM, Stefan Werner wrote:
Hi,
On 04.02.2004, at 22:22, email@hidden wrote:
Also, let's not forget about the cost of constantly transitioning
between all these threads. This doesn't take a trivial amount of time,
especially since so much state (think about all the FPU and Altivec
registers that need to be saved on a G5) needs to be saved for each
transition. Depending on how you do things, you could easily wipe out
all your gains with managing the overhead.
In short, there's no proper way in which I could make my application
make better use of a dual G5? I put my own non-IOProc related code in
separate threads wherever possible, but the performance bottleneck are
clearly the one dozens of AUConverter and AUVarispeeds that I have
plugged into a Matrix Mixer.
Like I said in my email there are lots of ways to break up the
processing to better utilize processing resources. The right way is
going to depend on your capability for analyzing, decomposing and
reconfiguring your engine and the data dependancies therein. I outlined
some of the gotchas involved with managing the multiple threads that
would be involved.
That said, it seems to me that there is no reason to put an AUConverter
on the real-time path. All the things an AudioConverter does are not
controllable in real time anyway. You'd be best off offloading that
work to some other work thread, such as the one that is producing the
data from the disk or where ever it is coming from and caching it for
delivery on in your IO thread.
--
Jeff Moore
Core Audio
Apple
_______________________________________________
coreaudio-api mailing list | email@hidden
Help/Unsubscribe/Archives:
http://www.lists.apple.com/mailman/listinfo/coreaudio-api
Do not post admin requests to the list. They will be ignored.