Wissenschaftliches Rechnen mit Python mit modernen GPUs mit doppelter Präzision

14

Hat hier jemand Double Precision Scientific Computing mit GPUs der neuen Generation (z. B. K20) über Python verwendet?

Ich weiß, dass sich diese Technologie rasant weiterentwickelt, aber was ist derzeit der beste Weg, dies zu tun? Die GPU ist für die populärwissenschaftlichen Python-Bibliotheken numpy und scipy nicht verfügbar, und ich wollte theano verwenden, aber es scheint, dass für die GPU nur die float32-Präzision verwendet wird. Ich bin mir bewusst, dass Google Suchergebnisse für Python GPU bereitstellen kann, aber ich hoffe auf mehr Einblicke als eine Liste von Projekten, die sich möglicherweise auf dem Weg befinden, ihren Hersteller zu treffen oder nicht.

Klipper
quelle
4
Wenn ich das brauchte, würde ich wahrscheinlich PyOpenCL verwenden . Die GPU-Codierung für allgemeine Zwecke ist immer noch recht niedrig (versuchen Sie es mit der OpenCL C-Schnittstelle, es ist schwierig). PyOpenCL scheint jedoch so viel wie möglich zu abstrahieren und eine beträchtliche Dynamik zu haben.
Boyfarrell
1
Die "neue Generation" sollte der früheren Tesla-Serie mit doppelter Präzision ziemlich ähnlich sein, wobei die einzige Einschränkung wahrscheinlich die CUDA / Treiber-Version ist. Daher sollten Methoden mit doppelter Genauigkeit, die mit Tesla (z. B. M2070) und der aktuellen CUDA / Treiber-Version funktionieren, auch mit der K20 funktionieren.
Internetscooter
1
Vielleicht kann Ihnen hier ( stackoverflow.com/questions/5957554/python-gpu-programming ) etwas helfen.
Eusoubrasileiro
2
Theano hat ein neues GPU-Backend, das float64 unterstützt. Es ist noch nicht vollständig, aber wir werden es diese Woche im Beta-Status veröffentlichen.
Nouiz
Thanks @nouiz - Ich würde vorschlagen, dass Sie Ihren Kommentar als Antwort hinzufügen, wenn Sie die Veröffentlichung vornehmen.
Aron Ahmadia

Antworten:

3

Ich weiß nicht, warum ich diese Antwort in einen Kommentar geschrieben habe ...

Wenn ich das brauchte, würde ich wahrscheinlich PyOpenCL verwenden . Die GPU-Codierung für allgemeine Zwecke ist immer noch recht niedrig (versuchen Sie es mit der OpenCL C-Schnittstelle, es ist schwierig). PyOpenCL scheint jedoch so viel wie möglich zu abstrahieren und eine beträchtliche Dynamik zu haben.

Boyfarrell
quelle
Eh, es passiert. Ich mache manchmal das Gleiche.
Geoff Oxberry