Ich hab' immer zwischen OpenCL und CUDA/Stream unterschieden, frag' mich ob das der Autor hier auch versteht.
Ersteres hat das Ziel eine einfache gemeine Basis zu erstellen und Aufgaben von allen Recheneinheiten also auch GPU zu nutzen und letztere dienen zum ausschließlichen berechnen auf der Grafikkarte. Nebenbei wurde OpenCL auch mit Hilfe von AMD weiterentwickelt.
Hatte mich erst letzte Woche damit kurz beschäftigt, der Syntax von CUDA und OpenCL schien ja erstmal nicht sonderlich groß zu sein, auch das Drumherum wirkte ähnlich. Sofern es vom Hersteller beides einigermaßen unterstützt wird dürfte die Performance doch gleich sein, womit der Punkt bei mir erstmal an OpenCL ging.
Okay, die erreichte Geschwindigkeit blieb weiter hinter den Erwartungen zurück, aber das schob ich mal auf mein mangelndes Detailwissen :D
TheUltimateStar schrieb:
--------------------------------------------------------------------------------
> Okay, die erreichte Geschwindigkeit blieb weiter hinter den Erwartungen
> zurück, aber das schob ich mal auf mein mangelndes Detailwissen :D
Da magst du wohl recht haben. Bei GPGPU gbt es viele kleine Schräubchen und Zahnrädern, an denen man drehen kann/muss, damit es ordentlich läuft :)
pwn2own schrieb:
--------------------------------------------------------------------------------
> Da magst du wohl recht haben. Bei GPGPU gbt es viele kleine Schräubchen und
> Zahnrädern, an denen man drehen kann/muss, damit es ordentlich läuft :)
Als Informatiker gefallen einem diese viele Schräubchen ja eigentlich auch, hätte aber halt schon erwartet das ein Straight-Forward-Lösung zu mindestens erstmal eine solide Leistung erzielt. Luft zum Optimum wäre ja verständlich, aber das meine stupide SSE-Implementierung fast 10x so schnell ist spricht nicht für die Einsteigerfreundlichkeit des Frameworks. Wobei ich im Nachhinein aber auch denke dass das Problem auch nicht so gut auf die GPU passt, letztlich sollte da nur jedes Texel einer Luminenztexture mit einem Gewicht aus einem Float-Puffer multipliziert und aufaddiert werden. Dabei jedes Texel nur genau einmal zu lesen und quasi dazwischen nichts groß zu tun überfordert die Texelfetch-Units vielleicht, dem widerspricht nur ein wenig dass das Hinzufügen der Multiplikation mit den Gewichten nochmal im Vergleich zum reinen aufsummieren deutlich Zeit kostet. Aber da ich in der Zeit die zum synchronisieren zwischen OpenGL und OpenCL notwendig ist die Textur auch genauso gut in den Hauptspeicher kopiert habe war es letztlich halt sinnlos da weiter die ms zusammen zu suchen.
Hallo
Was mir zu deinem Problem gerade einfällt:
- Float-Puffer muss am Anfang in den Shared Memory geladen werden (jeder Thread 1 Wert)
- Jeder Thread sollte dann mehrere Werte in der Textur mit dem Puffer multiplizieren. Wenn N Threads laufen, sollte Thread 1 die Werte an Position ThreadID, ThreadID+N, ThreadId+2N, etc berechnen. Damit laden die einzelnen Threads die Daten sequentiell (was schneller ist)
Also was zu beachten ist:
- Shared memory ist für viele Zugriffe innerhalb einer WorkUnit schnell
- Daten aus dem Global Memory immer Sequentiell laden
- Nicht zu wenige Berechnungen pro Thread
- Work Load der GPU sollte möglichst gross sein (limiterender Faktor könnte shared memory, register count, thread count, workload unit size sein)
Gruss
Kommentare: 173 | letzter Beitrag 27.05. 23:42
Kommentare: 94 | letzter Beitrag 26.05. 19:45
Kommentare: 79 | letzter Beitrag 27.05. 22:43
Kommentare: 71 | letzter Beitrag 27.05. 22:20
Kommentare: 63 | letzter Beitrag 00:03 Uhr
E-Mail an news@golem.de

Der japanische Spieldesigner Goichi Suda - Fans sagen schlicht "Suda 51" - ist für schräge Actionspiele bekannt. Sein nächstes Werk schickt ein scheinbar braves Schulmädchen in den Kampf gegen Zombies.

Weitgehend unbemerkt hat der US-Händler Tigerdirect die ersten Chromebox-Systeme von Google ausgeliefert. Für 330 US-Dollar bekommt der Nutzer recht gute Hardware in Nettop-Form, die sehr viel leistungsfähiger ist als die des Chromebook mit ChromeOS.

Der neue Chef der Piratenpartei steht im Verteidigungsministerium unter Druck. Elektronische Kommunikation für seine Partei ist ihm in der Dienstzeit untersagt. "Es gibt Leute im Ministerium, die darauf warten, dass ich Fehler mache", sagte Schlömer.

Renesas ist nach Elpida der zweite schwer angeschlagene japanische Chiphersteller. Renesas, das Hitachi, Mitsubishi Electric und NEC gehört, macht Verlust und will seine größte Fabrik verkaufen.

RIM soll in den kommenden Tagen erneut einen massiven Stellenabbau ankündigen. "Ich habe herausgefunden, welche Teile ich in meinem Puzzle nicht mehr benötige", sagte Firmenchef Thorsten Heins.

Ein britisches Blog will erfahren haben, dass Facebook den norwegischen Browserhersteller Opera Software kaufen will. Beide Unternehmen wollen sich dazu nicht äußern.