PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : GPU als Audio-DSP


ethrandil
2006-09-15, 17:16:44
Hallo,

ich habe von OpenGL ziemlich exakt keine Ahnung (ich weiß nur was ich hier so im Laufe der Zeit gelesen habe - ich habe sogut wie nix wirklich damit programmiert), wohl jedoch von normaler Programmierung.

Unter http://www.forum-3dcenter.org/vbulletin/showthread.php?t=318567 wird über DSP auf der GPU diskutiert.
Was meint ihr - geht das? Dann würde ich mich gerne daran versuchen.

Problem: Ich weiß nicht wo ich anfangen muss, denn ich will nicht mehr lernen als ich brauche - und ich brauche vermutlich nur einen kleinen Teil von OGL. (Shader, Rückkanal, ...)
Außerdem verwende ich Linux mit einer ATI-Graka, die nur Pixelshader der Version 1.4 unterstützt ;-).

Meint ihr ich hab da ne Chance, das macht Sinn und ihr könnt mir ein paar interessante Links geben?

mfg
- eth

PS: Es reicht, wenn ich irgendwas hinbekomme - in absehbarer Zeit wird der Computer gewechselt, und ich würde das KnowHow sicher leicht transferieren können

Gast
2006-09-15, 18:57:20
Außerdem verwende ich Linux mit einer ATI-Graka, die nur Pixelshader der Version 1.4 unterstützt ;-).

Dann lass es. Shader 1.4 sind für solche Sachen viel zu eingeschränkt. Ich würde da nix ohne ne SM3-Karte anfangen.

Du brauchst dafür leider schon einen sehr großen Teil von OpenGL, weil du einige Dinge praktisch "missbrauchst" dafür.

del_4901
2006-09-15, 19:57:17
Wiso, man braucht kein Float Format für Soundberechnungen. PS1.4 sollte ausreichend sein, der Flaschenhals liegt eh im Rückkanal.

Gast
2006-09-15, 20:27:49
Wiso, man braucht kein Float Format für Soundberechnungen. PS1.4 sollte ausreichend sein, der Flaschenhals liegt eh im Rückkanal.

INT12 ist aber für audio-berechnungen verdammt ungenau, normalerweise wird mindestens mit INT24 gerechnet, auf GPUs wäre also FP32 das richtige format.

ethrandil
2006-09-16, 14:46:37
INT12 ist aber für audio-berechnungen verdammt ungenau, normalerweise wird mindestens mit INT24 gerechnet, auf GPUs wäre also FP32 das richtige format.
Wie gesagt reicht es, wenn sich das Ergebnis erahnen lässt, da ich mittelfristig eine neue Grafikkarte haben werde. Aber nicht sooo bald.

- eth

Gast
2006-09-16, 14:51:08
Wiso, man braucht kein Float Format für Soundberechnungen. PS1.4 sollte ausreichend sein, der Flaschenhals liegt eh im Rückkanal.

Shaderlänge?

del_4901
2006-09-17, 01:38:36
Shaderlänge?
Multipass?

ethrandil
2006-09-17, 16:46:34
Wie wärs mit ein paar Links?

Wie gesagt - ich bin zufrieden, wenn ich folgendes amchen kann:
Texturen erstellen, Texturen mit Shadern bearbeiten, Ergebnis wiederholen. Unter Linux.
Kennt ihr da was?

Ansonsten: Ein normaler FIR-Filter besteht aus wenigen Additionen und Multiplikationen und hat keine Branches. Das sollte wohl nicht so schwer sein...

mfg
- eth

Gast
2006-09-17, 16:53:10
Multipass?

Mit nem 8-Bit Framebuffer? X-D

del_4901
2006-09-17, 21:11:33
4x 8bit das kann man zusammensetzen und wieder auseinandernehmen!
Additionen kann man sogar zusammengesetzt rechnen lassen!

@Topic: Texturen erstellen ist nicht das Problem, einfach Texturformat wählen und den Speicher Pixelweise füllen. Bearbeiten und lesen würde ich das ganze über Framebuffer Objects (FBO). Wenn das nicht geht, dann glReadPixels oder so benutzen.

Wenn du das ganze gut strukturierst, kannst du nachträglich die Formate sehr einfach auswechseln. Selbst die Shader müssen dann "kaum" verändert werden.

Soweit ich weiß bist du da ziehmlich auf dich allein gestellt, Informationen dazu wird es kaum im Netz geben. Aber wenn du konkrete Fragen zu einem OpenGL Problem hast, kannst du sie gerne hier reinstellen.

tokugawa
2006-09-18, 01:32:34
Hallo,

ich habe von OpenGL ziemlich exakt keine Ahnung (ich weiß nur was ich hier so im Laufe der Zeit gelesen habe - ich habe sogut wie nix wirklich damit programmiert), wohl jedoch von normaler Programmierung.

Unter http://www.forum-3dcenter.org/vbulletin/showthread.php?t=318567 wird über DSP auf der GPU diskutiert.
Was meint ihr - geht das? Dann würde ich mich gerne daran versuchen.

Problem: Ich weiß nicht wo ich anfangen muss, denn ich will nicht mehr lernen als ich brauche - und ich brauche vermutlich nur einen kleinen Teil von OGL. (Shader, Rückkanal, ...)
Außerdem verwende ich Linux mit einer ATI-Graka, die nur Pixelshader der Version 1.4 unterstützt ;-).

Meint ihr ich hab da ne Chance, das macht Sinn und ihr könnt mir ein paar interessante Links geben?

mfg
- eth

PS: Es reicht, wenn ich irgendwas hinbekomme - in absehbarer Zeit wird der Computer gewechselt, und ich würde das KnowHow sicher leicht transferieren können

Ich persönlich würde warten bis du upgradest, mit Karten die Shader Model 3.0 unterstützen geht das garantiert um einiges bequemer. Würde auch - wenn OpenGL erwünscht ist - eher Cg statt GLSL anschauen, da das ebenfalls einige Komfortfunktionen besitzt.

Wenn dir die API selbst nicht so wichtig ist, würde ich fast Managed DirectX und C# empfehlen - da kommst du mit Dingen, die zum Bereich "mehr lernen als du brauchst" gehören am wenigsten in Kontakt, da du dich dort auf das wesentliche beschränken kannst und schnell Ergebnisse bekommst.



Das Problem allerdings ist, dass meiner Meinung nach es nie einen Bereich gibt, wo es mehr zu lernen gibt als man "braucht". Selbst Wissen dass du nicht direkt dafür einsetzen kannst, ist Wissen das nicht "umsonst" ist. Wissen ist gut wenn man es hat, auch wenn man es nicht sofort einsetzen kann.

Daher würd ich mir trotzdem generell OpenGL für Grafik anschauen, denn erst mit diesem Wissen kannst du auch wirklich GPUs für Sound einsetzen. Ohne Kenntnis der API und Shaderprogrammierung (und vor allem der Art wie man General-Purpose-Programming auf GPUs macht) wirst du nicht weit kommen.


Apropos, Literaturtipps zu General-Purpose-Programmierung wären etwa einige Artikel aus GPU Gems 2 (und 1 glaub ich auch) sowie die Seite www.gpgpu.org. Die beschäftigen sich prinzipiell damit, die GPU für andere Sachen als Grafik zu vergewaltigen.