NVIDIA a annoncé aujourd'hui la prise en charge du langage Python sur sa version GPGPU ( CUDA ).
Manifold GIS utilise CUDA pour permettre certaines opérations de trame accélérées, mais ce n'est pas un environnement programmable et est limité aux fonctions fournies par son développeur.
Avec Python, utilisé dans de nombreux packages SIG, y compris ArcGIS et QGIS (ainsi que les packages numpy et sciypy), pris en charge en tant que langage CUDA de première classe, quelles sont les perspectives pour pouvoir tirer parti de GPGPU dans ces packages SIG traditionnels?
ArcGIS-desktop
. De plus, il peut s'agir de quelque chose qui arrive dans ArcGIS Pro. Je pensais avoir lu ce dernier quelque part mais je n'ai pas trouvé de lien pour l'instant.Réponses:
Je pense que la licence va être la balle qui pourrait arrêter (probablement QGIS) ce rêve devenu réalité. D'après le communiqué de presse, NVIDIA vient de mettre son sceau d'approbation sur la capacité NumbraPro propriétaire de Continuum Analytics d'accéder à NVIDIA CUDA. Nvidia lui-même ne fournit pas d'accès natif pour les Pythoners à l'environnement CUDA.
Si je comprends bien: le compilateur NumbraPro prend le script Python, crée un code C / C ++ optimisé qui se compile ensuite sous le compilateur de LLVM qui prend en charge les GPU de NVIDIA. Cela permet au langage Python de fonctionner aux performances des langages de niveau inférieur, bien que le temps de compilation soit plus long en raison de l'étape supplémentaire, qu'il ne l'aurait mis en œuvre en C / C ++ simple.
Cependant, en jetant un rapide coup d'œil sur le Web, il existe déjà un support pour les liaisons Python à LLVM. Je ne connais pas les liaisons Python dans LLVM mais si cela ressemble à une programmation parallèle en Python simple ... Je vais laisser quelqu'un d'autre se débattre avec plus de 800 threads et comment partager leurs états.
Il pourrait donc simplement s'agir de trouver quelqu'un prêt à travailler sur ce projet pour obtenir Python LLVM en GPU en SIG. Le côté obscur de cela nécessiterait un composant supplémentaire, à savoir le compilateur LLVM à inclure dans n'importe quel plugin ou suite SIG. Ballonnement supplémentaire.
la source