Old 10-20-2012, 07:32 AM   #1
Stretto
Human being with feelings
 
Join Date: Oct 2012
Posts: 147
Default DAW's using GPU?

Is this on the near horizon? GPU's could speed up audio processing by several orders of magnitude and if some method of serializing and paralleling audio processing units(like vst's or rather smaller more efficient algorithmic processing functions) then I would imagine DAW's would almost never have cpu issues. Think of running all your VST and VSTi's but still only use 10% of your cpu!!!! You could add another gfx card and it would be like putting in 30 cpu's.


GPU processing seems like the future and what little I have looked at latest has impressed the hell out of me. (I remember doing nbody simulations on a 486 and couldn't even get 1 fps with just a few bodies. Now with gpu's you can get 40k+ at 30fps on the average system. (And are systems that can do 100's of millions in real time)

While one could argue that audio is not as intensive as graphics and it's not needed, that is rather ignorant since it's there to be used and will only improve the situation.

MS has come out with many interfaces for the gpu that abstract the hardware. I know VST's can do it themselves using whatever tech they want but if some new method(similar to JS) but using similar techniques could be used then running out of cycles would probably be a think of the past(or open the door up to amazing fx and vsti's similar to how gpu's have revolutionized graphics in the last decade).

Also, with things like C++ AMP, which is a library to use the GPU quite easily, and some sort of change from VST's to a more modular and scripted like fx there is no end to what could be done. Essentially what I'm thinking of is where each vst is sort of like a mathematical function that is composed to form more complex algorithms that can be put in a single gpu shader(or, if need be, split up) which would run at 100 to 1000 times faster than the cpu. (effectively reducing the your current cpu usage by that factor) Accelerator is a library for .NET which essentially takes functions and composes shader algorithms from them. Since a vst is essentially just an algorithm, a similar approach could be used.

Anyways, just thoughts... I think many people would be surprised to learn just how much power their computer has that is not being used. Just imagine no latency issues!! EVER!!!!! (within reason
Stretto is offline   Reply With Quote
Old 10-20-2012, 08:27 AM   #2
Xenakios
Human being with feelings
 
Xenakios's Avatar
 
Join Date: Feb 2007
Location: Oulu, Finland
Posts: 8,062
Default

IMHO GPUs have mostly been determined to be a disappointment for audio processing.

Yes, the power is there on the graphics cards, but getting the audio from the host CPU/memory into the card and back is an intensive process often involving long latencies. And latency is a poison for a great majority of people dealing with audio. It doesn't really matter if you could run 1000000 oscillators on a GPU if those oscillators sound noticeably late after pressing a key on a MIDI keyboard. Similar points would apply to things like guitar amp simulators and so on. GPUs might work passably well for some audio processing purposes where low latency isn't paramount.

Sometimes the latency could be reduced at the cost of increased CPU stress, but then that negates the idea of using the GPU to save on CPU resources...

You touched the issue of how would the things be programmed. There are ideas, languages and language extensions for it. Audio however is quite challenging because of the way the data has to be shuffled around in a particular order in order to do interesting things. GPUs are not fast because they have fast clock speeds. They are fast because they do parallel processing, and audio processing quite often is very badly suited for such processing. (There may not be enough actual parallel things to do in some given routing situation.)
__________________
I am no longer part of the REAPER community. Please don't contact me with any REAPER-related issues.
Xenakios is offline   Reply With Quote
Old 10-20-2012, 06:04 PM   #3
Stretto
Human being with feelings
 
Join Date: Oct 2012
Posts: 147
Default

This is because of the pipeline used. This is why I said one would have to require the use of FX as sort of processing units that could be combined. Essentially we have to do as much audio processing on the gpu as possible.

I do not necessarily think the issue is with paralleling audio but real time manipulation of parameters(e.g., gui and automation). Most things, contrary to believe, can be paralleled(even some seemingly contradictory fx like delays and such). The real question is how to do it effectively. If you do it wrong you'll waste more time than by doing it sequentially.

Essentially, though, a paradigm shift needs to take place. "FX" need to be written in a very specific way and tools need to be developed to create and debug them.

As far as latency goes, You may be right that the in and out from the CPU to GPU adds enough latency to make it useless at this point. That is not so much a denouncement of parallelizing audio but of using the current gpu architecture.


Obviously one would have to have an intelligent way to manage the audio chain. If you have an input that is routed to an output with no fx there is no reason to send it to the gpu. Also, if the gpu could interact with the sound card then the latency would be moot. (one could do this currently with fpga's and the issue is more about getting it done with gpu's(very common) than with fpgas(not common and things like powercore already out there).


What it all boils down to though, if people don't work on it or push the technology it won't happen. (and I imagine people are actually already working on it)

Last edited by Stretto; 10-20-2012 at 06:12 PM.
Stretto is offline   Reply With Quote
Old 10-20-2012, 06:35 PM   #4
EpicSounds
Human being with feelings
 
EpicSounds's Avatar
 
Join Date: Jul 2009
Posts: 7,592
Default

LiquidSonics has some GPU versions of their plugins.

http://www.liquidsonics.com/software.htm

Quote:
The GPU Edition Requires NVIDIA GeForce 8 series and above for CUDA support. Compute Capability 1.1 is required to run the GPU Edition which excludes some GeForce 8800 series cards (i.e. those based on the G80 architecture). All other CUDA enabled cards are thought to be compatible but neither system or device compatibility is guaranteed. Correct operation of the GPU edition is highly dependent on a valid CUDA install by the user and no guarantee of compatibility with any card, system or configuration can be provided.
__________________
REAPER Video Tutorials, Tips & Tricks and more at The REAPER Blog
EpicSounds is offline   Reply With Quote
Old 10-20-2012, 07:57 PM   #5
TimOBrien
Human being with feelings
 
Join Date: Jun 2007
Posts: 2,301
Default

Yup, the problem is that any architecture change (and look at how fast video cards and mobos change) makes all that extra power they find useless.

You would have to lock yourself into a very specific set of hardware and that is death in the computer biz.....
__________________
iMac i5quad/12gbRAM/1Tb Glyph drive/1Tb samples drive > Motu828mkII ---- Still run my GatewayM520 2.8ghz XP laptop. Video editing, 3D work and audio with zero problems.
TimOBrien is offline   Reply With Quote
Old 10-20-2012, 08:18 PM   #6
Stretto
Human being with feelings
 
Join Date: Oct 2012
Posts: 147
Default

@Epic: yeah, there are several vst's that use the GPU... it is trending in that direction... It would just be better if a DAW and fx plugin design natively supported it.

@Time: that's just utter nonsense. If that was the case nothing would get done. There are many open specifications. OpenCL supports all architectures and can fall back on the CPU. C++ AMP has the potential to support all architectures as it is an open specification too. CUDA is from nvidia and was designed specifically for their cards... That is not a fault of GPU acceleration but one of nvidia cards.

In any case, a wrapper usually can be created, at a cost of performance, that will work in general. It's call an adapter. So the concept of "locking yourself in" is just nonsense. Just write an adapter around the tech. This is done all the time and is why you can run windows apps in linux for example... because someone wrote an adapter. This may not always be the best at first but generally opens the flood gates up if it is actually beneficial.
Stretto is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -7. The time now is 09:53 PM.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.