News Khronos gibt OpenCL-1.0-Spezifikationen bekannt

Generell ist eine Schnittstelle ein (definierter) Interaktionspunkt zwischen zwei Systemen.

zB deine Tastertur ist eine Schnittstelle zwischen dir und deinem Rechner. Wie auch der Monitor usw.

Hier sind Schnittstellen für die Software gemeint.

Wenn jemand etwas Programmieren will, dann will er sich nicht mit den Eigenarten der einzelnen Grafikkarten beschäftigen.
Beispiel:
bei GPU A musst du eine Texttur so laden. Bei GPU B allerdings so. Letzte Generation völlig anders, da andere Architektur. Bei anderen Herstellern dann wieder völlig anders usw.

Bei der (Software) Schnittstelle wird eben ein Befehl genommen, der dann je nach Hardware umgesetzt wird.
Beispiel:
CUDA wird (ich kenne es nicht) zb einen Befehl haben um Daten zu laden. Diesen Befehl kann man nutzen ohne das man wissen muss wie das die einzelnen Grafikkarten umsetzen. CUDA nimmt also meinen Befehl entgegen und setzt diesen in eine Befehlsfolge um die für die jeweilige Grafikkarte passend ist.

Um zur Tastertur zurück zu kommen:
Du musst nur die Tasten kennen. Das ist die Schnittstelle. Wie das dann intern umgesetzt wird kann dir egal sein. Du wirst das selbe Ergebnis haben egal ob die Tastertur per USB, PS2 oder sonstwie angeschlossen ist usw.
 
Nicht wirklich.

Eine Schnittstelle ist eben ein Punkt an dem sich (hier zwei Programme) Systeme austauschen.
Das ist dann eher eine Beschreibung welche Befehle ein Programm in welcher Form annimmt und wie es was in welcher Form zurückgibt.

Nimm zb einen Geldautomaten.
An seiner Schnittstelle mit dir (dem Tastenfeld + Bildschirm) nimmt er nur eine bestimmte Art von Befehlen entgegen. Wenn du ihm sagst: "Computer: 50€" wird er nicht reagieren, da seine Schnittstelle das nicht unterstützt. Er unterstützt nur Tasteneingaben auf dem Tastenfeld. Eine Krankenkassenkarte im Kartenslot akzeptiert er auch nicht. Dort will er eine Geldkarte. Wenn du der Schnittstelle Eingaben gemäß der Spezifikation gibst, dann gibt er dir Geld.

Schnittstellen ermöglichen also den Austausch von Informationen in einer geregelten Art und Weise. Sie sagen also: wenn du etwas von mir willst, dann sag es in folgender Weise. Ich werde dir dann in dieser und jener Weise antworten.
 
Hmm ok.

Ich versuch das jetzt mal auf CUDA anzuwenden.
Man schreibt ein Programm das etwas auf der GPU machen soll in C oder OpenCL. CUDA kennt den Befehl und "sagt" der jeweiligen GPU was zu tun ist. Hab ich das jetzt richtig verstanden?

Schonmal danke für die vielen Erklärungen ;)
 
Zurück
Oben