infuzion wrote:matti wrote:...So there's no reason for not being able to do even synths on it. What I'm interested in doing is efficient(and fast) convolution reverbs.
I wonder if synths might be out of the question, since there is a lag between commands/data being sent to the GPU & the GPU executing those commands, much greater than the lag between RAM & CPU. EQs & reverbs seem to be good uses of GPUs though!
The lag doesn't seem to be that big. There is a small lag if you read a single value straight from the CPU's RAM on the motherboard, but other than that the system seems pretty fluid and fast. The manual mentions a 400 to 600 cycles of lag when reading from CPU RAM, compared to single cycle of reading from the GPU's low level memory that is shared between threads.. So in that way it is huge, but the GPU runs at over 1000 000 000 cycles per second.. so 400 to 600 cycles ain't that bad. Also, in reality moves to the card are done in batches. So even if memory latency would be higher than on CPU's, the speed thru the PCI-E is not that bad, 2Gib/s on my 8800. Plenty of time for moving simple controller values etc. Creating synth's are definetly possible! You don't need to send anything else to a synth than the notes it needs to play, and some controller values. That's so much less data than what is sent to a convolution reverb.
One cool thing is that you can process on the GPU at the same time when data is moved to and from the card(or do computing on the CPU ofcourse). With this trick the complete memory bandwidth thing can be masked by computing by the values retrieved from a previous pass(if the bandwidth is going to be a problem.. tho it seriously isn't).
I see CUDA as a very promising platform also for audio. I'll let you know when i get my first VST test codes ready
