Re: [LAD] Has anyone ever played a plugin in realtime ... [related to:] hard realtime performance synth

2010-02-08 Thread Joshua Boyd
On Sun, Feb 07, 2010 at 12:18:51AM +0100, Jens M Andreasen wrote:

snip example of sse assembly versus Cuda

 In which one of those two codepaths would you like to spend your spare
 time? Which one looks the most civilized? Just wondering ...

snip a bit more

 [OK... That might be enough CUDA advocacy for tonight? :-D]

The cuda stuff is impressive, and may well be the way of the future.
However, I don't think it is generally right for linux audio until I can
write cuda code (or a similar language) and have it run on Nvidia cards, 
ATI cards, at least one card using open source drivers, and plain CPUs
using SSE (and/or threading).

It seems that any quarter now, OpenCL may be close to meeting the
qualifications I set (use with Nvidia, ATI, free drivers, and CPU only),
however, I don't believe that the OpenCL language is as nice or easy to
use as Cuda.  Is there any work on an open source clone of Cuda?

Obviously any individual programmer can do what they want, but I believe
that as a community, GPUs are not yet ready for us to be using them, not
strictly for technical reasons, but primarily for freedom and
interoperability reasons.  I am really eager to see this change though.
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] Has anyone ever played a plugin in realtime ... [related to:] hard realtime performance synth

2010-02-08 Thread Emanuel Rumpf
2010/2/8 Joshua Boyd jdb...@jdboyd.net:

 However, I don't think it is generally right for linux audio until I can
 write cuda code (or a similar language) and have it run on Nvidia cards,
 ATI cards, at least one card using open source drivers, and plain CPUs
 using SSE (and/or threading).

 It seems that any quarter now, OpenCL may be close to meeting the
 qualifications I set (use with Nvidia, ATI, free drivers, and CPU only),


Actually OpenCL seems to already be supported, (in new hardware only ?),
by the large graphic players:
http://www.nvidia.com/object/cuda_opencl.html  (there's a lot of docu
here too !)
http://developer.amd.com/gpu/atistreamsdk/pages/default.aspx
http://www.khronos.org/opencl/

There's also the CT Technology from Intel (aquired from RapidMind),
which is claimed to be easier to code and less hardware-dependant than OpenCL.
http://software.intel.com/en-us/data-parallel/
http://software.intel.com/sites/products/collateral/hpc/ct/ct_newsletter1109.html

 however, I don't believe that the OpenCL language is as nice or easy to
 use as Cuda.  Is there any work on an open source clone of Cuda?

A link to a short Intro. The code looks acceptable at a first glance:
http://ati.amd.com/technology/streamcomputing/intro_opencl.html

I still somehow wonder, how cheap low MHz Chips can outperform my
GHz PC system. The answer seems to be parallelism of computations,
which the GPUs (or DSPs) support better than CPUs.
This also means, that faster CPUs won't necessarily bring
the effect we are waiting for.
(To play many software effects/instruments in an acceptable time.)

Anyway. If the PCs can't do it, someone has to create a new
system, or extend the PC anyway to make it capable.


-- 
E.R.
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] Has anyone ever played a plugin in realtime ... [related to:] hard realtime performance synth

2010-02-08 Thread Paul Davis
On Mon, Feb 8, 2010 at 4:01 PM, Emanuel Rumpf xb...@web.de wrote:

 I still somehow wonder, how cheap low MHz Chips can outperform my
 GHz PC system. The answer seems to be parallelism of computations,
 which the GPUs (or DSPs) support better than CPUs.
 This also means, that faster CPUs won't necessarily bring
 the effect we are waiting for.
 (To play many software effects/instruments in an acceptable time.)

GPUs do not run a general purpose OS. CPUs do (at least if you run
Linux, Windows, BSD, OSX, Solaris etc). HUGE difference. This plays a
major role. The overall architecture of a GPU is very, very different
from a CPU, making the code that runs on them more deterministic. GPUs
also do not service interrupts from every device on your system.

 Anyway. If the PCs can't do it, someone has to create a new
 system, or extend the PC anyway to make it capable.

not all PCs can do it. but its simply not true that PCs can't do it.
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] Has anyone ever played a plugin in realtime ... [related to:] hard realtime performance synth

2010-02-08 Thread Joshua Boyd
On Mon, Feb 08, 2010 at 10:01:03PM +0100, Emanuel Rumpf wrote:

 Actually OpenCL seems to already be supported, (in new hardware only ?),
 by the large graphic players:
 http://www.nvidia.com/object/cuda_opencl.html  (there's a lot of docu
 here too !)
 http://developer.amd.com/gpu/atistreamsdk/pages/default.aspx
 http://www.khronos.org/opencl/

I am aware of Nvidia and ATI binary drivers supporting OpenCL.  What I
do not see is an ability to run this using the Nouvou, the RadeonHD xorg
driver, the intel xorg driver, or as SSE optimized software only.

If OpenCL DSP code would run on my desktop using CPUs only, faster than
a reasonable C implementation using primitives would run, then I'd
suggest it is ready for people to start using without holding out for
open source driver support.  I don't think that we are close enough to
say that we will be there in 6-12 months yet though.  If I am mistaken
about the state of the Khronos reference implementation or the clang
implementation, I'd love to see a demo prove me wrong.
 
 There's also the CT Technology from Intel (aquired from RapidMind),
 which is claimed to be easier to code and less hardware-dependant than OpenCL.
 http://software.intel.com/en-us/data-parallel/
 http://software.intel.com/sites/products/collateral/hpc/ct/ct_newsletter1109.html

I am passingly aware of them, but as long as there is not an open
language specification, and an open implementation, I don't think they
are a real answer either.
 
  however, I don't believe that the OpenCL language is as nice or easy to
  use as Cuda. ?Is there any work on an open source clone of Cuda?
 
 A link to a short Intro. The code looks acceptable at a first glance:
 http://ati.amd.com/technology/streamcomputing/intro_opencl.html

Just because I don't like it as well does not mean I won't accept it as
a valid choice.

However, the examples there still look a lot more complicated that the
cuda examples.  The page you posts included a fairly minimal OpenCL
example that is close to 40 lines long without showing the actual source
code for the actual OpenCL function to execute on the card.

_global__ void inc_gpu(int *a, int N)
{
  int idx = blockIdx.x * blockDim.x + threadIdx.x;
  if (idx  N)
a[idx] = a[idx] + 1;
} }
int main()
{ 
  float *a;
  dim3 dimBlock (blocksize);
  dim3 dimGrid( ceil( N / (float)blocksize) );
  cudaMalloc((void **) a, N);
  cudaMemcpy(a, someLocalSource, N*sizeof(float), cudaMemcpyHostToDevice);
  inc_gpudimGrid, dimBlock(a, N);
  cudaFree(a);
}

The __global__ says that it will be called from the host but run on the
device.  Calling the function uses a modified call syntax to setup the
arrangement of hardware resources that will be used by the call, but the
number of units to use, and the block size to carve the data by. dim3 is
a cuda defined datatype.

Still, if OpenCL shows up in Mesa, and can at a minimum run on the CPU
faster than a basic C implementation, then I would certainly choose it
over Cuda for open-ness.
 
 I still somehow wonder, how cheap low MHz Chips can outperform my
 GHz PC system. The answer seems to be parallelism of computations,
 which the GPUs (or DSPs) support better than CPUs.
 This also means, that faster CPUs won't necessarily bring
 the effect we are waiting for.
 (To play many software effects/instruments in an acceptable time.)

Well, I bet a lot of software isn't wringing as much performance for
your PC as it could.  When it comes to music though, exactly what low
mhz chips are beating a 2ghz Core 2 Duo or equivelent AMD?  Also, how
does the cost of said low mhz device compare to the Core 2 Duo?

However, even in PCs, the trend is more cores, and either programmers
need to get better, or else we need better tools.  Now, I certainly plan
to become a better programmer, but I still want better tools, and I
think it is unfair to expect everyone to get better.
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] Has anyone ever played a plugin in realtime ... [related to:] hard realtime performance synth

2010-02-08 Thread Jens M Andreasen

On Mon, 2010-02-08 at 19:02 -0500, Joshua Boyd wrote:

 If OpenCL DSP code would run on my desktop using CPUs only, faster than
 a reasonable C implementation ...

You are smoking some illegal substances tonight?

___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev