CUDA supported VST's

CUDA is een soort C, om het programmeurs makkelijk te maken om berekeningen op de GPU te doen. Dit Da's makkelijker dan directe instructies te sturen en het is 'more dedicated' voor de NVidia kaarten dan OpenCL of OpenGL.

Waar het voornamelijk mis gaat is dat een GPU zelf helemaal niet geschikt is om seriele bewerkingen te doen. Daar zijn CPU's juist voor. Een GPU kan heel veel kleine dingetjes tegelijk. Een CPU één voor één hele grote dingen aan.

Als je een plaatje bv iets roder wilt maken, maakt 't niet uit welke pixel het eerst of 't laatst bewerkt wordt. ze kunnen allemaal tegelijk roder gemaakt worden. daar is een GPU goed in.
Bij audio kan dat soort dingen volgens mij niet echt. je zit in het tijdsdomein met bijna alle bewerkingen.
Behalve dingen als DC offset of zo...

Of zijn er bv FFT bewerkingen in audio waar alle elementen tegelijk dezelfde bewerking kunnen ondergaan?

Je zou zomaar eens gelijk kunnen hebben. Maar toch vind ik het vreemd....de eerste UAD kaarten werkten namelijk gewoon met oude GPU's en dat ging wat betreft latency en processing prima.

Nu ging dit wel om een zeer oude GPU uit het AGP tijdperk en de moderne GPU heeft een behoorlijke evolutie meegemaakt en zou daardoor zomaar eens totaal ongeschikt kunnen zijn geworden voor dit soort toepassingen.

Maar voor echte feiten weet ik simpelweg te weinig van de materie. Zou echt ideaal zijn als ze de enorme rekenkracht van GPU's konden inzetten voor realtime audio bewerkingen.
 
Tja, ik denk dat parallel computing, waar CUDA een zeer geschikt platform voor is, niet geschikt is voor realtime berekeningen zoals Raphie al aangeeft.

Ik ben dus meer fan van m'n hyperthreading i7 Quad dan van de grafische prestaties van m'n Mac Mini.

Bron Wiki CUDA GPU: Using CUDA, the GPUs can be used for general purpose processing (i.e., not exclusively graphics); this approach is known as GPGPU. Unlike CPUs, however, GPUs have a parallel throughput architecture that emphasizes executing many concurrent threads slowly, rather than executing a single thread very quickly.
 
of zijn er bv FFT bewerkingen in audio waar alle elementen tegelijk dezelfde bewerking kunnen ondergaan?

hier heb ik aansuitende post op gevonden. dit ontkracht ook wat raphie stelt. cuda is wel degelijk geschikt voor audio bewerking. maar meer voor convultion ,moddeling synths en minder voor feedback gebaseerde algoritmes.
 
hier heb ik aansuitende post op gevonden. dit ontkracht ook wat raphie stelt. cuda is wel degelijk geschikt voor audio bewerking. maar meer voor convultion ,moddeling synths en minder voor feedback gebaseerde algoritmes.
het toverwoord blijft realtime, wil je offline een reverb renderen dan dan CUDA prima
 
ehm cuda heeft echt niks te maken met audio bewerkingen. niet specifiek ten minste. het is en programmeer taal voor NVidia kaarten. Je zegt toch ook niet dat Python, Javascript of C++ geschikt zijn voor real-time audio?
In cuda "bouw" je een klein programmaatje met een bewerking erin, een kernel, die je samen met een matrix aan waardes, upload naar de GPU. deze voert dan parallel voor de gehele matrix dezelfde bewerking uit. kernels kan je eventueel serieel uitvoeren. dan kan je de data op het geheugen van de kaart laten staan wat weer tijd scheelt. up- en downloaden van de GPU naar de CPU is namelijk heel langzaam.

Een GPU is een extreme hoeveelheid CPUs op één chip. zeg maar een 1000-core CPU. die cores kunnen een grote hoeveelheid berekening tegelijkertijd uitvoeren. maar ze zijn los niks vergeleken met bv een x86 CPU.

het hangt van de GPU/videokaart af hoe snel deze kan rekenen en dus of ie real time audio aan kan of niet.
Volgens mij is audio niet echt een bewerking waar je parallel iets aan kan rekenen. Je moet altijd bufferen omdat je niks over een frequentie kan zeggen als je maar 1 bit hebt...
Bij video/beeld kan je de meeste bewerking op pixels uitvoeren zonder dat de formule iets hoeft te weten van de omliggende pixels. Dingen als Blur of Median bv moeten dat wel en worden daarom veel vaker op de CPU gedaan dan de GPU.

Volgens mij zijn er wel mensen hier op 't forum die iets over DSP kunne zeggen en hoe dat eventueel parallel gedaan zou kunnen worden.
 
bij 't modellen van een synth kan ik me nog wel iets voorstellen dat dat op de GPU gebeurt. je kan dan bv op een oude GTX kaart met 256 cores, dan parallel filters laten werken op 256 voices of zo...
 
ehm cuda heeft echt niks te maken met audio bewerkingen. niet specifiek ten minste. het is en programmeer taal voor NVidia kaarten. Je zegt toch ook niet dat Python, Javascript of C++ geschikt zijn voor real-time audio?

Ja ik snap wat je bedoelt maar CUDA is eerder een platform dan alleen een programmeer taal toch?

En over een platform // architectuur kun je wel zeggen of het 'realtime' kan werken of niet.

Wat ik alleen niet snap is dat ik die reverb dus wel goed draai zonder problemen, (hoor de geluid voorbeelden)
In hoeverre is dat dan offline gerendered?? Volgens mij is dat helemaal niet zo.
Hieronder legt een ontwikeklaar uit dat convultion processing wel goed werk met parralel processing.
Nou ja ik heb ook een GPU met cuda 336 cores. misschien een beetje overkill voor 3 reverbs:)
Mischien dat er iemand hier op het forum wat meer vanaf weet en met een duidlijke uitleg kan komen???:mega:





Originally Posted by Sean Costello
I think the odds of me porting to CUDA are about zero.

The reason for this: GPUs are geared towards massively parallel processing. This is the sort of thing that you see in images, which are essentially NxM arrays of data. Image processing tends to be feedforward, and not reliant on previous outputs of the filters.

Most of the audio processes I work on are based on delays, feedback processes and filters, that sort of thing. This doesn't work well in massively parallel systems. I process audio in parallel whenever I can get away with it, for efficiency, but the fact is that delay lines of different lengths are inherently difficult to parallelize. Feedback doesn't work well with massively parallel systems, unless you have feedback with pretty big blocks, and that tends to lose a lot of the cool aspects of feedback.

Convolution processing (including Nebula) works well with massively parallel processing. Beyond that, I could see GPUs used for other things that work well with lots of parallelism, like modal synthesis. For general audio applications, I don't think that GPUs will prove that useful. I wouldn't mind being proven wrong, as there is a LOT of power in the GPU.
 
Zie... Sean Costello, de ontwerper van Valhalla zegt hetzelfde, niet geschikt voor realtime...
 
Zie... Sean Costello, de ontwerper van Valhalla zegt hetzelfde, niet geschikt voor realtime...

Dat zegt hij niet.

Hij zegt dat het niet geschikt is voor general audio applications. maar wel dus voor convultion processing of modeling synthesis.

Het probleem van algemene audio bewerkingen is dat ze vaak op feeback en feedforrward principes gebaseerd zijn.

Het resultaat moet weer als invoer worden gebruikt.

Dat het voor convultion of modeling wel geschikt zou zijn is dat er parrallel meerdere berekeningen wiorden gedaan die daarna worden samen gevoegd. (dit is wat ik van Barno begrijp).

Dus even voor de duidelijkheid. "Realtime" is wel mogelijk maar cuda als dedicated dsp voor algemene audio bewerkingen niet. nou ja het is wel mogelijk maar niet efficient
 
Feedforward ien feedback ZIJN realtime processen ;)
Convultion is het uitrekenen dmv van een FIR en niet realtime
 
Convultion is ook een realtime process. Alleen bij een parameter veranderering moet de IR opnieuw berekent worden dat gebeurd niet realtime.

Maar goed duidelijk mag zijn dat CUDA niet optimaal voor audio is.

Een groot probleem is dat het systeem de GPU een refresh laat uitvoeren wat helemaal buiten de realtime threads word uitvoerd. De enige workaround daarvoor is de GPU van de grafische shell los te koppelen. wat alleen kan als je nog een aandere gpu hebt. anders zie je niets ;0
 
We zijn het eens ;)
en dan nog een ander perspectief: waarom überhaupt druk maken om zaken als CUDA, alle commerciele plugins zijn native en met een recente PC (bijv Core i7 based) kan je meer plugins native draaien als je nodig hebt, je krijgt de PC echt niet op z'n knieen (of je moet bijv meerdere DIVA's online op hoogste resolutie zetten)
 
hmm misschien helpt een simpel voorbeeldje...

CPU, seriële processing (bv voor audio):
als je een reeks samples hebt, bv 120, 230, 157, 846, 55, 376
en je wil daar het verschil van de opeen volgende waardes van uitrekenen, dan doet een CPU:
loop deze bewerkingen totdat de waardes op zijn:
lees de huidige waarde (de eerste keer: 120)
lees de daaropvolgende waarde (de eerste keer 230)
trek de tweede waarde van de eerste af (230 - 120)
stop de uitkomst in het geheugen (110)
volgende loop

Een GPU zou dat zo kunnen doen:
in cuda schrijf je dit:
verdeel alle waardes in groepjes van 2 ( (120:230) (157:846) (55:376) )
stel een formule op van de bewerking (b-a)
stuur beiden naar de GPU
de GPU doet dan vervolgens allemaal tegelijk
230-120 & 846-57 & 376-55
en maakt daar een nieuwe matrix van (110, 789, 321)
deze wordt weer terug gestuurd naar de CPU die het vervolgens verder verwerkt

Verder is CUDA een Library voor je compiler (gcc, llvm/clang). Dus het zijn toegevoegde commando's die je kan gebruiken om instructies naar een NVidia GPU te sturen. Verder niks. Net zoals OpenGL en OpenCL.
Het statement dat CUDA voor real time audio is is vergelijkbaar met het statement dat een wiel gemaakt is om 300 km/h mee te rijden of dat een 909 ontworpen is om techno mee te maken.
 
Verder is CUDA een Library voor je compiler (gcc, llvm/clang). Dus het zijn toegevoegde commando's die je kan gebruiken om instructies naar een NVidia GPU te sturen. Verder niks. Net zoals OpenGL en OpenCL.
Het statement dat CUDA voor real time audio is is vergelijkbaar met het statement dat een wiel gemaakt is om 300 km/h mee te rijden of dat een 909 ontworpen is om techno mee te maken.

Ik snap nu wat je bedoelt en je bent eenduidig dat waardeer ik heel erg. (je bent duidelijk een techneut:mega:)

Ik ben misschien niet eenduidig maar als ik over cuda spreek ik niet alleen over de library maar over het paralel computer platform, library en framework.

@raphy idd. we zijn het eens. :mega:
 
We zijn het eens ;)
en dan nog een ander perspectief: waarom überhaupt druk maken om zaken als CUDA, alle commerciele plugins zijn native en met een recente PC (bijv Core i7 based) kan je meer plugins native draaien als je nodig hebt, je krijgt de PC echt niet op z'n knieen (of je moet bijv meerdere DIVA's online op hoogste resolutie zetten)

Niet mee eens. Voor een bepaald type geluiden kun je Diva prima inzetten op een i7 based cpu maar ga maar eens met multi note pads met lange release tijden werken.

Kan je garanderen dat je cpu usage binnen de korste keren door het plafond schiet en meerdere instances hoef je dan niet eens over na te denken. Dit maakt het gebruik van een dergelijke plugin voor dergelijke toepassingen nagenoeg onmogelijk en dus zou een GPU (die op dat moment amper iets te doen heeft ) inzetten voor dit soort plugins een ideaal alternatief zijn.

Echter is dit vanuit technisch oogpunt blijkbaar geen optie. Erg jammer!

Dit geld helaas voor de meeste subtractieve synthese plugins die serieus klinken.
 
dat zeg ik dus online/realtime hoogste resolutie, gaat ie op z'n knieen
daarom heeft diva ook de realtime/render optie, je bent het dus gewoon wél eens :D
 
dat zeg ik dus online/realtime hoogste resolutie, gaat ie op z'n knieen
daarom heeft diva ook de realtime/render optie, je bent het dus gewoon wél eens :D

Ook in de default modus zul je polyfoon met lange releasetijden hetzelfde ervaren. :)
 
Ik snap nu wat je bedoelt en je bent eenduidig dat waardeer ik heel erg. (je bent duidelijk een techneut:mega:)

Ik ben misschien niet eenduidig maar als ik over cuda spreek ik niet alleen over de library maar over het paralel computer platform, library en framework.

ja lol sorry... ik ben een beetje een mix van creatief beroep met veel techniek.
maar ik had ff moeten quoten. de herhaling was niet voor jou bedoeld...
 
Back
Top