Une liste des packages est disponible sur (https://www.r-pkg.org/ctv/HighPerformanceComputing)
On ne s’intéresse pas à :
On veut explorer
Limites potentielles : il faut une carte graphique ! Cuda a été développé pour Nvidia, et OpenCL est compatible avec AMD et toutes les cartes graphiques.
La plupart des packages dépendent de CUDA et sont donc réserver aux utilisateurs équipés d’une carte nvidia.
Sous Linux pour connaître sa carte graphique sous ubuntu
sudo lshw -C display
Sous Windows, clic droit sur le drapeau Windows, exécuter et
dxdiag
Dans ce cas, on est condamé à utiliser gpur
car pas de carte nvidia (qui a le gros avantage de fonctionner avec beaucoup de cartes).
Là où un processeur peut avoir 2 à 36 cours, un GPU typique aura 100 à 1000 cours. Le GPU Tesla P100 a 3584 cours
Pour les situations où le même calcul est effectué sur plusieurs parties d’un ensemble de données, le parallélisme massif d’un GPU peut être utile.
Rien ne vient gratuitement : on perd de la mémoire et il y a un coût pour le transfert des données du système vers le GPU (et probablement de retour). Donc toutes les situations ne sont pas appropriées pour le calcul sur GPU. Un GPU haut de gamme a 16 à 32 Go de mémoire sur la carte, ce qui peut vite limiter l’utilité des GPU dans certaines situations (le dell XPS13 de base a 128Mo).
Il faut installer openCL sous Ubuntu avec les commandes. On peut suivre la page (https://doc.ubuntu-fr.org/opencl).
Il faut aussi installer ViennaCL
sudo apt update
sudo apt-get install opencl-headers
sudo apt-get install libviennacl-dev
sudo apt-get install beignet beignet-dev