2016-08-05 1 views
0

Je suis sur le point d'entrer dans la phase suivante d'un projet dans lequel je déplace mon calcul vers le GPU. Malheureusement, j'ai eu très peu de succès en installant OpenCL dans mon environnement. J'espérais pouvoir obtenir des indications précises sur l'implémentation d'OpenCL à utiliser et sur la façon d'éviter certains pièges lors de l'installation.Direction Installation d'OpenCL sur Linux Mint Dell 9550

Ma machine: Linux Mint 17,3 Dell XPS 15 9550 avec une puce graphique Nvidia GTX 960M

Quelques particularités: Je suis incapable de trouver des pilotes graphiques qui fonctionnent avec ce matériel autre que le Nvidia- 352 version trouvée dans ce PPA: https://launchpad.net/~graphics-drivers/+archive/ubuntu/ppa

Tous les autres que j'essaie de briques la machine. J'ai réinstallé Mint plusieurs fois que je peux compter trouver ce conducteur. Gardez à l'esprit que je dois utiliser cette configuration pour que mon ordinateur fonctionne.

J'ai essayé d'installer la boîte à outils CUDA de Nvidia depuis leur site (https://developer.nvidia.com/cuda-downloads) et, pour une raison quelconque, l'installation a écrasé mon pilote Nvidia-352 et a reconfiguré la machine.

À ce stade, je ne suis pas certain que l'implémentation est correcte de toute façon. Je ne veux pas en essayer une autre et avoir la même chose.

Quelques questions spécifiques:

  1. Est-ce que chaque mise en œuvre de OpenCL se VALOIR sur les pilotes actuellement installés?
  2. Si c'est le cas, comment puis-je demander à ma machine d'utiliser la bonne machine?
  3. Quelle implémentation conviendrait à ma machine? Pouvez-vous penser à des ressources ou à des liens qui pourraient m'intéresser pour continuer à aller de l'avant? Plus précisément quelques instructions d'installation?

Merci,

chronique

Répondre

0

Avertissement: tout cela est basé sur mon expérience avec Ubuntu 15.10, mais nous espérons que Mint est pas trop différent.

Est-ce que chaque installation OpenCL remplace les autres?

Si vous installez deux implémentations OpenCL de fournisseurs différents, alors non, elles ne doivent pas s'être mutuellement écrasées. Par exemple, j'ai des plates-formes Nvidia, Intel CPU, POCL et Beignet (Intel GPU) installées et fonctionnant. La seule mise en garde est que l'exécution du processeur Intel a écrasé les fichiers libOpenCL.so*, ce qui a entraîné un blocage dans clinfo car il fallait libOpenCL.so.1 que l'exécution du processeur Intel a décidé de supprimer. Réinstaller le package ocl-icd-opencl-dev a corrigé cela et vous pouvez également faire libOpenCL.so.1 un lien symbolique vers le fichier réel .so laissé par l'exécution du processeur Intel.

Si vous essayez d'installer deux versions pour la même plate-forme, comme vous avez essayé, alors oui, le dernier que vous installerez remplacera le précédent. Dans votre cas, rappelez-vous que la boîte à outils CUDA inclut également les pilotes GPU.Je n'ai pas joué avec la boîte à outils CUDA depuis un moment, peut-être y a-t-il une option pour installer la boîte à outils et pas les pilotes, mais comme chaque version requiert une version minimum, il faut choisir une version qui fonctionne avec la version du pilote, vous pouvez être installé. Sur Ubuntu, il existe un package nvidia-cuda-toolkit que vous pouvez sudo apt-get install. Id ne demande pas de changer mes pilotes, j'espère que cela fonctionnera pour vous. Je ne sais pas quelle version de la boîte à outils celle-ci installe.

Quelle mise en œuvre est juste

Si vous voulez seulement faire du développement OpenCL puis installez le package nvidia-352 qui a fonctionné pour vous, ainsi que l'installation ocl-icd-opencl-dev. Ce package installe les packages ocl-icd-libopencl et opencl-headers, en donnant les fichiers d'en-tête et libOpenCL.so (le chargeur ICD). Vous avez également besoin de sudo apt-get install nvidia-opencl-icd-352 car cela fournit l'environnement d'exécution OpenCL pour les GPU Nvidia. Si vous voulez aussi faire du développement CUDA, alors vous avez besoin de la boîte à outils.

En note latérale, installez l'un des temps d'exécution de la CPU, par ex. POCL, en plus de l'exécution de Nvidia. J'ai trouvé cela utile pour détecter un bogue dans mon noyau - le noyau fonctionnait la plupart du temps sur mon GPU Nvidia mais échouait systématiquement sur POCL. C'était une condition de course.

Liens utiles

Désolé, aucune instruction d'installation mise à jour. Cependant, les instructions fournies par chaque fournisseur avec leur runtime OpenCL (excepté Nvidia) semblent être assez bonnes pour moi.

Voici quelques instructions plus anciennes: