Hypercell ein ] Hypercell aus ] Zeige Navigation ] Verstecke Navigation ]
c++.de  
   

Die mobilen Seiten von c++.de:
http://m.c-plusplus.de
Infos hier [BETA]

  
c++.de :: Rund um die Programmierung ::  OpenCL Tutorial     Zeige alle Beiträge auf einer Seite Auf Beitrag antworten
Autor Nachricht
anjohn
Mitglied

Benutzerprofil
Anmeldungsdatum: 16.04.2010
Beiträge: 39
Beitrag anjohn Mitglied 22:04:42 08.04.2012   Titel:   OpenCL Tutorial            Zitieren

Hallo liebe Community,

in der Uni haben wir openCL in der Vorlesung gehabt und ich finde es ziemlich interessant. Ich möchte das nun lernen!
Leider komme ich mit den Tutorials von NVIDIA auf keinen grünen Zweig. Es wird z.B. grundsätzlich nie erklärt, welche Header ich brauche und wie ich mein System überhaupt vorbereite.

Plattform: Win7 + Microsoft Visual Studio

Kann jemand OpenCL? Wie komme ich da gut rein? Bücher? Tolle Internetseiten?

Danke danke!

Viele Grüße,
anjohn
Dravere
Moderator

Benutzerprofil
Anmeldungsdatum: 13.06.2005
Beiträge: 8169
Beitrag Dravere Moderator 22:49:19 08.04.2012   Titel:   Re: OpenCL Tutorial            Zitieren

anjohn schrieb:
Leider komme ich mit den Tutorials von NVIDIA auf keinen grünen Zweig. Es wird z.B. grundsätzlich nie erklärt, welche Header ich brauche und wie ich mein System überhaupt vorbereite.

Treiber installieren, SDK installieren, <CL/cl.h> inkludieren. Natürlich musst du noch den Pfad zu diesem Verzeichnis angeben :)

anjohn schrieb:
Kann jemand OpenCL? Wie komme ich da gut rein? Bücher? Tolle Internetseiten?

Wenn du bis zum Sommer wartest, kann ich dir ein Tutorial liefern. Schreibe aktuell gerade an einem in Deutsch als Teil meiner Arbeit :)

Ich persönlich habe viel durch den Programming Guide und co von Nvidia, AMD Dokumentation, der Online API Referenz der Khronos Group und einigen englischen Blogs und co gelernt:
http://enja.org/category/tutorial/advcl/
http://www.codeproject.com/search.aspx?aidlst=1177
http://knol.google.com/k/ ....... nvidia-s-cuda-and-opencl#
http://www.bealto.com/mp-mandelbrot.html
http://opencl.codeplex.com/wikipage?title=OpenCL%20Tutorials
http://www.macresearch.org/opencl

Grüssli

_________________
Danke für die Hilfe, Antwort oder Meinung!
C++: Std-Lib Referenz
C# .Net: MSDN kennt die Antwort


Zuletzt bearbeitet von Dravere am 23:50:37 08.04.2012, insgesamt 2-mal bearbeitet
anjohn
Mitglied

Benutzerprofil
Anmeldungsdatum: 16.04.2010
Beiträge: 39
Beitrag anjohn Mitglied 00:42:11 12.04.2012   Titel:              Zitieren

Danke für die Links!
Also komme ich um ein SDK von Nvidia oder AMD nicht herum? Für OpenGL bzw GLSL haben wir in der Übung zur Vorlesung auch nur Header und Libs benötigt...

Dachte aufgrund der Herstellerunabhängigkeit von OpenCL brauche ich keinen Herstellerkram.

Kann es sein, dass ich kein SDK brauche, wenn ich OpenCL-Code als Textdatei einlese? Damit hätte ich dann keinen extra Compiler, den hatte ich für GLSL-Code ja auch nicht. Für einen Anfänger womöglich nicht empfehlenswert :D

Dravere schrieb:
Wenn du bis zum Sommer wartest, kann ich dir ein Tutorial liefern. Schreibe aktuell gerade an einem in Deutsch als Teil meiner Arbeit :)
Grüssli

Klar kann ich warten, wird ja nicht schlecht :)
Über ein deutsches Tutorial würde ich mich unglaublich freuen! Sowas gibts ja bislang garnicht!

Darf ich fragen, was das für eine Arbeit ist?

Viele Grüße,
anjohn
Dravere
Moderator

Benutzerprofil
Anmeldungsdatum: 13.06.2005
Beiträge: 8169
Beitrag Dravere Moderator 01:07:10 13.04.2012   Titel:              Zitieren

anjohn schrieb:
Also komme ich um ein SDK von Nvidia oder AMD nicht herum? Für OpenGL bzw GLSL haben wir in der Übung zur Vorlesung auch nur Header und Libs benötigt...

Dachte aufgrund der Herstellerunabhängigkeit von OpenCL brauche ich keinen Herstellerkram.

Naja, du brauchst ja zumindest einen Treiber, welcher OpenCL implementiert und der wird vom Hersteller geliefert. Du kannst aber grundsätzlich mit jedem SDK entwickeln, ob AMD, Nvidia oder Intel spielt da keine Rolle. Der Aufbau ist immer derselbe. Es gibt einen Ordner CL und darin befindet sich die Headerdatei cl.h, welche man auch direkt von Khronos beziehen kann. Also die Headerdatei cl.h ist standardisiert.

anjohn schrieb:
Kann es sein, dass ich kein SDK brauche, wenn ich OpenCL-Code als Textdatei einlese? Damit hätte ich dann keinen extra Compiler, den hatte ich für GLSL-Code ja auch nicht. Für einen Anfänger womöglich nicht empfehlenswert

Du benötigst keinen anderen Kompiler. Das ist alles C89 und C++03 kompatibel. Der Code, welcher dann auf dem Device läuft, wird zur Laufzeit auf dem Zielrechner kompiliert. Jeder OpenCL Treiber muss dazu einen entsprechenden OpenCL C Kompiler mitliefern.

Vielleicht verwirrt dich hier der Begriff SDK ein wenig. OpenCL wird bei Nvidia, AMD und Intel grundsätzlich als Teil eines umfangreicheren Paketes geliefert. Bei Nvidia kommt halt noch CUDA mit, zudem der Nvidia Profiler, der nvcc, usw. Brauchst du für OpenCL allerdings alles nicht. Du brauchst nur die OpenCL Bibliothek und die Headerdateien aus dem SDK.

anjohn schrieb:
Darf ich fragen, was das für eine Arbeit ist?

Meine Bachelor Diplomarbeit. Hauptziel ist es eine Lagrangian Simulation von OpenFOAM auf die Graphikkarte zu verlagern. Ein Masterstudent hat einen Prototyp zuerst mal in CUDA implementiert. Letztes Semester habe ich diesen nach OpenCL portiert und dieses Semester geht es um weitere Optimierungen und Erweiterungen. Und ein Teil dieser Arbeit soll halt auch ein Tutorial zu OpenCL sein :)

Grüssli

_________________
Danke für die Hilfe, Antwort oder Meinung!
C++: Std-Lib Referenz
C# .Net: MSDN kennt die Antwort
SideWinder
Moderator

Benutzerprofil
Anmeldungsdatum: 19.10.2001
Beiträge: 18703
Beitrag SideWinder Moderator 01:48:52 13.04.2012   Titel:              Zitieren

Ich hab damals im Rahmen meiner Bachelorarbeit auch ein CUDA-Tutorial geschrieben und OpenCL damit verglichen.

Das Buch Programming Massively Parallel Processors (allgemein sehr empfehlenswert) hat ein Kapitel über OpenCL das ich sehr mochte. Klar, der Rest ist über CUDA, aber die Techniken sind ja in beiden Sprachen sehr ähnlich.

MfG SideWinder

_________________
http://www.dilbert.com/2009-06-11/
http://www.dilbert.com/2009-06-14/
Andreas XXL
Mitglied

Benutzerprofil
Anmeldungsdatum: 12.01.2004
Beiträge: 1011
Beitrag Andreas XXL Mitglied 11:08:21 13.04.2012   Titel:              Zitieren

Ich bin mit dem Buch "OpenCL Programming Guide"

http://www.amazon.de/Open ....... ab-Munshi/dp/0321749642#_

gut zurecht gekommen. Es ist aber in englisch.
nachtfeuer
Moderator

Benutzerprofil
Anmeldungsdatum: 08.04.2010
Beiträge: 1432
Beitrag nachtfeuer Moderator 03:11:15 14.04.2012   Titel:              Zitieren

Oh Gott...und WAS IS DAAS??? http://developer.amd.com/ ....... enCLSimplewithHaskell.pdf
;)

@SideWinder
Danke, das Buch das du empfiehlst, besorg ich mir gleich und das hier http://www.amazon.de/GPU- ....... ations-Gpu/dp/0123849888/
gleich noch mit dazu :leak:

_________________
HhxV9rU5D8o236dZF7bMQ4Dys1_TuUmI4mZM.d2qD15ERi_0dgcHP0UViL3e-4WUi0nXXNwDYqA10sLEgjBVtdhE
tpehI7qHRZESiO_7LhPZFMQWNoiVrJDsEGD26n.H0lV8wOwYAe8UsbUJe5m65NyPaghnSoMzROo2gJ6nTeVSkxLk
a6hvNe11r9U7xddV9mq6NEi_V0C9k4augEKVSW3PV8LgCYum7KaXc9Ijq_ZT7zhspI.=-
c++.de :: Rund um die Programmierung ::  OpenCL Tutorial   Auf Beitrag antworten

Zeige alle Beiträge auf einer Seite




Nächstes Thema anzeigen
Vorheriges Thema anzeigen
Sie können Beiträge in dieses Forum schreiben.
Sie können auf Beiträge in diesem Forum antworten.
Sie können Ihre Beiträge in diesem Forum nicht bearbeiten.
Sie können Ihre Beiträge in diesem Forum nicht löschen.
Sie können an Umfragen in diesem Forum nicht mitmachen.

Powered by phpBB © 2001, 2002 phpBB Group :: FI Theme

c++.de ist Teilnehmer des Partnerprogramms von Amazon Europe S.à.r.l. und Partner des Werbeprogramms, das zur Bereitstellung eines Mediums für Websites konzipiert wurde, mittels dessen durch die Platzierung von Werbeanzeigen und Links zu amazon.de Werbekostenerstattung verdient werden kann.

Die Vervielfältigung der auf den Seiten www.c-plusplus.de, www.c-plusplus.info und www.c-plusplus.net enthaltenen Informationen ohne eine schriftliche Genehmigung des Seitenbetreibers ist untersagt (vgl. §4 Urheberrechtsgesetz). Die Nutzung und Änderung der vorgestellten Strukturen und Verfahren in privaten und kommerziellen Softwareanwendungen ist ausdrücklich erlaubt, soweit keine Rechte Dritter verletzt werden. Der Seitenbetreiber übernimmt keine Gewähr für die Funktion einzelner Beiträge oder Programmfragmente, insbesondere übernimmt er keine Haftung für eventuelle aus dem Gebrauch entstehenden Folgeschäden.