GPU (CUDA CORES) FOR DSP processing?

Regardless of whether a video card engine is appropriate for VST processing I’m surprised that Steinberg hasn’t created a VST/VSTi acceleration pci card. I don’t mean a locked down system like UAD or Protools HDX, but simply a card that is designed to effciently off load VST tasks to a separate processor while running Cubase. I know computers are getting faster and faster and performance is certainly less of an issue than it used to be, but I can bring my quad core to its knees pretty quickly with some guitar simulation, a drum plugin and some dynamics effects. Yet I can play back 70 plus tracks of straight audio so it isn’t like disk performance is an issue. It is all about having the processing speed. Of course you can freeze tracks and convert to audio, but keeping your VST’s active all the time would be nice.

I wonder is Steinberg has ever considered such a pci card? A video card manufacturer may even be a good place to start for designing such a device considering their experience with pci pipelines. I don’t know anything about programming at that level, but certainly it must be possible?

Free up the main processor from the mobo! Put extra processors onto a PCIe card, add as many cards as you like and the mobo and OS makes them look like extra cores! E.g. variable core processor at your fingertips which works for any software not just VST/AU/AAX etc. Now that’d be cool.

Mike.

You mean like the math processors back in the days, which without you couldn´t use CAD programs for example.

Generally it’s frequency that dictates the speed of audio processing ,I normally find my i7 3770 in my iMac is mainly (70%) idle but struggling to keep up with 30 odd plugins (mainly amp sims) having some kind of acceleration in an external device in a mass market way would be a great way to take the industry.

Maybe a new range of Audio Interfaces with a whole range of DSP effects, from compressors to a nice transparent limiter for your main stereo output bus.
The current line of UR interfaces are a very good start I think and I might well order one but I feel they could go much much further in the future.
I know you can find hardware that does this stuff but it’s time it was brought out as a must have for the bedroom musician.

Cuda cores could really help with rendering at least.
I have hundreds of them…but no one ever wants to use them lol

…which alot of us are really, like it or not :stuck_out_tongue:

*awaits the, ’ :angry: how dare you, don’t you know i’m a musician by trade!’ comment.

CUDA is the way to go.
When did “convolution” went bad? :sunglasses:

That is best way to capture an emulation of a hardware to make a real simulation.
Often more detailed then any DSP programming.


Can I use my graphic card that is free instead invest €$£ money on UAD like UAD-2 card?
Yes exactly the point with CUDA.

Will CUDA hog my CPU?
No zero load on CPU.


Why do so less products offer IR except for “Nebula” and Reverbs plugins that type of simulation of hardware example 1176, SSL Buss Compressor and so on?
Because it takes a lot of CPU resources to simulate.


Does that mean it sound bad? No its great, its the future.

So what has that to do with CUDA and the NVIDIA graphic-card?
CUDA let you direct all processing needed to run example “sample convolution of a 1176” to use the graphic cards GPU.


How fast is GPU VS CPU?Extremely powerful and fast especially on making calculations.



Best Regards
Freddie

I think GPU (with 1000 + cuda cores) would be awesome , sub processing system, I wish Steinberg / Yamaha can capitalize on that …

I think CPU manufacturers did exactly that in the 70s, 80s, and probably early 90s, but stopped sometime afterwards. They sold PPUs to speed things up, and that stopped when bus speeds couldn’t keep up.

Todays bus speeds hadn’t been a issue. PCI Express bandwidth is enormous. :wink:
http://www.tested.com/tech/457440-theoretical-vs-actual-bandwidth-pci-express-and-thunderbolt/


Best Regards
Freddie

Care to ellaborate on that? Just curious.

hey guys, I’m a Cubase user, I have a i5-3GHz quad core, work with SSD drive and 8GB DDR RAM;
I actually have a NVIDIA video card… I do not understand though, what CUDA is, and how that could be implemented into my projects (or even tested).

my question is: I use Cubase 7.0.6, for quite CPU-intensive projects… (as probably a lot of users here :smiley:)
I try not to do too much processing on busses… but it’s really necessary to get that full power going on, if you know what I mean. I use iZotope (Alloy2, Ozone5 and Nectar) Slate Digital (all, except trigger, and FG-X I bypass because of aforementioned problems :wink:) and for the rest all Steinberg Synths (which I LOVE) and plugins, for the rest almost nothing else, and try to stick to 64bit- VST3 plugs/Synths.

can anyone tell me how to active my GPU to help my CPU when realtime processing my projects?

Probably the biggest worry with GPU-enhanced anything is with how imprecise the cores are.
There are a lot of CUDA cores on an nVidia GPU, which means a lot of power, but they are manufactured with fairly high tolerances. The end result is that you will more often than not get a non-deterministic result for any given floating point calculation, and this lack of precision in consumer GPUs is why video game AI path-finding is still done on the CPU and why decent professional workstation GPUs cost thousands.

Graphically demanding entertainment software doesn’t need precision, just power. It’s easy to forgive some inverted colors on a texture or a polygon with slightly wonky coordinates for the few milliseconds they appear and are later re-drawn with fewer noticeable errors, but it’s not easy to forgive the same on a few milliseconds of frames rendered for a special effects in film or, in the case of audio, your reverb taking on a different character for a few milliseconds every once in a while on playback.

Results quality-checking and garbage handling on the GPU is still fairly inefficient, so there might not be any performance gains to be had when all is said and done. I think if you want more DSP power, just buying a machine with a faster CPU (or more than one fast CPU) would be a better investment than a mega-GPU at a fraction of the cost with the hopes it will be made more useful later. By the time any developers get around to justifying off-loading vital floating point work to the GPU, your current one might not let you benefit from it.

Sure, and I apologize for my incoherent blabbering. I’m a guitar player first, computer enthusiast second and would-be audio engineer third, so take everything with a grain of salt.

When I built my DAW machine, I decided to go without discrete graphics, since I figured I didn’t need it (no gaming).
I have a Core i7 3770K Ivy Bridge, which has decent graphics built in, driving my two monitors. That chip uses an updated version of a functionality that Intel calls “QuickSync”. As i understand it, they use a part of the graphics circuitry for some video de/encoding tasks, and they do it VERY fast, about double what CUDA does or other graphics-based compute solutions. I actually bought a QuickSync enabled media compression program and I am very impressed with the speed.
I just figured that most modern DAW computers have either Sandy Bridge, Ivy Bridge or Haswell based chips in them, and most of those have that QuickSync engine built in. Why not use that part of the chip, as it is in there almost by default and with clearly documented APIs?
Steinberg is using Hyperthreading lately for ASIOGuard, so they are (of course) aware of modern CPU’s capabilities.
That’s all.
I get the argument though about precision and sloppy execution for critical audio tasks from circuits that were never meant to deal with that.

Cheers,
Benji

I think its possible! Many non real processing tools for CPU can possible with GPU, many programs using CUDA and demonstration great functions, but sometime works not correct and sometime call of video driver restarting and this is Microsoft trouble. People need DSP cards for realtime recording with TDM and VST, or live shows without hardware heavy tools, effects and more, very fast making of music (making music on hte PC withouth correct working midi keyboard and controllers, and one hand, one mouse, one cursor its hard). But midi keyboar and controller can not work with CUDA cores without CPU.

UAD-2 are DSP-card with onboard DSP-chip that you buy for a lot of money from UAD. You can only use the plugins form UAD too that also are expensive and over-priced. The DPS chip on NVIDIA cards are 1000x times more powerful then the chip on the UAD-cards. You can also use it basically with any plugins from any manufactories that support CUDA for FREE.


AVID’s larger hardware- HD-systems has also a own DSP-chip built in. Same idea as NVIDIA-CUDA support. AVIDS DSP-chip you can only use with AVID’s own product, Pro Tools 11 HD.


The beauty with CUDA its 100% free for anyone to use, open source. You can use it on any DAWs, softwares or plugins that support it. You only need and NVIDIA graphic card to run it. And when the DSP-chip is full, it can continue to use the CPU recourses instead if you want. Today we only use 1-max 5% of the NVIDIA graphic cards DSP-capacity and potential in Cubase.

If they add CUDA support that can benefit on a lot of things. Example you can make more complex graphic or add a high-end track EQ, compressor with zero load on the CPU etc. The possibility’s are enormous! :slight_smile:


Best Regards
Freddie

OpenCL is IMHO the way to go, but for realtime audio there is really only very limited benefits of using a GPU. That’s why it hasn’t happened yet.
There is a convolution reverb that has been out for years, but nothing from the big players.

Yes i know, i ask similar question on nvidia CUDA developer zone, and they gave me the link

And look at point 6 “Co-Processing for Digital Audio”.

There I have seen ACUSTICA Audio plugins, they have one equalizer weighs more 800MB

It comes down to the nature of the data its processing.

Why video can use a lot of parallel processing is that there are thousands/millions of similar basic sets of operations to be done on all those pixels, so it is more straightforward (but still non-trivial) to design software that apportions the tasks systematically among the video cores, which are designed with that type of task in mind.

Audio streams are serial and usually use different complex processing chains for each of the relatively fewer streams, so making sense to use threads on whatever core is to hand, which is for what general purpose CPUs are designed. The main exception is, as Norbury mentions, reverbs, where there are the masses of simpler vector operations, akin to ray-tracing in video processing.

I think CUDA could greatly enhance the capabilities of Cubase and Halion.

GPU’s are usually good for single instruction multiple data stream type work.

One wonders how something like a convolution reverb algorithm might go if you run the same algorithm on multiple CUDA cores but feeding it multiple audio tracks. Similarly VSTi generation, one note per chord same algorithm.

There’s more than one way to make something parallel.

Mind you, I just bought a passively cooled video card when the GPU is not in use to quiet my PC when doing audio work. If we now get it to do work the fan will spin up :frowning: :smiley: