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  
Gehen Sie zu Seite 1, 2, 3, 4, 5, 6, 7  Weiter
  Zeige alle Beiträge auf einer Seite
Auf Beitrag antworten
Autor Nachricht
ReduX
Mitglied

Benutzerprofil
Anmeldungsdatum: 07.06.2007
Beiträge: 194
Beitrag ReduX Mitglied 05:16:33 02.01.2010   Titel:   OpenCL            Zitieren

Morgen,
Habe ich das Richtig verstanden, dass man mit OpenCL Berrechnungen auf so ziemlich allen Grafikkarten anstellen kann, also die GPU für Rechenoperationen nutzen?

Wenn ja, was haltet ihr davon? Habt ihr schon bessere Libs benutzt? Möchte mich eventuell in diese Lib einarbeiten, da ja auf Mathematischer Ebene immer mehr mit GPU's gearbeitet wird.

MFG ReduX
macuser__
Unregistrierter




Beitrag macuser__ Unregistrierter 23:48:43 02.01.2010   Titel:              Zitieren

auf http://www.macresearch.org/opencl gibt es ein Videotutorial zu opencl. Ich würde dir einfach mal empfehlen dir die erste Episode anzusehen, auch wenn du keinen mac nutzt. Geht dabei eigentlich kaum um den Mac, außer das opencl darauf läuft. (Also in der 1. Episode)
rapso
Moderator

Benutzerprofil
Anmeldungsdatum: 17.06.2002
Beiträge: 7727
Beitrag rapso Moderator 01:28:20 03.01.2010   Titel:              Zitieren

opencl ist keine sprache um GPUs zu programmieren, sondern eine um compute programme zu schreiben die hardware unabhaengig sind. opencl programme kannst du auf verschiedenen platformen laufen lassen. das mandelmaenchen was ich portiert habe skaliert in etwa

x86 - 100%
cell - 10x (1000%)
gtx260 - 100x

um es auf x86 laufen zu lassen kannst du das streamsdk von amd ausprobieren
fuer cell gibt es bei ibm libs
fuer geforce kannst du dir das nv-sdk ziehen

alle haben opencl samples dabei.

_________________
Kilo Byte=1000,Kilobyte=1024 ANSI/IEEE Standard 1084-1986
-Mod im Spiele-/Grafikprogrammierung| rapsoo@hotmail.com | #dionysos irc.quakenet.org | amazon stole my PS3 :(
DarkShadow44
Mitglied

Benutzerprofil
Anmeldungsdatum: 12.06.2009
Beiträge: 517
Beitrag DarkShadow44 Mitglied 17:59:16 06.01.2010   Titel:              Zitieren

Müsste letztendlich egal sein, mit welchem SDK du kompilierst, da OpenCL plattformunabhängig ist.

Bei Nvidia gibt's übrigens ab GeForce 8 auch CUDA, mit dem man auch Berechnungen auf der GPU durchführen kann. ;)

Aber das wird vermutlich nur auch Grafikkarten von Nvidia funktionieren...
Vernunftmensch
Mitglied

Benutzerprofil
Anmeldungsdatum: 17.06.2012
Beiträge: 25
Beitrag Vernunftmensch Mitglied 14:10:20 17.06.2012   Titel:   OpenCl und Microsoft C++ Visual Studio 2010 Express            Zitieren

Habe schon in der Uni gelernt, wie man auf Kerne parallelisiert. Z.B. beim Berechnen der Zahl Pi, bei der man auch kritische Bereiche beachten muß.

Aktuell versuche ich den Übergang vom Hobbyprogrammierer zum professionellen Programmierer zu schaffen. Bei mir ist Microsoft C++ Visual Studio 2010 Express bereits installiert und ich habe ein Projekt, das ich darin parallelisieren möchte.

Was muß man nachinstallieren und wie, um OpenCl darunter nutzen zu können?

_________________
Wer den C64er nicht ehrt, der ist des x64ers nicht wert.
dot
Mitglied

Benutzerprofil
Anmeldungsdatum: 20.05.2004
Beiträge: 5618
Beitrag dot Mitglied 14:35:00 17.06.2012   Titel:              Zitieren

Du brachst das entsprechende SDK deines Grafikkartenherstellers...

_________________
one point of view will never reveal the entire scene.
Vernunftmensch
Mitglied

Benutzerprofil
Anmeldungsdatum: 17.06.2012
Beiträge: 25
Beitrag Vernunftmensch Mitglied 14:55:47 17.06.2012   Titel:              Zitieren

Danke, probiere ich aus.

1. Ist es richtig, daß sowohl GPUs und CPUs, je nach vorliegender Technik, genutzt werden?

2. Was ist, wenn ich jetzt SDK runterlade? Also ich habe eine NVIDIA GEFORCE* GT 540M CUDA TM . 2GB in meinem Profiprogrammiernotebook. Würde das fertige Programm bei anderen Grafikkarten wenigstens noch die CPU-Kerne alle berücksichtigen?

3. Kann man durch Herunterladen einiger weiterer SDKs das eigene Programm so ausstatten, daß es entsprechend vielseitiger funktioniert?

_________________
Wer den C64er nicht ehrt, der ist des x64ers nicht wert.
Dravere
Moderator

Benutzerprofil
Anmeldungsdatum: 13.06.2005
Beiträge: 8178
Beitrag Dravere Moderator 17:39:09 17.06.2012   Titel:              Zitieren

Vernunftmensch schrieb:
1. Ist es richtig, daß sowohl GPUs und CPUs, je nach vorliegender Technik, genutzt werden?

Du kannst beide nutzen, aber das musst du selber machen, implementieren und vor allem eine kluge Möglichkeit finden, wie man die Arbeit am besten auf diese verteilt.

Vernunftmensch schrieb:
2. Was ist, wenn ich jetzt SDK runterlade? Also ich habe eine NVIDIA GEFORCE* GT 540M CUDA TM . 2GB in meinem Profiprogrammiernotebook. Würde das fertige Programm bei anderen Grafikkarten wenigstens noch die CPU-Kerne alle berücksichtigen?

Musst du dafür sorgen. OpenCL ist Herstellerunabhängig, wenn du es richtig umsetzt, wird es auch eine AMD Graphikkarte mitverwenden, falls eine oder mehrere vorhanden sind.

Vernunftmensch schrieb:
3. Kann man durch Herunterladen einiger weiterer SDKs das eigene Programm so ausstatten, daß es entsprechend vielseitiger funktioniert?

Nein, du benötigst nur die entsprechenden Treiber auf dem Zielcomputer. OpenCL hat das ICD (Installable Client Driver) Konzept:
http://www.khronos.org/re ....... nsions/khr/cl_khr_icd.txt

Die Graphikkarten installieren ihre OpenCL Treiber heutzutage automatisch und registrieren sie korrekt. Daher musst du da nichts machen, nur die Plattform (oder mehrere) auswählen und die Devices ansprechen, bzw. ihnen was zum Arbeiten geben.

Bei den CPUs sieht das anders aus, da sind die OpenCL Treiber meistens nicht vorhanden auf dem Zielcomputer. Die Frage ist allerdings sowieso, ob es sich überhaupt lohnt die CPU miteinzubeziehen. Die GT 540M kann, glaub ich, 96 Threads physisch parallel verarbeiten. Ein Intel i7 mit HyperThreading dagegen maximal nur 8. Eine gute Desktopgraphikkarte kann sogar bis zu 512 und mehr Threads physisch parallel verarbeiten.


Und warum buddelst du so alte Threads raus, statt einen neuen zu eröffnen?

Grüssli

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

Benutzerprofil
Anmeldungsdatum: 20.05.2004
Beiträge: 5618
Beitrag dot Mitglied 21:43:42 17.06.2012   Titel:              Zitieren

Dravere schrieb:
Eine gute Desktopgraphikkarte kann sogar bis zu 512 und mehr Threads physisch parallel verarbeiten.

Seit die GTX 680 heraußen ist, stehen wir bei 1536 Threads ;)

_________________
one point of view will never reveal the entire scene.
Dravere
Moderator

Benutzerprofil
Anmeldungsdatum: 13.06.2005
Beiträge: 8178
Beitrag Dravere Moderator 00:16:21 18.06.2012   Titel:              Zitieren

dot schrieb:
Dravere schrieb:
Eine gute Desktopgraphikkarte kann sogar bis zu 512 und mehr Threads physisch parallel verarbeiten.

Seit die GTX 680 heraußen ist, stehen wir bei 1536 Threads ;)

Und ich musste für meine Arbeit noch zwei GTX 560 Ti mit je 384 Cores verwenden - schweinerei. Ich will zwei GTX 680! :D
Der Aktuelle Code ist 50x schneller als auf der CPU (i7 2600), ich frage mich, wie schnell er mit zwei GTX 680 wäre :leak:

Grüssli

_________________
Danke für die Hilfe, Antwort oder Meinung!
C++: Std-Lib Referenz
C# .Net: MSDN kennt die Antwort
c++.de :: Rund um die Programmierung ::  OpenCL  
Gehen Sie zu Seite 1, 2, 3, 4, 5, 6, 7  Weiter
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.