Anfänger braucht Hilfe mit PyOpenCL

mit matplotlib, NumPy, pandas, SciPy, SymPy und weiteren mathematischen Programmbibliotheken.
Antworten
Conax
User
Beiträge: 5
Registriert: Montag 4. Juni 2018, 22:40

Montag 4. Juni 2018, 23:03

Nachdem ich die Pakete pyopencl sowie numpy installiert hatte wollte ich mal den Beispielcode aus diesem Tutorial ausführen(https://cyrille.rossant.net/pyopencl-on ... out-a-gpu/) allerdings treten bei mir seltsame Fehlermeldungen auf.

Bild

Anbei noch ein paar Infos zum System:
OS: Windows 7 64bit

Python Version: python-3.6.5-amd64

cffi-1.11.5-cp36-cp36m-win_amd64
Mako-1.0.7-py2.py3-none-any
numpy-1.14.3+mkl-cp36-cp36m-win_amd64
pycparser-2.17-py2.py3-none-any
pyopencl-2018.1.1+cl21-cp36-cp36m-win_amd64
pytools-2018.4-py2.py3-none-any

Intel SDK da APU von Intel: intel_sdk_for_opencl_2017_7.0.0.2567

Ich will einfach mal ein paar Beispielprogramme zum laufen bekommen und ein paar Einsteigertutorials zum Thema PyOpenCL durch arbeiten. Vielleicht hat ja der ein oder andere hier Erfahrung damit. Leider habe ich bisher nur Erfahrung in Java und wollte jetzt mal zu Python wechseln weil es hier eben diese Möglichkeit gibt durch PyOpenCL Anwendungen stark zu skalieren.
__deets__
User
Beiträge: 3117
Registriert: Mittwoch 14. Oktober 2015, 14:29

Montag 4. Juni 2018, 23:28

Und hast du mal probiert, was dir in der Fehlermeldung geraten wird zu tun, damit du mehr Informationen bekommst?
Conax
User
Beiträge: 5
Registriert: Montag 4. Juni 2018, 22:40

Montag 4. Juni 2018, 23:44

__deets__ hat geschrieben:
Montag 4. Juni 2018, 23:28
Und hast du mal probiert, was dir in der Fehlermeldung geraten wird zu tun, damit du mehr Informationen bekommst?
Bild
__deets__
User
Beiträge: 3117
Registriert: Mittwoch 14. Oktober 2015, 14:29

Montag 4. Juni 2018, 23:50

Hm. Angeblich nur eine Warnung. Hast du andern Code der die nicht wirft? Der Python Fehler sieht schlecht aus weil er definitiv ein Bug ist. Ob der ein harmloser Folgefehler von „es gab ne Warnung, und ich mach eh Schluss“ ist, oder schlimmer, könnte man durch fixen der Warnung rausfinden.
__deets__
User
Beiträge: 3117
Registriert: Mittwoch 14. Oktober 2015, 14:29

Montag 4. Juni 2018, 23:51

Und ein Nachtrag: wenn du kannst, bitte keine Screenshots. Das ist sehr schwer entzifferbar. Und wenig. Copy und Paste geht auch im Terminal. Musst du ggf einstellen, zusammen mit einer längeren History.
Conax
User
Beiträge: 5
Registriert: Montag 4. Juni 2018, 22:40

Dienstag 5. Juni 2018, 23:00

Ok danke schon mal fürs Feedback. Hab jetzt auch mal folgenden Code getestet:
https://documen.tician.de/pyopencl/

Bekomme aber trotzdem ne Compilerwarnung.

Code: Alles auswählen

C:\Users\Stefan_2\AppData\Local\Programs\Python\Python36>python demo.py
Choose platform:
[0] <pyopencl.Platform 'Intel(R) OpenCL' at 0x31705d0>
[1] <pyopencl.Platform 'Experimental OpenCL 2.1 CPU Only Platform' at 0x3abee80>

Choice [0]:0
Choose device(s):
[0] <pyopencl.Device 'Intel(R) HD Graphics 520' on 'Intel(R) OpenCL' at 0x33a1c2
0>
[1] <pyopencl.Device 'Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz' on 'Intel(R) Ope
nCL' at 0x328e870>
Choice, comma-separated [0]:0
Set the environment variable PYOPENCL_CTX='0:0' to avoid being asked again.
C:\Users\Stefan_2\AppData\Local\Programs\Python\Python36\lib\site-packages\pyope
ncl\cffi_cl.py:1517: CompilerWarning: Built kernel retrieved from cache. Origina
l from-source build had warnings:
Build on <pyopencl.Device 'Intel(R) HD Graphics 520' on 'Intel(R) OpenCL' at 0x3
3a1c20> succeeded, but said:

fcl build 1 succeeded.
bcl build succeeded.

  warn(text, CompilerWarning)
[0. 0. 0. ... 0. 0. 0.]
0.0

C:\Users\Stefan_2\AppData\Local\Programs\Python\Python36>
__deets__
User
Beiträge: 3117
Registriert: Mittwoch 14. Oktober 2015, 14:29

Dienstag 5. Juni 2018, 23:10

Na gut, aber das is ja “nur” eine Warnung. Läuft das Ding dann?
Conax
User
Beiträge: 5
Registriert: Montag 4. Juni 2018, 22:40

Mittwoch 6. Juni 2018, 23:16

__deets__ hat geschrieben:
Dienstag 5. Juni 2018, 23:10
Na gut, aber das is ja “nur” eine Warnung. Läuft das Ding dann?
Was oben steht ist der komplette Output und bin wie gesagt Python Beginner aber dachte eher da werden Zufallszahlen ausgegeben statt Nullen oder irgend eine Summe (ganz unten ist ja noch eine Berechnung). Auf der verlinkten Seite geht ja leider nicht hervor was das Programm ausgeben soll.
Benutzeravatar
ThomasL
User
Beiträge: 248
Registriert: Montag 14. Mai 2018, 14:44
Wohnort: Kreis Unna NRW

Donnerstag 7. Juni 2018, 06:12

also das Tutorial ist von September 2012, da hat sich einfach in der Zwischenzeit etliches geändert an PyOpenCL
es wird ja noch am Code gearbeitet, https://github.com/inducer/pyopencl
Ich bin Pazifist und greife niemanden an, auch nicht mit Worten.
Für alle meine Code Beispiele gilt: "There is always a better way."
Conax
User
Beiträge: 5
Registriert: Montag 4. Juni 2018, 22:40

Donnerstag 7. Juni 2018, 22:06

Ich habe fast die Vermutung das ganze liegt am C Compiler. Es war nämlich so als ich mit pip besagte Pakete(siehe Liste oben) installiert hatte kam irgendwann einmal eine Fehlermeldung (irgend ein Kompilierungsfehler). Da ich nicht gleich die ganze Welt mit meinen Problemen belästigen wollte hatte ich erstmal gegoogelt und die Antwort war simpel "pyopencl benötigt einen C Compiler weil der Aufbau wohl in etwa so aussieht Python -> C Code -> OpenCL Code". Unter Linux hätte ich jetzt einfach das Paket "gcc" installiert unter Windows war es etwas umständlicher aber über den Umweg mit Cygwin klappte auch das (zumindest liesen sich dann die Pakete problemlos installieren.

https://github.com/inducer/pyopencl
Hier wird aber der Weg über "mingwpy" empfohlen. Dafür müsste ich erstmal Anaconda installieren und "mingwpy" wird auch nicht für Python Version 3.6 angeboten.

Irgendwie ist das alles bisher sehr unbefriedigend. Meine Entwicklungsumgebung sollte ohne Probleme laufen sonst hat das ganze keinen Zweck. Nutzen alle PyOpenCL Programmierer Linux und AMD Hardware? Kann ich mir fast nicht vorstellen denn gerade diese Flexibilität ist doch das Argument schlechthin gegenüber CUDA.
__deets__
User
Beiträge: 3117
Registriert: Mittwoch 14. Oktober 2015, 14:29

Donnerstag 7. Juni 2018, 23:30

Windows ist das Problem. War es schon immer. Wenn du im MS Ökosystem unterwegs bist, ist alles gut. Java ist auch ok. Aber alles, was eine C Compiler braucht, saugt.

Es wird aber besser. Du kannst Visual Studio Express installieren, und dann hast du den VC. Das ist üblicherweise dem gefrikel mit MinGW etc überlegen.
Benutzeravatar
ThomasL
User
Beiträge: 248
Registriert: Montag 14. Mai 2018, 14:44
Wohnort: Kreis Unna NRW

Freitag 8. Juni 2018, 06:15

Als ich anfing mich für Cython zu interessieren hatte ich ähnliche Probleme.
ich bin dann irgendwann hier gelandet https://wiki.python.org/moin/WindowsCompilers
und habe mal diesen Link gewählt https://www.visualstudio.com/downloads/ ... tudio-2017
Dort nicht eines der Visual Studio Pakete wählen, sondern etwas runter scrollen und unter Tools
Build Tools für Visual Studio 2017 https://www.visualstudio.com/de/thank-y ... ols&rel=15 downloaden.
Installieren und irgendwann kommt ein riesiges Auswahlmenü wo man die Komponenten auswählen kann.
Kann atm das nicht aufrufen, eventuell schau ich mal heute nachmittag was ich das gewählt habe.
Ich bin Pazifist und greife niemanden an, auch nicht mit Worten.
Für alle meine Code Beispiele gilt: "There is always a better way."
Antworten