• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Viele hassen ihn, manche schwören auf ihn, wir aber möchten unbedingt sehen, welche Bilder Ihr vor Eurem geistigen Auge bzw. vor der Linse Eures iPhone oder iPad sehen könnt, wenn Ihr dieses Wort hört oder lest. Macht mit und beteiligt Euch an unserem Frühjahrsputz ---> Klick

OpenCL - generelle Frage

blutaermer

Ingrid Marie
Registriert
31.12.03
Beiträge
273
Gleich mal vorne weg: das hat jetzt nix mit der OpenCL Implementierung in 10.6 zu tun! Es geht mir nicht darum NDAs zu brechen!

Vielleicht hat sich hier mal jemand mit OpenCL auseinander gesetzt und kann mir weiterhelfen. Bei OpenCL gibt es ja diese kernels, die sich spaeter auf die Hardware verteilen koennen und das Hauptprogramm, dass so ein bisschen fuer die Organisation sorgt.

Wenn man sich die Header-Dateien von der Khronosgruppe runterlaed, dann kann man zumindest letzteres uebersetzen (nicht linken etc, ist ja klar). Zumindest mit den Beispielen der Khronosgruppe funktioniert das.

Bei kernel-Implementierungen sieht das leider nicht so aus . Da helfen die Header Dateien nichts und der Compiler scheitert an Syntax wie
Code:
__kernel

Sind die entsprechenden Header noch nicht freigegeben? Oder braucht man fuer die kernel immer eine benutzbare Laufzeitumgebung, weil die kernel nur zur laufzeit uebersetzt werden? Ich dachte eigentlich die kernel muessen nicht in seperate Dateien - leider finde ich in den Spezifikationen nichts.
 

Jamsven

London Pepping
Registriert
21.11.07
Beiträge
2.046
Ich hab mich mit OpenCL noch gar nicht beschäftigt, ich denke aber dass es noch abstrahiert wird.
Vielleicht in "Grand Central"...
 

MacApple

Schöner von Bath
Registriert
05.01.04
Beiträge
3.652
OpenCL und „Grand Central” sind zwei verschiedene Paar Schuhe.

MacApple
 

quarx

Brauner Matapfel
Registriert
17.04.05
Beiträge
8.444
So wie ich OpenCL verstehe, werden die Kernel erst zur Laufzeit durch den OpenCL-Compiler in grafikkartenspezifischen Code übersetzt. Einen OpenCL-Compiler gibt es aber leider noch nirgends zum Herunterladen (korrigiere mich ggf. wer), sowas kommt frühestens mit Snow Leopard.
 

blutaermer

Ingrid Marie
Registriert
31.12.03
Beiträge
273
@quarx:

sicher hast du recht, dass die kernel erst zur Laufzeit uebersetzt werden, sonst muesste man fuer jede vorstellbare Hardwarekombi eine eigenes Binaerfile erzeugen.

Ich vermute mal, dass die kernel in die LLVM IR uebersetzt werden und dann JIT auf jedem Rechner fuer die vorhandene Hardware.

Aber egal wie das nun uebersetzt wird und wann : es muss uebersetzt werden. LLVM und Clang sind sicher ganz heisse Kandidaten. Und ich habe es mit LLVM auch schon versucht, aber es muss ja zwangslaeufig an den syntaktischen Huerden scheitern - oder? woher soll der Compiler auch Syntax wie __kernel kennen?

Vor Weihnachten hatte auf der LLVM Liste einer von tungsten graphics angekuendigt, das innerhalb von einer Woche ein OpenCL Frontend erscheint.

Ich vermute mal, dass die Uebernahme von Tungstengraphics durch Vmware einen Strich durch Rechnung derer machte, die darauf hofften ein bisschen mit OpenCL zu spielen.

Aus dem Land der Mythen: Auch Leute die Snow Leopard haben, scheinen ein Problem damit zu haben etwas OpenCL-iges zum Laufen zu bekommen (obwohl die Infrastruktur vermutlich vorhanden ist)
 

quarx

Brauner Matapfel
Registriert
17.04.05
Beiträge
8.444
Das hört sich alles sinnvoll an. Mit OpenCL beschäftige ich mich überhaupt erst seit ein paar Tagen, aber bin bereits nach kurzer Recherche ganz heiß auf die Möglichkeiten im Hinblick auf Scientific GPU Computing :). Angeblich soll sich OpenCL vom Aufbau her ja nicht so sonderlich von CUDA unterscheiden, da könnte man schonmal reinschnuppern.
 

MacApple

Schöner von Bath
Registriert
05.01.04
Beiträge
3.652

Jamsven

London Pepping
Registriert
21.11.07
Beiträge
2.046
Na ja, OpenCL ist eine Programmiersprache, „Grand Central” ist eine „Betriebssystemfunktion”. „Grand Central” dürfte es relativ egal sein, aus welcher Programmiersprache der Code generiert wurde, den es auf die Recheneinheiten verteilt.

MacApple
Ach so ok ich dachte das GC ein Framework ist, dann ist das ganz klar.
 

blutaermer

Ingrid Marie
Registriert
31.12.03
Beiträge
273
OpenCL bedingt ja eine Laufzeitumgebung, die den Code fuer die zusaetzlichen Recheneinheiten (GPU) uebersetzt. Und ich denke mal das ist Teil von GC.
Andererseits braucht GC Code, der auf allen moeglichen Recheneinheiten (abseits der CPU) laeuft. Und das ist in diesem Fall OpenCL.
Ein bisschen gehoert das schon zusammen.

Schade das es momentan anscheinend keine Moeglichkeit gibt, OpenCL Kernel zu uebersetzen :(

BTW: es gibt seit kurzem ein wiki, vielleicht kommt da in der naechsten Zeit mal was gescheites rueber (ich glaubs eher nicht)

http://openclwiki.wetpaint.com/
 

Amin Negm-Awad

Süsser Pfaffenapfel
Registriert
01.03.07
Beiträge
665
http://llvm.org/devmtg/2008-08/
Chris Lattner, Apple, Inc.
Steve Naroff, Apple, Inc.
Dan Gohman, Apple, Inc.
Evan Cheng, Apple, Inc.
Nate Begeman, Apple, Inc.
Ted Kremenek, Apple, Inc.

6 von insgesamt 13.
Zufälle gibt's …
 

blutaermer

Ingrid Marie
Registriert
31.12.03
Beiträge
273
leider hilft diese erkenntnis nicht beim uebersetzen der kernel.
es gibt einen netten ansatz die namensgebung der einzelnen bestandteile zu erklaeren:
OpenCL, Clang, Chris Lattner ;)

zu meinem eigentlichen problem: mir wuerde llvm bitcode fuer ein paar beispielkernel schon reichen. ich will ja gar nichts auf einer gpu oder sonstwo laufen lassen.
 

quarx

Brauner Matapfel
Registriert
17.04.05
Beiträge
8.444
Bei der Khronos Group gibt's übrigens ein interessantes PDF zu OpenCL zum Runterladen. Da steht etwas zum Zeitplan drin: im März will die Khronos Group eine Testsuite für standardkonforme OpenCL-Umsetzungen fertigstellen, was für die OpenCL-Umsetzung auf anderen Plattformen als OS X (z.B. Linux) wichtig sein könnte.
 
  • Like
Reaktionen: Jamsven

James Grieve

Holländischer Prinz
Registriert
15.04.07
Beiträge
1.866
Bringt Open CL eigentlich nur was bei den fetten Grafikkarten des Mac Pros oder des iMacs etwas oder haben auch Besitzer eines MacBooks (mit Intel-Grafik :eek: ) etwas davon?
 

blutaermer

Ingrid Marie
Registriert
31.12.03
Beiträge
273
Spielt denn hier niemand mit OpenCL?
Also wie man ein OpenCL-kernel uebersetzt, wuerde mich schon brennend interessieren.
Zur Laufzeit uebersetzt es doch Apple auch in LLVM-IR, also ist doch der Compiler da. Ich finde ihn nur nicht :( Vielleicht weil ich mich mit Xcode zu wenig auskenne ...

Von mir aus auch auf der Kommandozeile (clang, llvm-gcc).