Diva and GPU processing
-
- KVRist
- 70 posts since 11 Jan, 2012
Hello Urs,
Great synth, this Diva. I've been playing with the demo and am saving up the funds to buy it. Have you considered offloading the processing required by Diva to the GPU? My ATI 6990 graphics card can perform about 800 million floating point ops/sec. vs. my Intel Core i7 which can only do around 18. Even the standard graphics option for a Mac Pro, an ATI 5770, which is not a very powerful graphics card, can do around 212.
Others have written VST proof of concepts that utilize GPU: http://www.kvraudio.com/forum/viewtopic.php?t=153073
I would be very interested to see if we could harness the power of our GPUs to run multiple instances of Diva in Divine mode with 64 voice polyphony!
Thanks for considering this feature request.
Great synth, this Diva. I've been playing with the demo and am saving up the funds to buy it. Have you considered offloading the processing required by Diva to the GPU? My ATI 6990 graphics card can perform about 800 million floating point ops/sec. vs. my Intel Core i7 which can only do around 18. Even the standard graphics option for a Mac Pro, an ATI 5770, which is not a very powerful graphics card, can do around 212.
Others have written VST proof of concepts that utilize GPU: http://www.kvraudio.com/forum/viewtopic.php?t=153073
I would be very interested to see if we could harness the power of our GPUs to run multiple instances of Diva in Divine mode with 64 voice polyphony!
Thanks for considering this feature request.
- u-he
- 30222 posts since 8 Aug, 2002 from Berlin
-
- KVRist
- Topic Starter
- 70 posts since 11 Jan, 2012
My MFLOP/s numbers are incorrect - I based them on Bitcoin mining million hashes per second (MHASH/s). The ATI 5770 in a Mac Pro actually does 1.35 teraflops, but only 212 MHASH/s.
In any case, it is still an order of magnitude faster than a CPU at floating point processing.
Thanks!
In any case, it is still an order of magnitude faster than a CPU at floating point processing.
Thanks!
-
- KVRAF
- 10815 posts since 26 Nov, 2004 from UK
the GPU powered reverb i tested was interesting but if diva could offload some workload onto the GPU that would be quite impressing!
i'm sure its no simple task though! & low latency may be even harder or even just not possible
the idea of a GFX card acting as a high powered DSP card has always appealed to me! but as of yet has not really taken off at all!
one day i hope to be interested in a big boy GFX card! till then i will settle with my Nvidia GT9500GT lol
Subz
i'm sure its no simple task though! & low latency may be even harder or even just not possible
the idea of a GFX card acting as a high powered DSP card has always appealed to me! but as of yet has not really taken off at all!
one day i hope to be interested in a big boy GFX card! till then i will settle with my Nvidia GT9500GT lol
Subz
- KVRAF
- 24447 posts since 7 Jan, 2009 from Croatia
Indeed, latency is a bit of a problem with GPGPU... But Urs is a magician 
- KVRAF
- 9593 posts since 17 Sep, 2002 from Gothenburg Sweden
That is because even though they seem insanely fast on paper they are that just on a specific set of problems. Namely massively parallel ones and synths aren't that i'm afraid. (EDIT: Or maybe they are in a way i haven't thought of yet.)djsubject wrote: the idea of a GFX card acting as a high powered DSP card has always appealed to me! but as of yet has not really taken off at all!
Now i don't know of the inner workings of Diva and i'm sure Urs knows much more about this stuff than me so all is not lost. Just don't expect miracles (like for example several hundreds of Diva voices on divine quality). The filter "zero delay predict the future" thingie looks like it could be a good candidate for GPU processing.
- u-he
- 30222 posts since 8 Aug, 2002 from Berlin
That's exactly why we were thinking of it. However, we've tuned the prediction so that by far most of the times it hits at first attempt with 4-way parallel processing (SSE). The few oaccasions where we can't meet it at all are the problem (3-10 iterations), and in this I'm not sure if e.g. 1000x parallelism would help much.jupiter8 wrote:The filter "zero delay predict the future" thingie looks like it could be a good candidate for GPU processing.
-
- Pick Me Pick me!
- 10251 posts since 12 Mar, 2002 from a state of confusion
Nonsense.. that is what UAD was.djsubject wrote:the idea of a GFX card acting as a high powered DSP card has always appealed to me! but as of yet has not really taken off at all!
What we might want is a slightly-less proprietary standard that will work on a spread of videocards. Not just the one (singular) they hand picked.
Would be super if Steiny made a powered VST sdk that used a series of ATI or Nvidia cards (or both)
I suspect the largest issue is the sdk would have to accomdate a lot of different card designs ?? so they would have to certify specific cards.. that might get messy and tedious.
- KVRAF
- 9593 posts since 17 Sep, 2002 from Gothenburg Sweden
Fine,i had a sinking feeling i just had a major case of the "talkoutofmyassitis" and were just about to have it delivered to me on a silver plate.Urs wrote:That's exactly why we were thinking of it.jupiter8 wrote:The filter "zero delay predict the future" thingie looks like it could be a good candidate for GPU processing.
I have this vague idea you could do parallel processing by delaying it one sample IE one thread (or more) doing oscillator(s) then have one thread one sample behind doing the filtering and so on. Haven't thought it thru though if that's possible or if that's a dead end for whatever reason.
-
- KVRAF
- 16809 posts since 13 Oct, 2009
I'm pretty sure that UAD cards are not a video card. They are an external DSP card and there have been a number of these. IIRC, they were a lot more popular before CPUs were powerful. Korg had their PCI Oaysis card for a while, TC had/has Powecore, and even the current EMU pice card has on board DSP to run effects.There have also been a few firewire boxes. Creamware also had similar solutions that were used for synthesizers.VitaminD wrote:Nonsense.. that is what UAD was.djsubject wrote:the idea of a GFX card acting as a high powered DSP card has always appealed to me! but as of yet has not really taken off at all!
What we might want is a slightly-less proprietary standard that will work on a spread of videocards. Not just the one (singular) they hand picked.
Would be super if Steiny made a powered VST sdk that used a series of ATI or Nvidia cards (or both)
I suspect the largest issue is the sdk would have to accomdate a lot of different card designs ?? so they would have to certify specific cards.. that might get messy and tedious.
I'm not an expert, but I've done some GPGPU work with Cuda (not music) and the latency is no joke. GPGPU works best when you can give the GPU a lot to do before you want the results back.
There are DSP pcie cards available, whether it's worth the effort or not is a different story.
It's more than just an SDK, each DSP family is a different architecture like x86. I'm not sure that there's a good business case for this sort of generic open DSP standard in the consumer market. What would Steinberg gain from it?
- KVRAF
- 1617 posts since 11 Dec, 2008 from Minneapolis
There is openCL, which is like nVidia's CUDA in the sense that it's been developed to address problems that parallelize well onto GPU-ish hardware. As you say the different capabilities of hardware complicate things, though. This turns out to be pretty problematic for novel uses. Outside of CUDA incentives to design GPU architectures that do much more than the standard graphics stuff are pretty infrequent. Earlier in the diagram Intel and others are doing more promising development (IMO) with streamlined hardware extensions like SSE.VitaminD wrote: What we might want is a slightly-less proprietary standard that will work on a spread of videocards.
There's a thread of very preliminary, unproven conjecture about hardware manufacturers reorganizing the typical hardware fabrication pipeline to something more dynamic, sort of a modular design of more general purpose processors. Similar things have failed in the past but I do think it's promising. GPUs could probably be seen as a rare success here, although they've been around long enough to sort of outdate the current incarnation of custom processor design futurisms.
The hypothetical would be, an outfit like Universal Audio might realistically be able to specify something like a version of an Intel CPU but with a lot of extra circuitry that's useful for DSP tasks. Maybe another way to think would be multi-core but with a hybrid nature - a lot of bad-ass, less general purpose cores. Ultimately that's an unsure and, for the hardware industry, exceptionally long term prospect, though. A good research problem but not necessarily a good business strategy.
- KVRAF
- 1617 posts since 11 Dec, 2008 from Minneapolis
I think concurrency is the meta-problem for any multi-threading. Just a knee-jerk impression, but this sounds to me like it would require inter-thread concurrency in a way that just isn't plausible?jupiter8 wrote: I have this vague idea you could do parallel processing by delaying it one sample IE one thread (or more) doing oscillator(s) then have one thread one sample behind doing the filtering and so on. Haven't thought it thru though if that's possible or if that's a dead end for whatever reason.
- KVRAF
- 9593 posts since 17 Sep, 2002 from Gothenburg Sweden
Haven't thought about it much but i'm thinking some sort of producer/consumer queue. Maybe there's pitfalls i haven't thought of (on second though i'm positive there are). I think you would get at least a decent level of concurrency even though not a "perfect" one.xh3rv wrote:I think concurrency is the meta-problem for any multi-threading. Just a knee-jerk impression, but this sounds to me like it would require inter-thread concurrency in a way that just isn't plausible?jupiter8 wrote: I have this vague idea you could do parallel processing by delaying it one sample IE one thread (or more) doing oscillator(s) then have one thread one sample behind doing the filtering and so on. Haven't thought it thru though if that's possible or if that's a dead end for whatever reason.
-
- Pick Me Pick me!
- 10251 posts since 12 Mar, 2002 from a state of confusion
They used a Chromatic Research MPACT! cardghettosynth wrote:I'm pretty sure that UAD cards are not a video card. They are an external DSP card and there have been a number of these.VitaminD wrote:Nonsense.. that is what UAD was.djsubject wrote:the idea of a GFX card acting as a high powered DSP card has always appealed to me! but as of yet has not really taken off at all!
What we might want is a slightly-less proprietary standard that will work on a spread of videocards. Not just the one (singular) they hand picked.
Would be super if Steiny made a powered VST sdk that used a series of ATI or Nvidia cards (or both)
I suspect the largest issue is the sdk would have to accomdate a lot of different card designs ?? so they would have to certify specific cards.. that might get messy and tedious.
It was primarily used to as a DVD Accelerator/MPEG decoder but seems it also had the ability to output VGA (terribly I believe)... which is why I suspect most just used it for DVD/MPEG duties.
-
- KVRAF
- 16809 posts since 13 Oct, 2009
I didn't realize that they used an off the shelf consumer focused card, but, it's not a GPU in the modern sense, it is, in essence, a a DSP coprocessor that was designed for a slightly different purpose. Without knowing the architecture, it's hard to say what issues UAD faced. However, given that there has been significant interest in this for some time, I think that it's reasonable to conclude that they did not face the limitations of modern GPUs.VitaminD wrote:They used a Chromatic Research MPACT! cardghettosynth wrote:
I'm pretty sure that UAD cards are not a video card. They are an external DSP card and there have been a number of these.
It was primarily used to as a DVD Accelerator/MPEG decoder but seems it also had the ability to output VGA (terribly I believe)... which is why I suspect most just used it for DVD/MPEG duties.
From wikipedia:
It is the architecture that matters.A media processor is a microprocessor-based system-on-a-chip which is designed to deal with digital streaming data in real-time (e.g. display refresh) rates. These devices can also be considered a class of digital signal processors (DSPs).
http://www.steve-lacey.com/2006/05/audio_accelerat
Here's some discussion about some of the limitations.What most people don't realize is that in the early days on Direct3D many of the 3D accelerators (or sometimes "decelerators"1) where in fact very general purpose DSPs. At that point in time (mid-1995) many of the hardware guys were very surprised at the rapid mindshare growth of consumer 3D hardware. We're talking people like Evans and Sutherland, SGI, etc…
http://www-sop.inria.fr/reves/projects/GPUAudio/
BTW: Whatever happend to BionicFX? NAMM 2005 came and went!
People have been talking about this for a long time. Here's a link for someone's jack driver for the GPU
http://www.zamaudio.com/?p=380
