Audio Processing on Your Graphics Card?
edsarkiss writes "BionicFX has announced Audio Video EXchange (AVEX), a technology that transforms real-time audio into video and performs audio effect processing on the GPU of your NVIDIA 3D video card, the latest of which are apparently capable of more than 40 gigaflops of processing power compared to less than 6 gigaflops on Intel and AMD CPUs." Another reader points out a story on Tom's Hardware.
The amount of silicon on an average GPU overtook the amount of silicon on the average CPU some time ago.
Having all that processing power available to do more than just shift pixels makes perfect sense. I'm just surprised that nobody thought of doing it sooner.
"Accept that some days you are the pigeon, and some days you are the statue." - David Brent, Wernham Hogg
While most audio workstations may not have great video cards at the current time, I'd go spend $500 on a video card that'd take 90% of the workload off my processor while mixing ... it's cheaper than a lot of equipment out there.
;)
And the ability to get a few frags in while the band is taking a break isn't too bad either!
Who doesn't like free music?
Personally, I'd like to see search algorithms (perhaps data-search, perhaps even video search) move to suchc a co-processor.
Pretty soon my graphics card is going to do more, cost more, heat up more, be louder and use more electricity than the rest of my computer combined.
FoundNews.com - get paid to blog.,
It sounds like we should buy a computer with a GPU on the motherboard and plug in an expansion card with a CPU on it.
- For the complete works of Shakespeare: cat
dude...the sound man...i can SEE it...sound and sight man, its all the same....far out man....
Moo.
Now I'm going to have to find a motherboard that I could use to play Doom3 on that supported 2 video cards
(one for video, one for sound)
These innovations are getting pricey!!!
HallmarkOrnaments.Com
Because graphics cards (and other devices using DSP chips) are not really general purpose processors, they're very good at a few specific things.
This kind of stuff has been talked about and done in the research community for quite some time now. See http://www.gpgpu.org. While audio is an interesting idea, FFT's and Genomics are already running on GPUs Yes, GPU's can be fast, but they can also be a pain to program. Take a look at the Stanford Brook for GPU's project for a nice elegant way to program for GPUs. http://brook.sourceforce.net
I didn't know a price range could be "slow."
Now let's see some video rendering on our audio cards.
BLING BLING. Meet the architecture that's changing everything.
A GPU is much faster, but only when doing certain very specific types of operations. If you tried to write a word processor for the GeForce, it would at best run terribly slow, and at worst be an impossible task.
GPUs are not really all that powerful compared to a CPU, but they're working with a totally different set of constraints.
± 29 dB
Of course it can. A price range can be slow, a processing power can be sfast, and the distance can be measured in smetres.
Anytime there is an article talking about the power of your graphics card's GPU or the phenomenal processing power of DSPs, the discussion is always inundated with people asking "Hey why aren't we using these instead of our regular slow processors!", thinking they've come up with some sort of brilliant idea. For the thousandth time, people, things just don't work that way. DSPs achieve their high processing speeds by being very good at a few select things, but not really being general purpose devices. If you want to know more of the specific details, do a google search, there's a ton of information about DSPs on the web and I'm sure there are plenty of pages that explicitly address the difference between CPUS, GPUs and DSPs.
A GPU is typically very good at matrix processing. CPU's are more general purpose. Lunchtime, or I'd say more ;)
My blog. Good stuff (when I remember to update it). Read it.
Lousy Smarch weather!
DAMN YOU OCTODOG! DAMN YOU TO HELL!
People are doing extremely interesting things with modern graphics hardware, including fluid dynamics simulation, cloud simulation and multiplication of large matrices.
A good site for information on it is www.gpgpu.org, where there are perhaps 200 different projects related to general purpose GFX card use.
As the capabilities of graphics cards expand and become more esoteric, perhaps game developers will begin to eschew the use of certain graphics featuers in favor of using those parts of the pipeline to perform generic calculations, such as physics.
Perhaps there are also ways of performing such calculations and using the results as decorative graphics, ie when we're showing decorative ripples on water, perhaps those ripples are artifacts of some calculation that is being used elsewhere in the game.
Intolerance for ambiguity is the mark of the authoritarian personality.
Basically, from what I can glean of the article, it is basically making use of your video card's GPU as a co-processor. It doesn't state that the GPU is better at processing audio, just that in many instances it is mostly idle and thus available.
The GPU is of course heavily optimized (over a regular CPU) for video, and perhaps some of those optimizations would be passed on to audio as well. In the future, if such things pick up, one might well see more "multimedia" card which would incorporate a mixed GPU/SPU or perhaps dual processors?
I hear if you drop LSD, your brain can do the same audio to video conversion much faster than even the Nvidia graphics card can. But that's just what I heard.
Apple is creating libs to work with many graphics cards acceleration for image processing. The demo was real time effects on video.
Supports ATI and NVideo (lib figures out if you have a useable graphics card, else it just uses the cpu)
http://www.apple.com/macosx/tiger/core.html
Certain processor designs can be better suited to different tasks. For example, there was a point when the Alpha beat the shit out of Intel's offerings in integer performance in part because of a significant clock speed gap, but had rather superior floating point performance, even if you extrapolated Intel's performance up to match the Alpha's clock rate. (Aside from issues like performance not scaling perfectly with clock rate, which you should learn about early this semester if this is a real computer architecture class :3 ) Different processors designs can be strong or weak in much different areas.
GPUs aren't meant to be general purpose processors. They're good at doing the sort of calculations that you need to do rotations, shading, and other pretty graphical things, and suck at pretty much everything else. (My unresearched understanding is that this is because GPUs tend to be optimized for floating point performance.) For reasons like this, you probably won't be seeing any add-ons to let you do word processing on your video card while you surf the web any time soon.
what dedicated hardware can do. It's an proven fact and anyone that works with embeded systems can testify to the performance. We need to stop flaunting 3+ gigahertz processors using archaic instruction sets and focus on routing data to hardware that can handle the task.
If the CPU was nothing but a router and directed data to dedicated hardware (network cards, GPU with integrated physics engine, harddisk controller, etc) we can get away from inefficient execution tied up in an architecture that 99% of the market depends on.
Computers were built with modularity in mind. We need to get back to those roots as it's not only a good idea, but the only way we're going to get past some performance barriers.
- Dan
This phenomenon is commonly known as the "Wheel of Reincarnation". Diverting functionality to specialized components, and then folding it back onto the CPU has been going on since the 60s.
A more detailed description of the WoR is available here.
Tom Rokicki computed the Game of Life using Amiga's Blitter. March 17, 1987 UseNet post.
Does anyone have a screenshot?
This would probably look best when viewed with a Viewsonic monitor.
*chuckles* I love this, people are saying how old this tech is by talking about projects from a year ago.
/. about how cool their "new" toys are.
The concept of using a CPU to do I/O and other "OS stuff" for a vector processor is a wee bit older then that.
Maybe you remember the Cray 1? Or all those i860's we used to use on cards back in the 286 days?
Those who forget history are doomed to post on
- Adam L. Beberg - The Cosm Project - http://www.mithral.com/
A processor has specific pathways for specific operations. A very very very basic RISC processor may not even have a special path for a multiply op (over simplifying here, I don't think there is such a processor). So, by definition, a multiply operation would have to use the addition pathway, many many times.
Graphics processors have very very specialized ops -- operations which are hardware pathways. If you take a RISC processor and tell it to rotate a matrix of numbers, then you have to reduce the problem to simple commands (add, subtract, multiply, divide, binary shift etc) using other simple commands *in software*, then obtain the results of each operation and put them in context.
(what follows is a logical assumption, I don't code graphics)
A typical GPU can rotate a 3x3 matrix using a hardware path: a method might be something like telling it the starting address of your 3x3 matrix, and that you want to rotate it by some sequence (euler angles are fun). The processor would handle the WHOLE TASK in hardware, and spit out your result, probably in the same memory addresses. So you have ONE operation to rotate the matrix. Not 200.
For way more detail, pretend you have no MULT op on some processor: Let us multiply 4*8 using some pretend asm language:
push 8 A: ; put '8' into the A register
push 8 B: ; put '8' into the B register
ADD A,B,C: ; put the result of A + B into C
push C, A: ; put C into A
ADD A,B,C: ; 16 + 8 = 24, in C
PUSH C, A: ; A = 24
ADD A,B,C: ; C is now 4*8
'C' is now 4*8 = 32. Obviously you would use a loop for more arbitrary cases etc.
Now let us do that with a MULT oparand:
push 4 A: ; the A register has a value of 4
push 8 B: ; the B register has a value of 8
MULT A,B,C: ; multiply A*B and store it in C
C = 32. YOu are done. You used 3 operations instead of 7. It is left as an exercise to the reader to calculate the number of cycles this took.
Cheers, and good luck!
Apple's core image and video technology allows you to write your own processing algorithms to be run on the video card. I can imagine something like this being used to process audio in Mac OS X.
I work in the video games industry. Using graphics processor for audio is not new. The Nintendo 64 had a "Reality-Engine" graphics coprocessor that also processed sound by uploading new microcode.
If you think about it, things like bilinear/trilinear filtering are perfect for resampling, graphic blendops like add/subtract/modulate are great for audio mixing and can be done with even older fixed function hardware and bit of programming effort. The programmability of new hardware with pixel and vertex shaders improves the generic applications of the GPU by orders of magnitude and allows significantly more non-graphic algorithms to be implemented.
>If you tried to write a word processor for the GeForce
./ is sick enough to do that. Anyone?
I bet someone out there on
If you overclock it, does that mean your mp3s all start to sound ike Alvin and the Chipmunks?
Wait - what happens to the Chipmunk mp3s?
---
ECHELON is a government program to find words like bomb, jihad, plutonium, assassinate, and anarchy.
Some functions of a word processor (grammar checking, for one) would be well suited to a GPU...the algorithm is relatively small, the processing per byte of data relatively high, and the result need not be immediate.
That's what GPUs are designed for -- performing massively iterative algorithms on sets of data and returning the processed dataset. There are lots of algorithms that might benefit from this: encoding better digital video, searching for patterns, crunching numbers for encryption, etc. There are also lots of algorithms that would be NO GOOD -- SQL select statements, for example, or rendering web pages. Basically, any time processing is low and I/O is high, the GPU is a bad idea.
Think of the GPU as a tiny little distributed computing network on your own computer. And thank the video game industry for finally making signal co-processors commercially viable.
Hey freaks: now you're ju
About 4-5 years ago there were some 3dfx commercials that had the engineer walking around the plant talking about how powerful their new processor was and how it could be used to "save the world" then over the loud speaker comes the message "Scrap that, we are going to use it for games instead.", next we see the engineers all croweded around a computer and one screams "Blow his freaking head off!"
Ad Critic used to have them before they went for profit.
This is not the sig line you are looking for... -- Old Jedi Sig Line Trick
There's a blurb on the 6 series of GeForce cards that claim they can do video transcoding; since an hour of 2 pass encoded MPEG2 video takes my P4-3.2c about 2.5 hours, I'd love to get it at least 1x real time encoding speed (for 2-pass encodes) or at least 2x real time (for 1-pass encodes).
Anyone know any more about this? Audio is nice, but its not nearly as CPU intensive as video transcoding.
Its been thought of before, however the performance of a GPU compared to a CPU purely by clock speed or mips is sort of comparing apples to oranges...
GPUs are special purpose.. CPU's are not..
---- Booth was a patriot ----
It seems likely that we'll soon see high octane media coprocessors as standard equipment on PCs. Before long, all PCs will be "audio workstations", as well as video workstations, photo processors, movie theaters, two-way video telephones, game boxes, etc.--a lot of it simultaneously.
Oh, wait. They already are, but they're just trying to do most of this stuff with an x86 chip. Silly. It's not inconceivable that the future of PCs is a block of powerful media processors where the x86 chip will end up being the "code coprocessor"....
"Those who have never entered upon scientific pursuits know not a tithe of the poetry by which they are surrounded."
You forgot a qualifier- massively iterative and embarrassingly parallel operations. The current generation of graphics chips are pretty much 2 or 3 previous generation designs shoved into the same core; the Geforce 6800 and ATI X800 both have 6 vertex pipelines and 16 pixel pipelines.
So can the SETI guys use spare GPU cycles? I know my work machine uses less video than CPU.
Apple free since 1990!
Most graphic cards are in a big trouble on data integrity, only SRAM area is 100% sure (you'll be glad about your graphic DRAM behaviour on most cards). If you can not be 100% sure that all the bits are coherent, you'll be in a trouble if you want to do some "sensible" processing that could depend on just one bit (both raw audio and video are relatively inmune to these faults, but what about compressed/processed data to be retrieved?!).
What kind of latency does this pose?
There are currently lesser expensive audio DSP cards on the market (UAD 1 by Universal Audio/Kind of Loud, and the TC Powercore, and nowadays they don't cost much more than a GPU. However on both of those cards the latency is pretty harsh. Many audio system will compensate for the latency in some instances, although some can't/don't compensate for bussed effects, which is unfortunate as reverb is the greatest reason to use a card like this, and it is a bus effect typically, and the extra delay incurred acts to set a huge, usually inappropriate predelay.
Of course there will always be those willing to work around the potential latency issues, however that defeats the purpose that they state on their site (no more freezing/bouncing/yelling at the machine).
This is exactly why Protools TDM systems are still in vogue for higher end studios and producers. The TDM hardware does just about everything as offloaded DSP, therefore the latency is extremely low, fixed, and documented. You can look up (command-click on the track volume display actually) to find out the amount of latency on a track in samples, and if there is a need to compensate than you can figure it out. Although typically one doesn't need to compensate for only 20 samples of latency as that is less than you might find in a analog studio using digital effects.
Shawn's Tech Articles
i mean seriously... what would you ever need that much audio processing power for? distributed key cracking however....
FPS is technical jargon for 'First Posts Sent'.
$5 / month hosted VPS on linux = awesome!
Given that OpenAL is backed by sound card manufacturers, I wonder if they would ever concede to using GPUs to accelerate 3-D sound. I hope that the apparent conflict of interest doesn't hinder progress, if GPUs can really make a difference.
OpenAL is the one cross-platform audio API I've tried that actually _works_, while the other cross-platform options seem to either be stagnant, incomplete, just plain garbage, or so lacking in documentation that no mere mortal could figure them out. Here's to hoping that OpenAL and cross-platform audio on UNIX keeps getting better and better, because we really do need it.
-- "Makes Little Debbie look like a pile of puke!" - Moe Szyslak
GPU were NEVER a threat to cpus. They became only usable for ANYTHING but graphics with the introduction of vertex and pixelshaders, e.g. with the R100 or NV10 chips. Really usable are only chips with ps2, end even those can rarely archive "better then cpu" performance, even with tuned algorithms (main problem is memory access fragmentation breaking the caching strategies and causing pipeline stalls (wasting 100s of cyles) and multipass overhead because many implementations need 1000s of passes).
10 years ago graphic cards had ZERO FLOPS, because they couldnt even do floating point math.
The AGP port was invented because PCI WAS TOO FUCKING SLOW. At the time intel was about to enter the VGA buisness (at that time graphic chips werent programmable, so NO GPUs) with the i740 and later the i752 chips, which had (in comparison) exellent AGP support.
And no, 66Mhz PCI was NO solution, because other cards would pull down the bus. And pci-x was WAY later, and 64bit pci isnt backward compatible.
HI O WISE PRINCE. WHT TOOK U SO DAM LONG?