Re: Audio Units and OpenCL?
Re: Audio Units and OpenCL?
- Subject: Re: Audio Units and OpenCL?
- From: philippe wicker <email@hidden>
- Date: Wed, 09 Sep 2009 18:56:18 +0200
Today the max number of cores is 8 on an Apple computer. 8 cores means
8 threads running at the same time because as far as I have
understood, one core can run only one thread. I remember having seen
Logic using 2 different thread for 2 different instances of the same
soft synth (about 2/3 years ago) so Logic seems to already try to use
several cores. We checked this by reading the pthread_self_id in the 2
instances Render methods and the 2 ids we got were different. Also
samplers plugin with disk streaming use at least 2 threads, 1 for the
sampler Render itself (the audio thread of the DAW), and a 2nd to
stream the samples from the disk.
I think that the difficulty in a plugin context is to meet a short -
and known - latency constraint when dispatching a job to several
threads. A solution is to pass the data to work on to some threads on
one Render and get back the result on next Render or even 2 Render
calls later, which gives a 1 or 2 buffers latency. To be sure that the
worker threads meet that kind of deadline they have to be time-
constrained and their scheduling parameters carefully tuned. My guess
is that it is probably a difficult task for a generic dispatching API
such as GCD. Maybe an ad-hoc "hand-made" delegation to a limited
number of worker threads would give better results?
On 9 sept. 09, at 17:42, Richard Dobson wrote:
So, is there anything in this much-hyped technology that is actually
a benefit to audio developers, to enable them to do what has not
been done before (like, use all "available" cores for audio
processing)?
If not, it is another nail in the coffin of the general-purpose
computer as an audio processor, and the industry will move even
further towards custom hardware in which they can implement whatever
parallel processing they need, and have full control over it.
Also, presumably an older d/c iMac with the Radeon1600 chipset
cannot run openCL code, so can it at least degrade gracefully to at
least build and run on such a machine?
On an 8-core Mac Pro, how many cores will we see Logic Pro using?
This all rather reinforces speculations I have made that in the
headlong rush to concurrent multi-core nirvana, audio will be left
behind, or simply ignored/underestimated as a relevant activity.
Richard Dobson
Markus Fritze wrote:
Ehm, you know that GCD is running at the main thread level? Which
can be blocked by UI operations, etc. That doesn't seem like a wise
choice for real-time processing. OpenCL also doesn't have a
threading mode, so you tasks will be shared among all the others
and your latency becomes unpredictable.
Markus
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Coreaudio-api mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Coreaudio-api mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden