Je suis nouveau sur CUDA et j'essaie de comprendre si PyCUDA (gratuit) ou NumbaPro CUDA Python (non gratuit) serait mieux pour moi (en supposant que le coût de la bibliothèque est pas une solution).
Les deux semblent exiger que vous utilisiez leurs dialectes respectifs Python. Mais, il semble que PyCUDA vous oblige à écrire une fonction de noyau dans le code C
, ce qui serait plus lourd que d'utiliser NumbaPro, qui semble faire tout le travail pour vous.
Est-ce bien le cas? Y aurait-il des différences de performances notables?
parlons de chacune de ces bibliothèques:
PyCUDA:
PyCUDA est un environnement de programmation Python pour CUDA, il vous donne accès à l'API de calcul parallèle CUDA de Nvidia à partir de Python. PyCUDA est écrit en C++ ( la couche de base) et Python, le code C++ sera exécuté sur la puce NVIDIA, et Python pour compiler, exécuter et obtenir les résultats du code C++ et gère automatiquement les ressources qui en font l'une des puissantes bibliothèque CUDA.
PyCUDA est légèrement différent de PyOpenCl peut être utilisé pour exécuter du code sur une variété de plates-formes, y compris les puces Intel, AMD, NVIDIA et ATI. contrairement à PyCUDA qui ne peut être exécuté que sur des puces NVIDIA:
Python + CUDA = PyCUDA
Python + OpenCL = PyOpenCL
NUMBA/NumbaPro:
NUMBA : NumbaPro ou récemment Numba (NumbaPro a été déconseillé, et ses fonctionnalités de génération de code ont été déplacées en open-source Numba.) est un Open Source NumPy- compilateur d'optimisation conscient pour Python sponsorisé par Anaconda, Inc. Il utilise la remarquable infrastructure du compilateur LLVM pour compiler Python en code machine. Numba prend en charge la compilation de Python pour fonctionner sur du matériel CPU ou GPU et il est fondamentalement écrit en Python. il est facile à installer et à implémenter.
Comme @Wang l'a mentionné, Pycuda est plus rapide que Numba.