Sto cercando una buona libreria OpenCL wrapper \ per Python, con una buona documentazione. Ho provato a cercarne ... ma non ne ho trovato uno abbastanza buono.OpenCL per Python
risposta
L'opzione più popolare e meglio documentata sembra essere PyOpenCL. Sostiene di essere un wrapper completo per OpenCL e la documentazione sembra buona.
pycl è un ctypes vincolanti per OpenCL (ospitato on bitbucket)
Il suo obiettivo primario è semplice: avvolgere OpenCL in modo tale che il maggior numero di implementazioni di Python possono usarlo come fattibile. Attualmente è testato su CPython 2. {5,6,7}, 3,2 e PyPy 1.5. È risaputo che in gran parte non funziona su Jython, la cui libreria ctypes è ancora immatura.
Per ottenere ciò, si evitano i moduli di estensione e le dipendenze al di fuori della libreria standard. Idealmente cose come gli array NumPy e le immagini PIL dovrebbero funzionare, ma non dovrebbero essere richieste
Attualmente è piuttosto nuovo. Ci ho giocato di recente e funziona bene. Tempi non eseguiti rispetto a PyOpenCL, ma le prestazioni sembrano essere perfettamente ragionevoli
Non ho funzionato per me con OpenCL 1.0 di OS X 10.6 (e un AMD Radeon 5870, see here), ma funziona perfettamente sotto 10.7 e OpenCL 1.1
Per quanto riguarda la documentazione, è un collegamento abbastanza diretto alle librerie C, quindi qualsiasi documentazione verrà applicata. Anche "Adventures in PyOpenCL" è valido e si applica a quasi tutti gli attacchi
Stiamo sviluppando opencl4py, associazioni di livello superiore. Questo progetto utilizza CFFI, quindi funziona su Pypy.
Il problema principale riscontrato con pyopencl è che "import pyopencl" esegue l'inizializzazione di OpenCL e occupa l'intera memoria virtuale in caso di driver NVIDIA, impedendo il corretto biforcazione e disabilitando in modo efficace il multiprocessing (sì, affermiamo che l'utilizzo di pyopencl disabilita il multiprocessing almeno con NVIDIA). opencl4py utilizza l'inizializzazione di OpenCL pigro, risolvendo questo "inferno di importazione".
Successivamente, ha acquisito alcune funzioni interessanti come il caching del programma binario super facile, ecc. Sfortunatamente, la documentazione è piuttosto breve. Il modo migliore per imparare come funziona è passare attraverso i test.
Autore PyOpenCL qui. La cosa più sensata che posso fare della tua affermazione è che opencl4py non carica libOpenCL.so al momento dell'importazione. Se questo è un problema (come stai sostenendo), allora perché non importa PyOpenCL esattamente dove è necessario? Non sono sicuro di capire la tua motivazione qui. –
Come ulteriore commento, PyOpenCL ha un [ramo cffi] (https://github.com/pyopencl/pyopencl/tree/cffi) che può avviare kernel e funzionare su PyPy. Non è ancora pronto per il prime time, ma sta arrivando. –
La nostra applicazione ha dozzine di moduli che usano OpenCL e ritardare l'importazione rende il codice molto soggetto a errori. Ogni volta che qualcuno ha importato pyOpenCL "prima di lui dovrebbe" ha portato a molto difficile eseguire il debug e diagnosticare gli errori ...a volte :) E, naturalmente, potrebbe funzionare con dispositivi OpenCL non NVIDIA sul computer di uno sviluppatore. – markhor
- 1. Intel OpenCL vs. Khronos OpenCL
- 2. OpenCL distribution
- 3. Utilizzo di Python + Theano con OpenCL in una GPU AMD
- 4. OpenCL: ottieni bus PCIe per Intel GPU
- 5. Chiamare il kernel OpenCL da un altro kernel OpenCL
- 6. Unicità dispositivo OpenCL
- 7. OpenCL scalare vs vettore
- 8. OpenCL/AMD: Deep Learning
- 9. Inizio di esercitazioni OpenCL?
- 10. Come ottenere OpenCL SDK?
- 11. Opencl supporta variabili booleane?
- 12. OpenCL Performance Optimization
- 13. Incorpora V8 nell'applicazione OpenCL?
- 14. OpenCL compile su linux
- 15. OpenCL gruppi di lavoro
- 16. Esempi OpenCL con benchmark
- 17. OpenCL vs. DirectCompute?
- 18. GLSL utilizza SLI? OpenCL? Cosa c'è di meglio, GLSL o OpenCL per più GPU?
- 19. Utilizzo di LLVM 3.3 backend per compilare OpenCL per AMD
- 20. Confronto prestazioni CUDA vs OpenCL
- 21. Eventi OpenCL e code comandi
- 22. Come utilizzare async_work_group_copy in OpenCL?
- 23. Come usare clCreateProgramWithBinary in OpenCL?
- 24. Come utilizzare 2 OpenCL runtime
- 25. Sommatoria dell'array cummulativo usando OpenCL
- 26. OpenCL - OpenGL Prestazioni di interoperabilità
- 27. Come usare clang per compilare OpenCL al codice ptx?
- 28. Ottimizzazione del codice del kernel in opencl per una GPU
- 29. Quando sarà disponibile OpenCL 1.2 per l'hardware NVIDIA?
- 30. Il miglior approccio per GPGPU/CUDA/OpenCL in Java?
Ow. tnx .. sembra che stavo scaricando PyOpenCL non dal sito ufficiale .. ed è per questo che non ho trovato documentazione per questo ... –
@Ai_boy: certo, nessun problema. –