News Carmel macht Videos mittels CUDA schöner

CUDA wird im Wesentlichen deshalb keine Zukunft haben, weil mit "Compute Shaders" von Microsoft und OpenCL zwei Lösungen in den Startlöchern stehen, die erstens herstellerübergreifend funktionieren werden (OpenCL sogar plattformunabhängig) und zweitens von den mächtigsten Konzernen der Branche in den Markt gedrückt werden. CUDA ist sicherlich fein, aber es erinnert mich ein wenig an Glide von 3DFX.

Es ist ja auch nicht so, dass Nvidia-Karten dann plötzlich außen vor wären, aber CUDA wird sich kaum halten lassen. Das ist für Privatanwender wie professionelle Anwendungen aber kein Verlust, denn wichtig ist die brachiale Rechenpower der GPUs zugänglich zu machen und das wird mit DX11 und OpenCL angeboten. Zusätzlich behält man mit Compute Shaders und OpenCL die Wahlfreiheit, was den Hersteller angeht.

Wie lange das im Moment angeschlagene Unternehmen Nvidia es sich leisten wird, die teure Pflege und Weiterentwicklung für die eigene, kleine Parallellösung aufrecht zu erhalten, werde ich dennoch gespannt verfolgen.

Wenn du merkst, dass du ein totes Pferd reitest, steig ab! :evillol:
 
Carmel wird also Videos die Kompressionsartefakte aufweisen filtern können, so das im Ergebnis eine bessere Qualität gegenüber dem Ausgangsmaterial entsteht. Es ist also kein Encoder, sondern ein Decoderfilter mit der tollen Eigenschaft in Echtzeit auf einer GPU berechnet zu werden.
Abgesehen von der GPU Geschichte und der Interpolation(da bin ich nicht ganz sicher, vllt kann es das ja doch) zwischen verschiedenen Frames hat z.B. ffdshow eine ähnliche Funktion. Und AFAIK war dort auch schonmal im Gespräch die GPU als Beschleuniger zu verwenden. Bin mal gespannt wo die Entwicklung hingeht, je nach Videomaterial ist ffdshow jetzt schon sehr hilfreich und mit Sicherheit deutlich universeller als Carmel.
 
franzi3 schrieb:
Weil dir die entsprechenden Firmen/Branchen unbekannt sind, besitzt es also keine Relevanz? Hmm, interessante Einstellung!

http://www.evolvedmachines.com/ (Simulation neuronaler Netzwerke)
http://www.hanweckassoc.com/ (Risikomanagement mit MonteCarlo Simulation)
http://www.scicomp.com/parallel_computing/GPU_OpenMP (Berechnung von Preismodellen im Derivate-Geschäft)
http://www.acceleware.com/ (Software zur Entdeckung von Öl- und Gasvorkommen)

http://www.eetimes.com/news/latest/showArticle.jhtml?articleID=207403647&pgno=3 (Artikel, der genauer auf heutige Anwendungen von CUDA eingeht, als Ergänzung zu obigen Links)

http://www.ncar.ucar.edu/ (Institut für Wettersimulation und Vorhersagemodelle)
http://insidehpc.com/2008/07/28/ncar-plus-cuda-equal-faster-weather-simulation-community-benefits/
Und wo geht hieraus hervor, dass auf CUDA exklusiv gesetzt wird? Ich sehe teilweise nicht mal, dass überhaupt CUDA eingesetzt wird. Ich habe jetzt aber auch keine Lust, jede Seite im Detail anzuschauen. Wie du dir vielleicht denken kannst, ist mir schon bewusst, dass CUDA eingesetzt wird. Aber das war nicht der springende Punkt.

franzi3 schrieb:
Aha, daher haben also alle bisherigen Entwickler ihre Arbeit umsonst gemacht, obwohl die Anwendungen, wie oben bestätigt bereits eingesetzt werden. Verquere Welt.
Nicht jeden Satz auf die Goldwaage zu legen, scheint nicht deine Stärke zu sein, oder?

franzi3 schrieb:
Ich glaube unser Missverständnis rührt eher daher, dass deine Darstellung vermittelt, CUDA sei Closed Source.
Nein. Das habe ich weder gesagt noch impliziert. "Unser Missverständnis" rührt schlichtweg daher, dass du nicht weisst, was proprietär bedeutet.

franzi3 schrieb:
Jedoch ist DirectX meines Wissens ebenso proprietär wie CUDA.
Vollkommen korrekt.

franzi3 schrieb:
Dann sollte es dich im Falle Microsofts ebenso stören, wie bei Nvidia.
Nein. Das sind zwei verschiedene paar Schuhe. Für plattformübergreifende Entwicklungen würde ich erstens auch kein DirectX verwenden. Und zweitens, Microsoft bietet komplette Plattformen an (Windows, XBox). Und wenn ich dafür entwickle, ist ein entsprechendes Framework auch iO. Wie ich schon sagte, nVidia hat nichts derartiges zu bieten. Also wozu mich auf CUDA festlegen? Nur wegen der Hardware? Macht aus softwaretechnischer Sicht nur selten richtig Sinn.

franzi3 schrieb:
Wenn du es so sehen magst, sprechen für CUDA ca. 100 Mio. CUDA-fähige GPUs, die sich in installierten Systemen befinden
nVidia GPUs werden aber nicht nur CUDA fähig sein. Das ist dir doch hoffentlich bewusst? nVidia ist zB auch ein Mitglied der OpenCL Workgroup. Sie kommen früher oder später nicht drum herum, auch hier entsprechenden Support anzubieten.

franzi3 schrieb:
Ich sagte, dass eine Firma, die Profi-Anwendungen entwickelt sich Gedanken darüber macht, ob eine Unterstützung von CUDA sinnig ist.
Warum sollte besagte Firma, die keine Software für den Mainstream-Markt anbietet, sich nun in eben jenem engagieren
Womit wir wieder beim Schattendasein wären. Dagegen, dass CUDA dort durchaus längerfristig existiert, habe ich doch gar nichts einzuwenden. Das ist dann allerdings nVidias Problem und wie wirtschaftlich dies letztendlich ist.

franzi3 schrieb:
Verstehe mich nicht falsch, ich halte die Entwicklung von OpenCL nicht für fehl am Platz, nur gibt es OpenCL noch nicht als Standard und CUDA wird bereits in einer ganzen Reihe von Branchen eingesetzt, ganz gleich, ob einem CUDA als Entwicklungsumgebung gefällt oder nicht.
OpenCL wird afaik 2009 final spezifiziert. An einem entsprechenden Support arbeiten ja auch die GPU Hersteller. Das ist also mehr oder weniger eine Frage der Zeit. Ebenso bei DirectX.

puntarenas schrieb:
Wenn du merkst, dass du ein totes Pferd reitest, steig ab! :evillol:
Ist zwar etwas gehässig, aber :D .
 
gruffi schrieb:
CUDA ist doch schon tot, bevor es überhaupt gelebt hat. Dafür wird Apple mit OpenCL und Microsoft mit DirectX schon sorgen. Um mal den wichtigsten Punkt aufzugreifen
Das glaube ich überhaupt nicht.

Um mal einen anderen sehr wichtigen Punkt aufzugreifen:

- CUDA ist schon JETZT nutzbar, es ist einfach zu programmieren und es funktioniert.
- Es gibt bereits jede Menge Entwickler, die angefangen haben, mit CUDA zu programmieren.
- Wer weiß wie lange das noch dauert, bis DX11 bereit ist, und wer weiß ob's überhaupt mit CUDA mithalten kann (hauptsächlich auf der Ebene: Komfortabilität).
 
@gruffi

Lassen wir das mal mit dem ständigen Gegen-Quoten, wird allmählich etwas unübersichtlich. ;)

Ich denke wir reden ein wenig aneinander vorbei. Ich habe mich lediglich an einer Äußerung deinerseits gestoßen: "CUDA ist doch schon tot, bevor es überhaupt gelebt hat.

In deinem letzen Posting schreibst du nun: Dagegen, dass CUDA dort durchaus längerfristig existiert, habe ich doch gar nichts einzuwenden. Ich lese dies entgegen deiner ersten Aussage so, dass du nun keineswegs CUDA im professionellen Bereich als tot ansiehst. Und genau darum ging es mir mit den Link-Beispielen.
Wir sind dann in unserer föhlichen Quoterei in den Massenmarkt abgedriftet, den du als Argument angeführt hast, für die eher geringen Chancen von CUDA. Habe ich das in Frage gestellt? Ich schrieb, dass ich eher bezweifle, dass CUDA sich dort etablieren kann. Denke wir stimmen hier also überein.
Dass Nvidia sicherlich auch OpenCL unterstützen wird, sollte eh klar sein. Wir erwähnten bereits, dass sie ebenfalls in der Khronos Group sitzen.

Zum Thema "proprietär":
Hier wäre ich über eine Aufklärung deinerseits dankbar. Ist CUDA nun proprietär oder nicht? Soweit ich mich mit CUDA beschäftigt habe ist es eine Standard C Umgebung mit standardisierten FFT-Bibliotheken und BLAS-Bibliotheken. Das Einzige, was somit proprietär wäre, sind die zusätzlichen Funktionen zur Einbeziehung der CUDA-GPU in die Berechnung.
Software, die nicht im Sinne der GPL "frei" ist, also "proprietäre" Software, ist auch meistens mit Lizenzkosten verbunden. CUDA jedoch nicht. Möglicherweise weißt du mehr zu dem Thema.
 
Konti schrieb:
- CUDA ist schon JETZT nutzbar, es ist einfach zu programmieren und es funktioniert.
- Es gibt bereits jede Menge Entwickler, die angefangen haben, mit CUDA zu programmieren.
- Wer weiß wie lange das noch dauert, bis DX11 bereit ist, und wer weiß ob's überhaupt mit CUDA mithalten kann (hauptsächlich auf der Ebene: Komfortabilität).
Wie gesagt, dass ist temporär. Nichts, was längerfristig für CUDA spricht. Natürlich auch erstmal nicht dagegen.

franzi3 schrieb:
Ich denke wir reden ein wenig aneinander vorbei. Ich habe mich lediglich an einer Äußerung deinerseits gestoßen: "CUDA ist doch schon tot, bevor es überhaupt gelebt hat.
Ja, man sollte halt nicht jedes Wort auf die Goldwaage legen. :) Das bezog sich auf eine konkrete Aussage. Es geht einfach darum, dass einige Leute offensichtlich glauben, CUDA sei DIE API für Computing via GPU. Dem ist aber nicht so und wird wohl auch in Zukunft nicht der Fall sein, weder im Mainstream noch im professionellen Bereich. Klar kann ich mich da irren. Aber es gibt eindeutige und plausible Gründe, die ich hoffentlich verständlich dargelegt habe. Und da Programmierung kein Fremdwort für mich ist, kenne ich mich zumindest ein "kleines bisschen" mit dieser Materie aus. Dass CUDA in diversen Projekten auch in Zukunft verwendet wird, kann, wie gesagt, durchaus der Fall sein. Es ging mir schlichtweg um die Bedeutsamkeit für den gesamten Markt. Ob nun speziell Mainstream oder professioneller Bereich spielt dabei erstmal keine Rolle.

franzi3 schrieb:
Zum Thema "proprietär":
Hier wäre ich über eine Aufklärung deinerseits dankbar.
Proprietär bedeutet, dass eine Technologie geistiges Eigentum von Person X bzw Firma Y ist. Sicherlich hast du schon mal etwas von Urheberrecht gehört. Man kann damit also tun und lassen, was man will. Wie diese Technologie potenziellen Kunden zugänglich gemacht wird, hat damit erstmal überhaupt nichts zu tun. Man kann selbst den Quellcode offen legen, deshalb bleibt er trotzdem proprietär. Für mehr Details solltest du am besten eine entsprechende Informationsquelle aufsuchen. Im Gegensatz dazu stehen nicht-proprietäre bzw offene Technologien, idR standardisiert. ISO ist zB ein entsprechendes Standardisierungskommitee, genauso die Khronos Group. Bekannte Technologien bzw Standards, die offen und frei für jedermann zugänglich sind, sind ua die Programmiersprache C, OpenGL oder Hypertransport. Nur um mal einige zu nennen.

franzi3 schrieb:
Soweit ich mich mit CUDA beschäftigt habe ist es eine Standard C Umgebung mit standardisierten FFT-Bibliotheken und BLAS-Bibliotheken.
Nochmal, ich hatte es auch schon erwähnt. Von Standard in diesem Zusammenhang zu sprechen, ist nicht korrekt. Alles standardisierte zu C läuft unter ISO/IEC 9899. Aktuell ist Revision 1999, auch bekannt als C99. Dazu zählt CUDA nicht. CUDA ist einfach eine API (mit entsprechenden Entwicklungstools wie Compiler), welche auf der Programmiersprache C aufbaut. Oder besser gesagt, es ist eine Spracherweiterung zu C. Gleiches gilt übrigens auch für OpenCL. Deswegen wird aus CUDA noch lange kein offener Standard. Es ist und bleibt proprietär. Die Frage, die man sich als Entwickler nun stellt, "warum sollte ich auf proprietäre Technologie anstatt einem offenen Standard setzen?" Die Antwort kann man sich relativ einfach selbst beantworten. "Überhaupt nicht, solange ich keine klaren funktionellen Vorteile dadurch habe". Mal abgesehen von Sponsoring und dergleichen. :) Bisher scheinen OpenCL und CUDA aber zu ähnlich zu werden, als dass man da Vorteile hätte.
 
@gruffi

Ich muss schon schmunzeln. Du verstehst gewisse Äußerungen von dir durch andere zu sehr auf die Goldwaage gelegt?

Du hast eine "quasi" faktische Hypothese geäußert (Paradoxon?)
gruffi schrieb:
CUDA ist doch schon tot, bevor es überhaupt gelebt hat.
Egal ob das nun zutrifft oder nicht, lässt dies nicht viel Spielraum für Interpretation und ist nur logisch, dass andere Leser dies aufgreifen. Guck einfach mal, wieviele User dich dahingehend zitiert haben. So ein Satz polarisiert.

Nebenbei, sollten OpenCL und CUDA in der Tat so ähnlich werden, wie du vermutest, tut das Nvidia möglicherweise nicht viel Abbruch, könnten nämlich bisherige CUDA-Applikationen ohne größere Anpassungen unter OpenCL weiterlaufen und Investitionen in Tesla-Hardware somit nicht umsonst gewesen sein. Lediglich unter dem Image Aspekt wäre dies für Nvidia wohl ärgerlich, da es wie eine Niederlage aussieht.

Wird sich alles fügen.
 
Nein, eine Thread nutzt eine GPU. Falls man 2 nutzen will muss das der programmierer selber machen was recht kompliziert is falls der Algorithmus sich nicht einfach aussplitten laesst.
 
Zurück
Oben